sor.m

来自「自己用matlab编写的选主元高斯消去法解线性方程组的通用程序,和sor法解线性」· M 代码 · 共 21 行

M
21
字号
function [k,w,x]=ssor(a,b,w,x0,e,N)
%用逐次超松弛法解线性方程组Ax=b;
%格式[k,w,x]=ssor(a,b,w,x0,e,N),a为系数矩阵,b为右端向量,x返回解向量,k迭代次数,w松弛因子,x0初始向量,e容取误差,N迭代次数上限,;

n=length(b);
x=x0;x0=x+2*e;
k=0;
while max(abs(x0-x))>e&k<N
    k=k+1;x0=x;
    for i=1:n
        s=0;m=0;
        for j=1:i-1
            s=s+a(i,j)*x(j);
        end
        for j=i+1:n
            m=m+a(i,j)*x0(j);
        end
        x(i)=(1-w)*x0(i)+w/a(i,i)*(b(i)-s-m);
    end
end
if k==N error('已超过迭代次数');end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?