lzygauss.m

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

M
32
字号
function x=lzygauss(a,b)
% 列主元高斯消去法解线性方程组ax=b的通用程序;
% a是系数矩阵,b是右端列向量,x为解向量;

n=length(b);
a=[a,b];
for k=1:n-1
    [aa,m]=max(abs(a(k:n,k))); %选主元
    m=m+k-1;
    if m>k
        t=a(k,:);a(k,:)=a(m,:);a(m,:)=t;
    end
    for j=k+1:n+1    %消去
        for i=k+1:n
            a(i,j)=a(i,j)-(a(i,k)/a(k,k))*a(k,j);
        end
    end
end
for i=2:n
    for j=1:i-1
        a(i,j)=0;
    end
end
x=zeros(n,1);  %回代
x(n,1)=a(n,n+1)/a(n,n);
for k=n-1:-1:1
    s=0;
    for j=k+1:n
        s=s+a(k,j)*x(j);
    end
    x(k)=(a(k,n+1)-s)/a(k,k);
end

⌨️ 快捷键说明

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