數(shù)值分析課程設(shè)計(jì)_第1頁
數(shù)值分析課程設(shè)計(jì)_第2頁
數(shù)值分析課程設(shè)計(jì)_第3頁
數(shù)值分析課程設(shè)計(jì)_第4頁
數(shù)值分析課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)值分析課程設(shè)計(jì)馮選李赫李瑞雪實(shí)驗(yàn)1非線性方程與方程組數(shù)值求解的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)2線性方程組直接法的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)3線性方程組迭代法的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)4多項(xiàng)式插值的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)5數(shù)值逼近的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)6數(shù)值積分的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)7數(shù)值微分的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)8常微分方程數(shù)值解法的設(shè)計(jì)與實(shí)現(xiàn)題目實(shí)驗(yàn)1非線性方程與方程組數(shù)值求解的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)?zāi)康暮腿蝿?wù):理解非線性方程與方程組數(shù)值求解思想,設(shè)計(jì)并掌握MATLAB中非線性方程及方程組的數(shù)值解法,理解迭代法的收斂性與收斂速度.要求精度為準(zhǔn)確到

,給定方程與方程組分別為(1-1)(1-2)牛頓迭代線性迭代斯蒂芬森迭代MATLAB數(shù)值計(jì)算實(shí)驗(yàn)1非線性方程與方程組數(shù)值求解的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)1非線性方程與方程組數(shù)值求解的設(shè)計(jì)與實(shí)現(xiàn)

實(shí)驗(yàn)總結(jié):根據(jù)實(shí)驗(yàn)結(jié)果顯示,可以看出不動(dòng)點(diǎn)迭代需要9次迭代,而用斯蒂芬森加速后只需要3次,牛頓法介于其間需要4次。直接使用MATLAB函數(shù)fzero需要迭代5次,函數(shù)fsolve對(duì)(1-2)迭代需要1次,所以通過對(duì)(1-1)的實(shí)驗(yàn)我們知道斯蒂芬森加速后迭代速度>牛頓法>函數(shù)fzero>不動(dòng)點(diǎn)迭代。實(shí)驗(yàn)2線性方程組直接法的設(shè)計(jì)與實(shí)現(xiàn)方程(i)的LU求解解向量x=1.0e+003*1.5926-0.6319-0.4936單位下三角陣L=1.0000000.42191.000000.3279-4.20061.0000上三角陣U=3.01006.03001.990001.6158-2.069600-0.0063index=1方程(ii)的LU求解解向量:x=-0.0000-1.00001.00001.0000單位下三角陣:L=1.0e+006*0.0000000-0.00000.0000000.0000-2.50000.000000.0000-2.40000.00000.0000上三角陣:U=1.0e+007*0.0000-0.000000.00000-0.00000.00000.0000001.50000.57500000.0000index=1LU分解法LU分解法function[x,L,U,index]=LU(A,b)A=LULy=bUx=y實(shí)驗(yàn)2線性方程組直接法的設(shè)計(jì)與實(shí)現(xiàn)方程(i)的列主元求解計(jì)算結(jié)果:解向量:x=1.0e+003*1.5926-0.6319-0.4936

