sor.m

来自「本文件提供了几个数值分析中的Matlab小程序。水平有限」· M 代码 · 共 38 行

M
38
字号
function [x,k]=sor(a,b,w,x0,e)
n=length(a);
for i=1:n
    m(i)=a(i,i);
    for j=1:n
        if i>j
            v(i,j)=a(i,j);
            u(i,j)=0;
        else
            if i<j
                v(i,j)=0;
                u(i,j)=-a(i,j);
            else
                v(i,j)=0;
                u(i,j)=0;
            end
        end
    end
end
d=diag(m);
l1=d+w*v;
l=inv(l1);
s=(1-w)*d+w*u;
z=l*s;
p=w*l*b;
x=z*x0+p;
k=1; 
while norm(x-x0,'inf')/norm(x,'inf')>e
        x0=x;
        k=k+1;
        x=z*x0+p;
        if k==1000
            break;
        end 
    end
    f=norm(x-x0,'inf')/norm(x,'inf')

   

⌨️ 快捷键说明

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