版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEPAGE10序言數(shù)值分析是計(jì)算數(shù)學(xué)的一個(gè)主要部分,它不僅要研究各種數(shù)學(xué)問(wèn)題的數(shù)值解法,同時(shí)也要分析所用的數(shù)值解法在理論上的合理性,如解法所產(chǎn)生的誤差能否滿足精度要求:解法是否穩(wěn)定、是否收斂及熟練的速度等。由于求解的迭代過(guò)程很復(fù)雜,計(jì)算量很大,所以需要借助其他輔助手段來(lái)求解。本文中采用了軟件C++來(lái)編寫求解程序,C++語(yǔ)言簡(jiǎn)潔緊湊,使用方便靈活,其程序書寫形式自由,壓縮了一切不必要的編程工作并且控制語(yǔ)句非常豐富(如for循環(huán),while循環(huán),break語(yǔ)句和if語(yǔ)句),對(duì)編寫程序提供了很大的便利。在本文中使用C++編寫了牛頓法、牛頓-Steffensen法方程求解的程序和雅格比法、高斯-賽德?tīng)柕ㄇ蠼夥匠探M的程序及Runge-Kutta4階算法,并通過(guò)實(shí)例求解驗(yàn)證了其可行性,比較了求解同一種問(wèn)題時(shí)不同方法之間的優(yōu)缺性,其中包含解的精確度和解的收斂速度兩個(gè)重要指標(biāo)。選用該軟件編寫主要原因是大學(xué)時(shí)期學(xué)習(xí)了C++程序設(shè)計(jì),因此對(duì)于改軟件相對(duì)而言要熟悉些。目錄第一章牛頓法和牛頓-Steffensen法迭代求解的比較 31.1計(jì)算結(jié)果 31.2結(jié)果分析 4第二章Jacobi和Causs-Seidel迭代法比較 42.1計(jì)算結(jié)果 42.2結(jié)果分析 4第三章觀察Runge-Kutta4階算法穩(wěn)定區(qū)間的作用 53.1計(jì)算結(jié)果 63.2結(jié)果分析 6總結(jié) 6附錄 7第一章牛頓法和牛頓-Steffensen法迭代求解的比較分別用牛頓法,及基于牛頓算法下的Steffensen加速法求ln(x+sinx)=0的根。初值x0分別取0.1,1,1.5,2,4進(jìn)行計(jì)算。求sinx=0的根。初值x0分別取1,1.4,1.6,1.8,3進(jìn)行計(jì)算。分析其中遇到的現(xiàn)象與問(wèn)題。1.1計(jì)算結(jié)果(1)方程可變形為x+注:x0為初始值,x為收斂解,N為迭代次數(shù)牛頓法x00.111.524x0.5109730.5109730.5109730.5109730.510973N445640牛頓—Steffensen加速法x0.5109730.510973無(wú)收斂解0.5109730.510973N3348(2)牛頓法x011.41.61.83x03.1415931.41596.283193.14159N57843牛頓—Steffensen加速法x無(wú)收斂解-3.1415925.13276.28319無(wú)收斂解N4631.2結(jié)果分析從結(jié)果對(duì)比我們可發(fā)現(xiàn)牛頓—Steffensen加速法比牛頓法要收斂的快,牛頓法對(duì)于初值的選取特別重要,比如第(1)問(wèn)中的初值為4的情況,迭代次數(shù)算了40次,遠(yuǎn)大于其余初值的情況;在第(2)問(wèn)中的初值為1.6的情況,收斂解得31.4159,分析其原因應(yīng)該是,x0=1.6,;在牛頓—Steffensen加速法第(1)問(wèn)中x=1.5、第二問(wèn)x=0和3的情況,無(wú)收斂解。第二章Jacobi和Causs-Seidel迭代法比較用雅格比法與高斯-賽德?tīng)柕ń庀铝蟹匠探MAx=b,研究其收斂性,上機(jī)驗(yàn)證理論分析是否正確,比較它們的收斂速度,觀察右端項(xiàng)對(duì)迭代收斂有無(wú)影響。(1)A行分別為A1=[6,2,-1],A2=[1,4,-2],A3=[-3,1,4];b1=[-3,2,4]T,b2=[100,-200,345]T,(2)A行分別為A1=[1,0,8,0.8],A2=[0.8,1,0.8],A3=[0.8,0.8,1];b1=[3,2,1]T,b2=[5,0,-10]T,(3)A行分別為A1=[1,3],A2=[-7,1];b=[4,6]T,2.1計(jì)算結(jié)果(1)x0=[0,0,0]T為初始值,N為迭代次數(shù),0.00001為誤差精度,X為收斂解Jacobi迭代Causs-Seidel迭代Ax=b1X[-0.727271,0.808083,0.252524][-0.727275,0.808082,0.252523]N2012Ax=b2X[36.3636,-2.0707,114.04][36.3636,-2.07071,114.04]N2617(2)Jacobi迭代Causs-Seidel迭代Ax=b1X無(wú)收斂解[5.76922,0.76922,-4.23075]N37Ax=b2X無(wú)收斂解[36.6923,7.69229,-42.3077]N44(3)Jacobi迭代Causs-Seidel迭代Ax=bX無(wú)收斂解無(wú)收斂解N2.2結(jié)果分析(1)第一小題的雅可比迭代矩陣為0-0.33330.1667-0.250000.50000.7500-0.25000其特征值分別為-0.5427,0.2713+0.3708i,0.2713-0.3708i,經(jīng)計(jì)算譜半徑為小于1,故方程組雅可比迭代收斂。而高斯-賽德?tīng)柕仃嚍?-0.33330.166700.08330.45830-0.27080.0104其特征值為0,0.0469+0.3504i,0.0469-0.3504i經(jīng)計(jì)算譜半徑為0.3535小于1,故原方程組高斯-賽德?tīng)柕仃囀諗俊5诙☆}的雅可比迭代矩陣為0-0.8000-0.8000-0.80000-0.8000-0.8000-0.80000征值分別為-1.6,0.8,0.8,經(jīng)計(jì)算譜半徑為1.6大于1,故方程組雅可比迭代發(fā)散。而高斯-賽德?tīng)柕仃嚍?-0.8000-0.800000.6400-0.160000.12800.7680其特征值為0,0.7040+0.1280i,0.704280i經(jīng)計(jì)算譜半徑為0.7155小于1,故原方程組高斯-賽德?tīng)柕仃囀諗?。第三小題的雅可比迭代矩陣為0-370其特征值分別為4.5826i,-4.5826i,譜半徑為4.5826大于1,故方程組雅可比迭代發(fā)散。而高斯-賽德?tīng)柕仃嚍?-30-21其特征值為0,-21,譜半徑為21大于1,故原方程組高斯-賽德?tīng)柕仃嚢l(fā)散。(2)從2.1中的結(jié)果列表中可以看到,Causs-Seidel迭代法比Jacobi迭代法收斂速度要快,并且方程組右端項(xiàng)對(duì)迭代收斂是無(wú)影響的。第三章觀察Runge-Kutta4階算法穩(wěn)定區(qū)間的作用用Runge-Kutta4階算法對(duì)初值問(wèn)題y/=-20*y,y(0)=1按不同步長(zhǎng)求解,用于觀察穩(wěn)定區(qū)間的作用,推薦兩種步長(zhǎng)h=0.1,0.2。注:此方程的精確解為:3.1計(jì)算結(jié)果=1.0h=0.1h=0.21.6935131251.693331253.2結(jié)果分析,h=0.2時(shí),h=-4,而Runge-Kutta4階算法的絕對(duì)穩(wěn)定區(qū)間是[-2.78,0],故h=0.2時(shí)計(jì)算不穩(wěn)定;而h=0.1時(shí),h=-2,在絕對(duì)穩(wěn)定區(qū)間內(nèi),計(jì)算穩(wěn)定,結(jié)果可靠??偨Y(jié)通過(guò)這次上機(jī)練習(xí),讓我對(duì)數(shù)值分析所介紹的迭代求解方法及其理論有了更深層次的理解,了解了各種方法之間的優(yōu)缺點(diǎn),并且認(rèn)識(shí)到了自己在以前的學(xué)習(xí)中所存在的問(wèn)題,及時(shí)的修補(bǔ)了自己知識(shí)上的漏洞。同時(shí)也提高了我在編寫程序上的熟練程度,所以,我認(rèn)為這次上機(jī)實(shí)習(xí)是非常有收獲的,給予我學(xué)習(xí)數(shù)值分析的幫助也是非常大的。附錄1.1第(1)問(wèn)牛頓法#include<iostream>#include<cmath>usingnamespacestd;intmain(){ doublex,x0; inti=0; cout<<"請(qǐng)輸入初值:"; cin>>x0; do{x=x0; x0=x0-(x0+sin(x0)-1)/(1+cos(x0)); i++;}while(fabs(x-x0)>=0.000001);cout<<"x="<<x0<<endl;cout<<"N="<<i<<endl;return0;}1.2第(1)問(wèn)牛頓—Steffensen加速法#include<iostream>#include<cmath>usingnamespacestd;intmain(){ doublex,x0,x1,x2; inti=0; cout<<"請(qǐng)輸入初值:"; cin>>x0; do{ x=x0;x1=x0-(sin(x0)+x0-1)/(cos(x0)+1); x2=x1-(sin(x1)+x1-1)/(cos(x1)+1); x0=x0-(x1-x0)*(x1-x0)/(x2-2*x1+x0); i++;}while(fabs(x-x0)>=0.000001);cout<<"x="<<x0<<endl;cout<<"N="<<i<<endl;return0;}1.3第(2)問(wèn)牛頓法#include<iostream>#include<cmath>usingnamespacestd;intmain(){ doublex,x0; inti=0; cout<<"請(qǐng)輸入初值:"; cin>>x0; do{x=x0; x0=x0-sin(x0)/cos(x0); i++;}while(fabs(x-x0)>=0.000001);cout<<"x="<<x0<<endl;cout<<"N="<<i<<endl;return0;}1.4第(2)問(wèn)牛頓—Steffensen加速法#include<iostream>#include<cmath>usingnamespacestd;intmain(){ doublex,x0,x1,x2; inti=0; cout<<"請(qǐng)輸入初值:"; cin>>x0; do{ x=x0;x1=x0-sin(x0)/cos(x0); x2=x1-sin(x1)/cos(x1); x0=x0-(x1-x0)*(x1-x0)/(x2-2*x1+x0); i++;}while(fabs(x-x0)>=0.000001);cout<<"x="<<x0<<endl;cout<<"N="<<i<<endl;return0;}2.1雅格比法#include<iostream>#include<cmath>usingnamespacestd;intmain(){ doublea[10][10],b[10],sum=0.0,x[10],y[10],c,s=0.0; inti,k=0,n,j; cout<<"請(qǐng)輸入維數(shù):"; cin>>n; cout<<"請(qǐng)輸入數(shù)組A:"; for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>a[i][j];cout<<"請(qǐng)輸入數(shù)組B:"; for(i=0;i<n;i++) cin>>b[i];cout<<"請(qǐng)輸入初始X:"; for(i=0;i<n;i++) cin>>x[i]; do{for(i=0;i<n;i++) {for(j=0;j<i;j++) sum=sum+a[i][j]*x[j];for(j=i+1;j<n;j++) sum=sum+a[i][j]*x[j]; y[i]=(b[i]-sum)/a[i][i]; sum=0; } c=0; for(i=0;i<n;i++) if(c<fabs(x[i]-y[i])) c=fabs(x[i]-y[i]); if(c>0.00001) c=0; elses=1;for(i=0;i<n;i++) x[i]=y[i];k++;}while(s!=1);for(i=0;i<n;i++) cout<<"解為:"<<x[i]<<endl;cout<<"N="<<k<<endl;return0;}2.2高斯-賽德?tīng)柕?include<iostream>#include<cmath>usingnamespacestd;intmain(){ doublea[10][10],b[10],sum=0.0,x[10],y[10],c,s=0.0,z[10]; inti,k=0,n,j; cout<<"請(qǐng)輸入維數(shù):"; cin>>n; cout<<"請(qǐng)輸入數(shù)組A:"; for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>a[i][j];cout<<"請(qǐng)輸入數(shù)組B:"; for(i=0;i<n;i++) cin>>b[i];cout<<"請(qǐng)輸入初始X:"; for(i=0;i<n;i++) cin>>x[i]; do{for(i=1;i<n;i++) z[i]=x[i]; for(i=0;i<n;i++) {for(j=0;j<i;j++) sum=sum+a[i][j]*x[j];for(j=i+1;j<n;j++) sum=sum+a[i][j]*x[j]; y[i]=(b[i]-sum)/a[i][i]; sum=0; x[i]=y[i]; } c=0; for(i=0;i<n;i++) if(c<fabs(z[i]-y
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年江西制造職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)附答案解析
- 盛虹集團(tuán)校招面試題目及答案
- 2023年溫州職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案解析
- 2024年重慶機(jī)電職業(yè)技術(shù)大學(xué)單招職業(yè)適應(yīng)性測(cè)試模擬測(cè)試卷附答案解析
- 2023年西安航空職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試模擬測(cè)試卷附答案解析
- 2023年廣東省清遠(yuǎn)市單招職業(yè)適應(yīng)性測(cè)試模擬測(cè)試卷附答案解析
- 2023年福建水利電力職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試模擬測(cè)試卷附答案解析
- 2025年克孜勒蘇職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)附答案解析
- 2025年陜西省咸陽(yáng)市單招職業(yè)傾向性測(cè)試題庫(kù)附答案解析
- 2024年梧州職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試模擬測(cè)試卷附答案解析
- 墻壁維護(hù)施工方案(3篇)
- 骨外科護(hù)理年度工作總結(jié)范文
- 東北大學(xué)《大學(xué)物理》2024 - 2025 學(xué)年第一學(xué)期期末試卷
- 人工智能安全風(fēng)險(xiǎn)測(cè)評(píng)白皮書(2025年)
- 2025下半年貴州遵義市第一人民醫(yī)院招聘事業(yè)單位65人筆試備考重點(diǎn)試題及答案解析
- 圍麻醉期應(yīng)激反應(yīng)的調(diào)控策略
- 2025年外貿(mào)實(shí)習(xí)合同協(xié)議
- 集成電路封裝測(cè)試廠建設(shè)項(xiàng)目可行性研究報(bào)告
- 醫(yī)院服務(wù)禮儀培訓(xùn)
- 亞朵酒店管理分析
- 個(gè)人簡(jiǎn)歷模版(三頁(yè))帶封面(可編輯)大學(xué)畢業(yè)生版
評(píng)論
0/150
提交評(píng)論