jacobi11111.m

来自「雅克比迭代法 求Hilbert矩阵病态方程组」· M 代码 · 共 34 行

M
34
字号
clear;
n=input('n=');
x=hilb(n); y=ones(n,1);
z=x*y;
augm=[x z]; 
[m,l]=size(augm); 
for i=1:m              
    if augm(i,i)==0    
        k=i+1;        
        while augm(k,i)==0&k<=m
            k=k+1;
        end
        b=augm(i,:);  augm(i,:)=augm(k,:);  augm(k,:)=b;
    end
end
augm,                  
x(1,:)=zeros(1,l-1);   
for k=1:20             
    error=0;           
    for i=1:m     
        c=0;                            
        for j=1:l-1                       
            c=c+augm(i,j)*x(k,j);     
        end                             
        c=c-augm(i,i)*x(k,i);         
        x(k+1,i)=(augm(i,m+1)-c)/augm(i,i);
        error=error+abs(x(k+1,i)-x(k,i));
    end
    fprintf('Iterative No.=%3.0f,error=%7.2e\n',k,error), 
    if error<0.00001  
        break
    end 
end
x,                       

⌨️ 快捷键说明

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