行列式:det=-0.0305index=1計(jì)算結(jié)果:解向量:x=0.0000-1.00001.00001.0000行列式:det=-762.0001迭代結(jié)果:index=1方程(ii)的列主元求解列主元消去法列主元高斯消去法分解function[x,det,index]=Gauss_col(A,b)(A,b)=(E,x)實(shí)驗(yàn)2線性方程組直接法的設(shè)計(jì)與實(shí)現(xiàn)系數(shù)有擾動(dòng)的方程(i)列主元消去法系數(shù)有擾動(dòng)的方程(ii)列主元消去法MATLAB數(shù)值計(jì)算計(jì)算結(jié)果:解向量:x=119.5273-47.1426-36.8403行列式:det=-0.4070迭代結(jié)果:index=1無窮范數(shù)結(jié)果:>>cond(A,inf)ans=4.2601e+003計(jì)算結(jié)果:解向量:x=0.0000-1.00001.00001.0000行列式:det=-762迭代結(jié)果:index=1無窮范數(shù)結(jié)果:>>cond(A,inf)ans=12.4016x1=1.0e+003*1.5926-0.6319-0.4936x2=0.0000-1.00001.00001.0000總結(jié)線性方程組的直接解法就是“不計(jì)舍入誤差,經(jīng)過有限步四則運(yùn)算,求出方程組精確解的方法”,它是以消去為基礎(chǔ)的解法,常用的方法有高斯消去法、列主元高斯消去法、分解法。由于在實(shí)際計(jì)算中,難免會(huì)有舍入誤差,因此線性方程組的直接解法求得的是近似解。對(duì)于階數(shù)不太高的線性方程組,用直接法比較方便,高斯消元法是直接解法里面最重要的解法。線而由上述問題可知,線性方程組的直接解法經(jīng)過有限步算數(shù)運(yùn)算,求得方程組的精確解。列主元高斯消去法在實(shí)際求解的過程中,用法比較復(fù)雜,但求得的結(jié)果最接近精確解;在利用LU分解法時(shí),要求系數(shù)矩陣的各階順序主子式大于0,求解的過程比較方便,但遇到用小主元做除數(shù)時(shí),就會(huì)使消元的乘數(shù)較大,會(huì)引起中間結(jié)果數(shù)量級(jí)嚴(yán)重增長(zhǎng),再舍入就會(huì)使最后的計(jì)算結(jié)果不可靠,存在誤差。實(shí)驗(yàn)3線性方程組迭代法的設(shè)計(jì)與實(shí)現(xiàn)

實(shí)驗(yàn)?zāi)康暮腿蝿?wù):理解線性方程組迭代法思想,設(shè)計(jì)并掌握MATLAB中線性方程組的迭代法,理解迭代法的收斂性與收斂速度.對(duì)于線性方程組,其中為五對(duì)角矩陣:

(3-1)實(shí)驗(yàn)3線性方程組迭代法的設(shè)計(jì)與實(shí)現(xiàn)(1)雅可比迭代法運(yùn)行程序:>>b=ones(20,1);>>ep=0.005;>>[x,k,index]=jacobi(A,b,ep)計(jì)算結(jié)果:x=00000000000000000000k=0index=0運(yùn)行程序:>>b=zeros(20,1);>>ep=0.005;>>[x,k,index]=jacobi(A,b,ep)計(jì)算結(jié)果:x=00000000000000000000k=0index=0實(shí)驗(yàn)3線性方程組迭代法的設(shè)計(jì)與實(shí)現(xiàn)(2)高斯—塞德爾迭代法運(yùn)行程序>>b=ones(20,1);>>ep=0.005;>>[x,k,index]=gauss(A,b,ep)計(jì)算結(jié)果:x=0.48110.57270.63200.65120.66000.66340.66480.66540.66560.66570.66570.66570.66560.66520.66400.66070.65200.63270.57340.4816k=5index=1運(yùn)行程序>>b=zeros(20,1);>>ep=0.005;>>[x,k,index]=gauss(A,b,ep)計(jì)算結(jié)果:x=00000000000000000000k=0index=1實(shí)驗(yàn)3線性方程組迭代法的設(shè)計(jì)與實(shí)現(xiàn)SOR迭代法:運(yùn)行程序>>b=ones(20,1);>>ep=0.005;>>x0=zeros(20,1);>>w=1.4;>>[x,k,index]=sor(A,b,x0,ep,w)計(jì)算結(jié)果:x=0.48160.57340.63280.65210.66100.66430.66570.66630.66650.66660.66650.66630.66640.66650.66450.65940.65200.63420.57270.4818k=6index=1運(yùn)行程序>>b=zeros(20,1);>>ep=0.005;>>x0=ones(20,1);>>w=1.4;>>[x,k,index]=sor(A,b,x0,ep,w)計(jì)算結(jié)果:x=-0.0000-0.00000.00000.00000.00000.0000-0.0000-0.00000.00000.00010.0001-0.0003-0.00070.00060.0013-0.0010-0.00080.0010-0.00050.0002k=7index=1實(shí)驗(yàn)3線性方程組迭代法的設(shè)計(jì)與實(shí)現(xiàn)總結(jié):通過本次實(shí)驗(yàn)了解到線性方程組的迭代解法,在初始向量不變時(shí),改變b的取值,運(yùn)用雅可比迭代和高斯-賽德爾迭代分別計(jì)算并進(jìn)行比較,從結(jié)果中可得出,高斯-賽德爾的收斂速度比雅可比迭代的快。在SOR迭代法的實(shí)驗(yàn)中,可以得出,松弛因子的不同影響著迭代速度,在使用SOR進(jìn)行迭代時(shí),要慎重考慮松弛因子的取值,找到最佳松弛因子,可減少運(yùn)算時(shí)間。結(jié)論:雅克比:結(jié)果表明迭代方法也是收斂的。高斯——賽德爾:結(jié)果表明迭代方法也是收斂的。SOR迭代法:結(jié)果表明迭代方法也是收斂的。實(shí)驗(yàn)4多項(xiàng)式插值的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)?zāi)康暮腿蝿?wù):理解函數(shù)插值的基本原理,設(shè)計(jì)并掌握MATLAB中拉格朗日插值、分段低次插值的實(shí)現(xiàn).已知數(shù)據(jù)如下:實(shí)驗(yàn)4多項(xiàng)式插值的設(shè)計(jì)與實(shí)現(xiàn)1)設(shè)計(jì)全區(qū)間上拉格朗日插值程序.利用Matlab在第一個(gè)圖中畫出離散數(shù)據(jù)及拉格朗日插值函數(shù).functionyi=Lagrange(x,y,xi)n=length(x);m=length(y);ifn~=merror('thelengthsofXandYmustbeequel!');return;endyi=zeros(size(xi));fork=1:nw=ones(size(xi));forj=[1:k-1k+1:n]ifabs(x(k)-x(j))<epserror('theDATAiserror!');return;endw=(xi-x(j))/(x(k)-x(j)).*w;endyi=yi+w*y(k);end>>x=0.2:0.2:1;>>y=[0.97986520.91777100.80803480.63860930.3843735];>>xi=0.2:0.1:1;>>yi=Lagrange(x,y,xi);>>plot(x,y,'*',xi,yi)圖4.1實(shí)驗(yàn)4多項(xiàng)式插值的設(shè)計(jì)與實(shí)現(xiàn)2.分段線性插值與(4.1)作比較利用分段線性插值,畫出分段線性插值函數(shù)如下:

