資源描述:
《數(shù)值分析課程設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、數(shù)值分析課程設(shè)計(jì)一、Gauss消元法1.1算法原理對(duì)n階線性方程組Ax=b,記,,將方程組寫(xiě)成增廣矩陣的形式=設(shè),依次用乘矩陣的第1行加到第i行,經(jīng)過(guò)k-1步消元過(guò)程,當(dāng)消元過(guò)程進(jìn)行到第k步時(shí),其相應(yīng)的增廣矩陣為=選擇第k列的元素中絕對(duì)值最大的元素作為主元,記令若,此時(shí)矩陣不可逆,方程的解不確定(無(wú)解或有無(wú)窮多解),則停止計(jì)算;否則,當(dāng)r>k時(shí),則在其增廣矩陣中交換第k行和第r行,即使成為主元(此時(shí)變成了)。然后按Gauss消去法進(jìn)行消元運(yùn)算。1.2實(shí)驗(yàn)?zāi)康呐c要求1熟悉Gauss消元法的基本原理.2能編程實(shí)現(xiàn)Gauss消元法,并求解線性方程組。13數(shù)值分析課程設(shè)計(jì)3運(yùn)
2、用Matlab編程,輸入每個(gè)線形方程組的系數(shù)和常數(shù),求出線形方程組的解1.3算法程序function[x,det,index]=Gauss(A,b)%求線性方程組的列主元Gauss消去法,其中,%A為方程組的系數(shù)矩陣;%b為方程組的右端項(xiàng);%x為方程組的解;%det為系數(shù)矩陣A的行列式的值;%index為指標(biāo)變量,index=0表示計(jì)算失??;%index=1表示計(jì)算成功。[n,m]=size(A);nb=length(b);%當(dāng)方程組行與列的維數(shù)不相等時(shí)的,停止計(jì)算,并輸出出錯(cuò)信息。ifn~=merror('TherowsandcolumnsofmatrixAmust
3、beequal!');return;end%當(dāng)方程組與右端項(xiàng)的維數(shù)不匹配時(shí),停止計(jì)算,并輸出出錯(cuò)信息。ifn~=nberror('ThecolumnsofAmustbeequalthelengthofb!');return;end%開(kāi)始計(jì)算,先賦初值index=1;det=1;x=zeros(n,1);%給行列式的值賦1,生成n個(gè)零元素的列陣fork=1:n-1%k的值取1,2…n-1%選主元a_max=0;fori=k:nifabs(A(i,k))>a_max%如果矩陣A中第i行第k列元素的絕對(duì)值大于a_max=abs(A(i,k));r=i;%a_max,則把此值
4、賦給a_maxendendifa_max<1e-10%如果a_max的值小于精確度,則迭代失敗,返回index=0;return;end%交換兩行ifr>kforj=k:nz=A(k,j);A(k,j)=A(r,j);A(r,j)=z;%兩行中對(duì)應(yīng)每個(gè)元素互換endz=b(k);b(k)=b(r);b(r)=z;det=-det;%兩行互換,行列式變負(fù)號(hào)13數(shù)值分析課程設(shè)計(jì)end%消元過(guò)程fori=k+1:nm=A(i,k)/A(k,k);%某列中列主元素以下中的變量系數(shù)分別除于此主元素forj=k+1:nA(i,j)=A(i,j)-m*A(k,j);endb(i)=
5、b(i)-m*b(k);enddet=det*A(k,k);%行列式的值乘列主元enddet=det*A(n,n);%回代過(guò)程ifabs(A(n,n))<1e-10%列主元素的絕對(duì)值小于精度index=0;return;endfork=n:-1:1%k的值從n,n-1,…1forj=k+1:nb(k)=b(k)-A(k,j)*x(j);%當(dāng)下標(biāo)大于上標(biāo),不做相乘運(yùn)算endx(k)=b(k)/A(k,k);end1.4實(shí)例1求解線性方程組用Matlab求解>>A=[111;13-2;5-14];>>b=[6119]';>>[x,det,indet]=Gauss(A,b)
6、x=2.00001.40002.6000det=-20.0000indet=12求解線性方程組用Matlab求解>>A=[-326;10-70;5-15];13數(shù)值分析課程設(shè)計(jì)>>b=[476];>>[x,det,indet]=Gauss(A,b)x=0.0000-1.00001.0000det=155indet=1二Lagrange插值2.1算法原理構(gòu)造n次多項(xiàng)式,其中基函數(shù),顯然滿足,此時(shí),誤差其中且依賴于,很顯然,當(dāng)n=1、插值節(jié)點(diǎn)只有兩個(gè),時(shí)2.2實(shí)驗(yàn)?zāi)康呐c要求1熟悉Lagrange插值的基本原理; 2能編程實(shí)現(xiàn)Lagrange插值,并求解函數(shù)多項(xiàng)式的值;3
7、運(yùn)用Matlab編程,根據(jù)實(shí)例中給定的函數(shù)值表求出插值多項(xiàng)式和函數(shù)在某一點(diǎn)的近似值13數(shù)值分析課程設(shè)計(jì)2.3算法程序functionyi=Lagrange(x,y,xi)%Lagrange插值多項(xiàng)式,其中,%x為向量,全部的插值節(jié)點(diǎn);%y為向量,插值節(jié)點(diǎn)處的函數(shù)值;%xi為標(biāo)量,被估計(jì)函數(shù)的自變量:%yi為xi處的函數(shù)估計(jì)值.n=length(x);m=length(y);%輸入的插值點(diǎn)與它的函數(shù)值應(yīng)有相同的個(gè)數(shù)ifn~=merror('ThelengthsofXandYmustbeequal!');return;endp=zeros(1,n);%生