Matlab高斯消去法

function [x]=gauss_bjd(A,b)       %建立一个函数(A,b),bjd可以随便取名字
n=size(A,1);                                  %A可以取常数值
for k=1:n-1                                   %第一个for循环,k的取值范围是1到n-1
     for i=k+1:n                               %第一个子for循环,i的取值范围是k+1到n
         t=A(i,k)/A(k,k);                     %给t赋值为下一行除以与它同一列的上一行的元素的值
        for j=k+1:n                           %第二个子for循环,j的取值范围是k+1到n
             A(i,j)=A(i,j)-t*A(k,j);          %下一行的元素值等于它本身减去t乘以它上一行的元素
        end                                       %第二个子for循环结束  
         b(i)=b(i)-t*b(k);                    %右端列向量从第二行开始等于它本身减去t乘以上一行的元素
    end                                           %第一个子for循环结束
end                                               %第一个for循环结束
x(n)=b(n)/A(n,n);                         %回代过程中xn的取值
for k=n-1:-1:1                              
     s=0;                                           %做一个求和
    for l=k+1:n
         s=s+A(k,l)*x(l);
     end
     x(k)=(b(k)-s)/A(k,k);
 end

作者:TianSL


版权声明:本文为s0302017原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。