資源描述:
《高斯消元法MATLAB實(shí)現(xiàn).docx》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、高斯消元法MATLAB實(shí)現(xiàn)《數(shù)值分析》實(shí)驗(yàn)報(bào)告一、實(shí)驗(yàn)?zāi)康呐c要求1.掌握高斯消去法的基本思路與迭代步驟;2.培養(yǎng)編程與上機(jī)調(diào)試能力。二、實(shí)驗(yàn)內(nèi)容1.編寫用高斯消元法解線性方程組的MATLAB程序,并求解下面的線性方程組,然后用逆矩陣解方程組的方法驗(yàn)證、0.101x12.304x23.555x31.1835x12x2x38(1)1.347x13.712x24.623x32.137(2)2x18x23x3212.835x11.072x25.643x33.035x13x26x312.編寫用列主元高斯消元法解線性方程組的MATLAB程序,
2、并求解下面的線性方程組,然后用逆矩陣解方程組的方法驗(yàn)證、0.101x12.304x23.555x31.1835x12x2x38(1)1.347x13.712x24.623x32.137(2)2x18x23x3212.835x11.072x25.643x33.035x13x26x31三.MATLAB計(jì)算源程序1、用高斯消元法解線性方程組AXb的MATLAB程序輸入的量:系數(shù)矩陣A與常系數(shù)向量b;輸出的量:系數(shù)矩陣A與增廣矩陣B的秩RA,RB,方程組中未知量的個(gè)數(shù)n與有關(guān)方程組解X及其解的信息、function[RA,RB,n,X]=
3、gaus(A,b)B=[Ab];n=length(b);RA=rank(A);RB=rank(B);zhica=RB-RA;ifzhica>0,disp('請注意:因?yàn)镽A~=RB,所以此方程組無解、')returnendifRA==RBifRA==ndisp('請注意:因?yàn)镽A=RB=n,所以此方程組有唯一解、')X=zeros(n,1);C=zeros(1,n+1);forp=1:n-1fork=p+1:nm=B(k,p)/B(p,p);B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1);endendb=B(
4、1:n,n+1);A=B(1:n,1:n);X(n)=b(n)/A(n,n);forq=n-1:-1:1X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);高斯消元法MATLAB實(shí)現(xiàn)endelsedisp('請注意:因?yàn)镽A=RB5、unction[RA,RB,n,X]=liezhu(A,b)B=[Ab];n=length(b);RA=rank(A);RB=rank(B);zhica=RB-RA;ifzhica>0,disp('請注意:因?yàn)镽A~=RB,所以此方程組無解、')returnendifRA==RBifRA==ndisp('請注意:因?yàn)镽A=RB=n,所以此方程組有唯一解、')X=zeros(n,1);C=zeros(1,n+1);forp=1:n-1[Y,j]=max(abs(B(p:n,p)));C=B(p,:);B(p,:)=B(j+p-1,:
6、);B(j+p-1,:)=C;fork=p+1:nm=B(k,p)/B(p,p);B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1);endendb=B(1:n,n+1);A=B(1:n,1:n);X(n)=b(n)/A(n,n);forq=n-1:-1:1X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);endelsedisp('請注意:因?yàn)镽A=RB7、0、1012、3043、555;-1、3473、7124、623;-2、8351、0725、643];b=[1、183;2、137;3、035];[RA,RB,n,X]=gaus(A,b)運(yùn)行結(jié)果為:請注意:因?yàn)镽A=RB=n,所以此方程組有唯一解、RA=3高斯消元法MATLAB實(shí)現(xiàn)RB=3n=3X=-0、39820、01380、3351(2)編寫高斯消元法MATLAB文件如下:clear;A=[521;28-3;1-3-6];b=[8;21;1;];[RA,RB,n,X]=gaus(A,b)運(yùn)行結(jié)果為:請注意:因?yàn)镽A=RB=n
8、,所以此方程組有唯一解、RA=3RB=3n=3X=12-1在MATLAB中利用逆矩陣法檢驗(yàn)結(jié)果:(1)在commandwindows中直接運(yùn)行命令:A=[0、1012、3043、555;-1、3473、7124、623;-2、8351、0725、6