>>x=0.2:0.2:1;>>y=[0.97986520.91777100.80803480.63860930.3843735];>>xi=0.2:0.01:1;>>yi=interp1(x,y,xi,'linear');>>plot(x,y,'o',xi,yi,'k-')結(jié)論:由圖(4.2)與圖(4.1)對(duì)比可知分段線性插值精度比較差,曲線比較生硬不夠光滑。

圖(4.2)實(shí)驗(yàn)4多項(xiàng)式插值的設(shè)計(jì)與實(shí)現(xiàn)3.三次樣條插值對(duì)于自然邊界條件,利用MATLAB在第二個(gè)圖中畫出離散數(shù)據(jù),再畫出通過表中型值點(diǎn)并滿足邊界條件的三次樣條插值函數(shù)如下:

>>x=0.2:0.2:1;>>y=[0.97986520.91777100.80803480.63860930.3843735];>>xi=0.2:0.01:1;>>yi=interp1(x,y,xi,'variational');>>plot(x,y,'o',xi,yi,'k-')

圖4.3實(shí)驗(yàn)4多項(xiàng)式插值的設(shè)計(jì)與實(shí)現(xiàn)4.三次樣條插值對(duì)于第一種邊界條件,利用MATLAB在第三個(gè)圖中畫出離散數(shù)據(jù),再畫出通過表中型值點(diǎn)并滿足邊界條件的三次樣條插值函數(shù)如下:

>>x=0.2:0.2:1;>>y=[0.97986520.91777100.80803480.63860930.3843735];>>xi=0.2:0.01:1;>>yi=interp1(x,y,xi,'second',0.20271,1.55741);>>plot(x,y,'o',xi,yi,'k-')

(見圖4.4)實(shí)驗(yàn)4多項(xiàng)式插值的設(shè)計(jì)與實(shí)現(xiàn)小結(jié):從本次實(shí)驗(yàn)中可以知道,插值方法有各自的優(yōu)點(diǎn)也有缺點(diǎn),在使用時(shí)應(yīng)注意自己解決題的方法選擇,拉格朗日插值公式整齊,理論性應(yīng)用很好,利用計(jì)算機(jī)很容易實(shí)現(xiàn);分段性插值,能使在計(jì)算中不會(huì)出現(xiàn)病態(tài);而三次樣條插值,能夠很好的實(shí)現(xiàn)曲線的光滑性,收斂性也很好,一般有二階光滑度,所以在一些工程中要求線形度高的可利用三次樣條插值來實(shí)現(xiàn)。

