用matlab程序法编出高斯消元法

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 00:01:07
用matlab程序法编出高斯消元法

用matlab程序法编出高斯消元法
用matlab程序法编出高斯消元法

用matlab程序法编出高斯消元法
昨天才回答过这个问题..你可以再搜搜的 Gauss消去法的分析.其包括两个过程:把方程组系数矩阵A化为同解的上三角矩阵; 按相反的顺序,从xn至x1逐个求解上三角方程组.%高斯消去法的MATLAB程序 function x=gauss(a,b); %编写高斯消去法函数 %a表示方程组的系数矩阵,b表示方程组的值 %X表示最终的输出结果,即方程组的解 n=length(b); %计算方程组的维数 %下面的程序在不断的消去,直到变成a变成上三角矩阵未知 for k=1:n-1 for i=k+1:n a(i,k)=a(i,k)/a(k,k); for j=k+1:n a(i,j)=a(i,j)-a(i,k)*a(k,j); end b(i)=b(i)-a(i,k)*b(k); end end %表示高斯消去法的回带过程 x=zeros(n,1); x(n)=b(n)/a(n,n); for k=n-1:-1:1 s=b(k); for j=k+1:n s=s-a(k,j)*x(j); end x(k)=s/a(k,k); end 实例验证:%调用编好的消去法函数 >> A=[1,2,3;2,2,3;-1,-3,10];B=[0,3,2];gauss(A,B) ans = 3.0000 -1.5517 0.0345 >> A=[1,2,3;2,2,3;-1,-3,10];B=[0,3,2];x=gauss(A,B) x = 3.0000 -1.5517 0.0345 >> A*x %反代求解进行比较 ans = 0.0000 3.0000 2.0000