資源描述:
《數(shù)值分析實(shí)驗(yàn)四new》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、數(shù)值分析實(shí)驗(yàn)一一、實(shí)驗(yàn)名稱解線性方程組的列主元素高斯消去法和LU分解法二、實(shí)驗(yàn)?zāi)康耐ㄟ^數(shù)值實(shí)驗(yàn),從中體會(huì)解線性方程組選主元的必要性和LU分解法的優(yōu)點(diǎn),以及方程組系數(shù)矩陣和右端向量的微小變化對(duì)解向量的影響。三、實(shí)驗(yàn)內(nèi)容解下列兩個(gè)線性方程組(1)(2)四、實(shí)驗(yàn)要求(1)用你熟悉的算法語言編寫程序用列主元高斯消去法和LU分解求上述兩個(gè)方程組,輸出中矩陣A及向量b,A=LU分解的L及U,detA及解向量x(2)將方程組(1)中系數(shù)3.01改為3.00,0.987改為0.990,用列主元高斯消去法求解變換后的方程組,輸出列主元行交換次序,解向量X及de
2、tA,并與(1)中結(jié)果比較。(3)將方程組(2)中的2.099999改為2.1,5.900001改為5.9,用列主元高斯消去法求解變換后的方程組,輸出解向量x及detA,并與(1)中的結(jié)果比較。(4)用MATLAB的內(nèi)部函數(shù)inv求出系數(shù)矩陣的逆矩陣,再輸入命令x=inv(A)*b,即可求出上述各個(gè)方程組的解,并與列主元高斯消去法和LU分解法求出的解進(jìn)行比較,體會(huì)選主元的方法具有良好的數(shù)值穩(wěn)定性。用MATLAB的內(nèi)部函數(shù)inv求出系數(shù)行列式的值,并與(1)、(2)、(3)中的輸出系數(shù)行列式的值進(jìn)行比較。五、實(shí)驗(yàn)結(jié)果(1)第一個(gè)方程組:A1=8
3、3.01006.03001.99001.27004.1600-1.23000.9870-4.81009.3400b1=111L1=1.0000000.42191.000000.3279-4.20061.0000U1=3.01006.03001.990001.6158-2.069600-0.0063利用列主元素高斯消去法所求xx1=1.0e+003*1.5926-0.6319-0.4936det1=-0.0305第二個(gè)方程組:A2=10.0000-7.000001.00008-3.00002.10006.00002.00005.0000-1.0
4、0005.0000-1.00002.00001.000002.0000b2=8.00005.90005.00001.0000L2=1.0e+006*0.0000000-0.00000.0000000.0000-2.50000.000000.0000-2.40000.00000.0000U2=1.0e+007*0.0000-0.000000.00000-0.00000.00000.0000001.50000.57500000.0000利用列主元素高斯消去法所求xx2=0.0000-1.00001.00001.0000det2=-762.0001
5、8(2)x3=119.5273-47.1426-36.8403det3=-0.4070(3)x4=0.0000-1.00001.00001.0000det4=-762(4)x11=1.0e+003*1.5926-0.6319-0.4936det11=-0.0305x22=0-1.000081.00001.0000det22=-762.0001x33=119.5273-47.1426-36.8403det33=-0.4070x44=-0.0000-1.00001.00001.0000det44=-762.0000六、程序代碼%列主元素高斯消去法
6、function[x,det,flag]=Gauss(A,b)[n,m]=size(A);nb=length(b);ifn~=merror('TherowsandcolumnsofmatrixAmustbeequal!');return;end8ifm~=nberror('ThecolumnsofAmustbeequalthelengthofb!')return;endflag='OK';det=1;x=zeros(n,1);fork=1:n-1max1=0;fori=k:nifabs(A(i,k))>max1max1=abs(A(i,k))
7、;r=i;endendifmax1<1e-10flag='failure';return;endifr>kforj=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:nm=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);ifabs(A(n,n))<1e-10flag='fa
8、ilure';return;endfork=n:-1:1forj=k+1:nb(k)=b(k)-A(k,j)*x(j);endx(k)=b(k)/A(k,k);en