永发信息网

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

答案:1  悬赏:80  手机版
解决时间 2021-04-14 20:11
  • 提问者网友:像風在裏
  • 2021-04-13 20:29
用matlab程序法编出高斯消元法
最佳答案
  • 五星知识达人网友:woshuo
  • 2021-04-13 21:48

昨天才回答过这个问题..你可以再搜搜的


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

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