用高斯消元法解线性方程组 的MATLAB程序

用高斯消元法解线性方程组 的MATLAB程序,第1张

1、下图是需要求解的线性方程组

2、打开MATLAB,利用左除法(\)求解上述线性方程组。输入如下代码:close allclear allclc% MATLAB左除法(\)求解线性方程组,A = [1 2 3-1 3 79 0 3]b = [1 4 7]'x = A\b。

3、保存和运行上述代码,利用左除法(\)得到线性方程组的解。

4、用求逆法(inv)求解线性方程组,输入如下代码:close allclear allclc,% MATLAB求逆法(inv)求解线性方程组,% A是线性方程组等号左边系数构成的矩阵

5、保存和运行上述代码,利用求逆法(inv)得到线性方程组的解如下。

6、最后,可以看到左除法(\)和求逆法(inv)求得的线性方程组解是一样的。

其包括两个过程: 消去过程:把方程组系数矩阵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,32,2,3-1,-3,10]B=[0,3,2]gauss(A,B) ans = 3.0000 -1.5517 0.0345 >>A=[1,2,32,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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8136091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存