Matlab高斯消去法

寵の児 提交于 2019-12-15 17:40:34
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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!