function [n,x]=sor22(A,b,X,nm,w,ww)
%用超松弛迭代法求解方程组 Ax=b
%输入:A 为方程组的系数矩阵,b 为方程组右端的列向量,X 为迭
代初值构成的列向量,nm 为最大迭代次数,w 为误差精度,ww 为
松弛因子
%令 A=D-L-U,计算矩阵 D
%令 A=D-L-U,计算矩阵 L
%令 A=D-L-U,计算矩阵 U
%输出:x 为求得的方程组的解构成的列向量,n 为迭代次数
n=1;
m=length(A);
D=diag(diag(A));
L=tril(-A)+D;
U=triu(-A)+D;
M=inv(D-ww*L)*((1-ww)*D+ww*U); %计算迭代矩阵
g=ww*inv(D-ww*L)*b;
%下面是迭代过程
while n<=nm
x=M*X+g;
if norm(x-X,'inf')
南昌航空大学数学与信息科学学院实验报告
X=x;n=n+1;
end
第
1 页