(5)通過實(shí)驗(yàn),談?wù)勀銓?duì)插值方法有何理解、三次樣條插值有何特點(diǎn):分段線性插值精度比較低,一樣的數(shù)據(jù)用不同的方法就會(huì)有不同的精度,在使用時(shí)要慎重考慮方法的選擇,三次樣條插值精度比較高,也比較光滑實(shí)驗(yàn)5數(shù)值逼近的設(shè)計(jì)與實(shí)現(xiàn).

實(shí)驗(yàn)?zāi)康暮腿蝿?wù):理解數(shù)值逼近的基本原理,設(shè)計(jì)并掌握MATLAB中最小二乘擬合的實(shí)現(xiàn).已知數(shù)據(jù)如下:實(shí)驗(yàn)5數(shù)值逼近的設(shè)計(jì)與實(shí)現(xiàn).實(shí)驗(yàn)5數(shù)值逼近的設(shè)計(jì)與實(shí)現(xiàn).實(shí)驗(yàn)5數(shù)值逼近的設(shè)計(jì)與實(shí)現(xiàn).實(shí)驗(yàn)5數(shù)值逼近的設(shè)計(jì)與實(shí)現(xiàn).4.談一談對(duì)離散數(shù)據(jù)最小二乘擬合的理解.

最小線性二乘擬合適用于曲線擬合的求解,最小線性二乘擬合對(duì)于求解實(shí)際問題有很大的幫助,它是離散點(diǎn)的最佳平方逼近,首先要確定是做幾次擬合,然后得到法方程,求得最小二乘擬合曲線,在算出平方誤差。實(shí)驗(yàn)6數(shù)值積分的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)?zāi)康暮腿蝿?wù):理解數(shù)值積分的基本原理,設(shè)計(jì)并掌握MATLAB中數(shù)值積分的實(shí)現(xiàn).對(duì)于積分:實(shí)驗(yàn)6數(shù)值積分的設(shè)計(jì)與實(shí)現(xiàn)數(shù)值積分的設(shè)計(jì)與實(shí)現(xiàn)符號(hào)積分:數(shù)值積分:symsxs=x^2*exp(-x^2);I=int(s,x,0,2)結(jié)果:I=-exp(-4)+1/4*pi^(1/2)*erf(2)fun=inline('x.^2.*exp(-x.^2)');Q1=quad(fun,0,2)結(jié)果:Q1=0.4227symsxs=cot(x);I=int(s,x,pi/2,3*pi/4)結(jié)果:I=-1/2*log(2)fun=inline('cot(x)');Q1=quad(fun,pi./2,3.*pi./4結(jié)果:Q1=-0.3466symsxs=1/(x^2-1);I=int(s,x,2,3)結(jié)果:I=-1/2*log(2)+1/2*log(3)

fun=inline('1./(x.^2-1)');Q1=quad(fun,2,3)結(jié)果:Q1=0.2027實(shí)驗(yàn)6數(shù)值積分的設(shè)計(jì)與實(shí)現(xiàn)龍貝格法求積分:(?。┻\(yùn)行程序:>>f=inline('x^2*exp(-x^2)');>>a=0;b=2;n=4;tol=1e-6;>>[T,quad,err,h]=romberg(f,a,b,n,tol)計(jì)算結(jié)果:龍貝格計(jì)算表:T=0.073300000.40450.51490000.41820.42270.4166000.42160.42270.42270.422800.42240.42270.42270.42270.4227積分值:quad=0.4227誤差估計(jì):err=8.7091e-005最小步長(zhǎng):h=0.1250(ⅱ)運(yùn)行程序:>>f=inline('cot(x)');>>a=pi/2;b=3/4*pi;n=4;tol=1e-6;>>[T,quad,err,h]=romberg(f,a,b,n,tol)計(jì)算結(jié)果:龍貝格計(jì)算表:T=-0.39270000-0.3590-0.3478000-0.3498-0.3467-0.346600-0.3474-0.3466-0.3466-0.34660-0.3468-0.3466-0.3466-0.3466-0.3466積分值:quad=-0.3466誤差估:err=2.9333e-007最小步長(zhǎng):h=0.0491(ⅲ)運(yùn)行程序:>>f=inline('1/(x^2-1)');>>a=2;b=3;n=4;tol=1e-6;>>[T,quad,err,h]=romberg(f,a,b,n,tol)計(jì)算結(jié)果:龍貝格計(jì)算表:T=0.229200000.20980.20340000.20450.20280.2027000.20320.20270.20270.202700.20280.20270.20270.20270.2027積分值:quad=0.2027誤差估:err=1.4781e-007最小步長(zhǎng):h=0.0625實(shí)驗(yàn)6數(shù)值積分的設(shè)計(jì)與實(shí)現(xiàn)5點(diǎn)高斯求積公式及復(fù)化3點(diǎn)高斯求積公式functionquad=guass_legendre(f,a,b,n)h=(b-a)/n;quad=0;fork=1:nt=[-1/sqrt(3/5),0,sqrt(3/5)];A=[5/9,8/9,5/9];F=feval(f,h/2*t+a+(k-1/2)*h);quad=quad+sum(A.*F);endquad=h/2*quad;輸入:f1=inline('x.^2.*exp(-x.^2)');a=0;b=2;n=4;quad=guass_legendre(f1,a,b,n);quad=vpa(quad,7)結(jié)果:quad=0.4194083輸入:f2=inline('cot(x)');a=pi/2;b=3*pi/4;n=4;quad=guass_legendre(f2,a,b,n);quad=vpa(quad,7)結(jié)果:quad=-0.3337198輸入:f3=inline('1./(x.^2-1)');a=2;b=3;n=4;quad=guass_legendre(f3,a,b,n);quad=vpa(quad,7)結(jié)果:quad=0.2073716實(shí)驗(yàn)6數(shù)值積分的設(shè)計(jì)與實(shí)現(xiàn)對(duì)五點(diǎn)高斯法與復(fù)化三點(diǎn)高斯法所得的結(jié)果進(jìn)行比較如下:(i)五點(diǎn)高斯法:0.422720775202602

復(fù)化3點(diǎn)高斯:0.422735763060519(ii)五點(diǎn)高斯法:1.542126458733056復(fù)化3點(diǎn)高斯:0.925275412602127(iii)五點(diǎn)高斯法:0.202732641800508復(fù)化3點(diǎn)高斯:-0.025024125653057實(shí)驗(yàn)6數(shù)值積分的設(shè)計(jì)與實(shí)現(xiàn)

結(jié)論:實(shí)驗(yàn)結(jié)果可以看出龍貝格的精度最高,再就是五點(diǎn)高斯法,復(fù)化3點(diǎn)高斯法依次降低低,龍貝格有誤差限的控制,所以精度有誤差控制。對(duì)于高斯法,其自身的構(gòu)造性保證了其具有(2n+1)的精度。而對(duì)于復(fù)化的我們也可以給定誤差限,而不停地分段來增加精度,多次可達(dá)到精度要求。實(shí)驗(yàn)?zāi)康暮腿蝿?wù):理解數(shù)值微分的思想,理解比較求一階導(dǎo)數(shù)的數(shù)值方法。對(duì)于函數(shù):實(shí)驗(yàn)7數(shù)值微分的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)7數(shù)值積分的設(shè)計(jì)與實(shí)現(xiàn)(ⅰ)中心差分:x=2;yy=zeros(6,9);h=[1,0.5,0.2,0.1,0.05,0.02,0.01,0.005,0.001];fori=1:6forj=1:9yy(i,j)=(exp(1/(x(i)+h(j)))-exp(1/(x(i)-h(j))))/(2*h(j));end;end;yy=vpa(yy,6)計(jì)算x=2時(shí)的導(dǎo)數(shù),利用中心差分公式取不同的步長(zhǎng)h,由計(jì)算結(jié)果可知h=0.01的逼近效果較好(ⅱ)數(shù)值積分求導(dǎo):d1=diff(exp(1/x))d1=-exp(1/x)/x^2functiony=f(x)y=-exp(1/x)/x^2所取的求導(dǎo)點(diǎn):x=0.50000.80001.10001.40001.70002.0000

準(zhǔn)確解為:y=-29.5562-5.4537-2.0513-1.0422-0.6231-0.4122(ⅲ)理查森外推計(jì)算

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論