seven3069 发表于 2016-10-12 22:38

雅可比迭代法解线性方程组

雅可比迭代法解线性方程组:%雅可比迭代法解线性方程组;
clc;clear;close;
% digits(4);
A=input('请输入系数矩阵:');
b=input('请输入b矩阵(列向量):');
X0=input('请输入迭代初值(列向量):');
k=input('请输入迭代次数:');
=size(A);
% X0=';
% f=X0;
% X=X0;
% vpa(X0);
% vpa(X);
% vpa(f);
OUT=[];
% vpa(OUT);
%M=;
%求解M矩阵;
for m=1:M1
    for n=1:N1
      if m==n
          D(m,n)=A(m,n);
      else
          D(m,n)=0;
      end
    end
end
LU=A-D
M=-inv(D)*(LU)
f=inv(D)*b
X=X0;
%特征根求解;
=eig(M)
% vpa(M);
for i=1:k;
    X=M*X+f;
    OUT=;
    K1(i)=i;
end
K1=';
OUT1=;
OUT1=
% vpa(OUT1);
xlswrite('C:\Users\LENOVO\Desktop\雅可比迭代法2.xls',OUT1);
结果输入与输出范例:请输入系数矩阵:
请输入b矩阵(列向量):[-4 12 8 34]'
请输入迭代初值(列向量):'
请输入迭代次数:5
结果输出:

LU =

     0    -1    -1    -1
    -1     0    -1    -1
    -1    -1     0    -1
    -1    -1    -1     0


M =

         0    0.2000    0.2000    0.2000
    0.1000         0    0.1000    0.1000
    0.2000    0.2000         0    0.2000
    0.1000    0.1000    0.1000         0


f =

   -0.8000
    1.2000
    1.6000
    3.4000


v =

   -0.6082   -0.7071   -0.5406    0.0000
   -0.3607   -0.0000    0.4558   -0.7071
   -0.6082    0.7071   -0.5406    0.0000
   -0.3607   -0.0000    0.4558    0.7071


d =

    0.4372         0         0         0
         0   -0.2000         0         0
         0         0   -0.1372         0
         0         0         0   -0.1000

迭代结果输出:

OUT1 =

         0         0         0         0         0
    1.0000   -0.8000    1.2000    1.6000    3.4000
    2.0000    0.4400    1.6200    2.3600    3.6000
    3.0000    0.7160    1.8400    2.7320    3.8420
    4.0000    0.8828    1.9290    2.8796    3.9288
    5.0000    0.9475    1.9691    2.9481    3.9691
页: [1]
查看完整版本: 雅可比迭代法解线性方程组