欢迎来到天天文库
浏览记录
ID:12684641
大小:28.00 KB
页数:4页
时间:2018-07-18
《matlab线性方程组求解(gauss消去法)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Matlab线性方程组求解1.Gauss消元法:functionx=DelGauss(a,b)%Gauss消去法[n,m]=size(a);nb=length(b);det=1;%存储行列式值x=zeros(n,1);fork=1:n-1fori=k+1:nifa(k,k)==0returnendm=a(i,k)/a(k,k);forj=k+1:na(i,j)=a(i,j)-m*a(k,j);endb(i)=b(i)-m*b(k);enddet=det*a(k,k);%计算行列式enddet=det*a(n,n);fork=n:-1:1%回代求解forj=k+1:nb(k)=b(k)-
2、a(k,j)*x(j);endx(k)=b(k)/a(k,k);endExample:>>A=[1.0170-0.00920.0095;-0.00920.99030.0136;0.00950.01360.9898];>>b=[101]';>>x=DelGauss(A,b)x=0.9739-0.00471.00102.列主元Gauss消去法:functionx=detGauss(a,b)%Gauss列主元消去法[n,m]=size(a);nb=length(b);det=1;%存储行列式值x=zeros(n,1);fork=1:n-1amax=0;%选主元fori=k:nifabs(a(
3、i,k))>amaxamax=abs(a(i,k));r=i;endendifamax<1e-10return;endifr>k%交换两行forj=k:nz=a(k,j);a(k,j)=a(r,j);a(r,j)=z;endz=b(k);b(k)=b(r);b(r)=z;det=-det;endfori=k+1:n%进行消元m=a(i,k)/a(k,k);forj=k+1:na(i,j)=a(i,j)-m*a(k,j);endb(i)=b(i)-m*b(k);enddet=det*a(k,k);enddet=det*a(n,n);fork=n:-1:1%回代求解forj=k+1:nb(
4、k)=b(k)-a(k,j)*x(j);endx(k)=b(k)/a(k,k);endExample:>>x=detGauss(A,b)x=0.9739-0.00471.0010
此文档下载收益归作者所有