數(shù)值分析上機實踐_第1頁
數(shù)值分析上機實踐_第2頁
數(shù)值分析上機實踐_第3頁
數(shù)值分析上機實踐_第4頁
數(shù)值分析上機實踐_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1、分別用牛頓法,及牛頓-Steffensen法 (1) 求ln(x+sinx)=0的根。初值x0分別取0.1, 1,1.5, 2, 4進行計算。(2) 求sinx=0的根。初值x0分別取1,1.4,1.6, 1.8,3進行計算。分析其中遇到的現(xiàn)象與問題。(1)、newton法(1)、對應(yīng)M文件為newton1如下:function x=newton1(x0) x=x0-(x0+sin(x0)*log(x0+sin(x0)/(1+cos(x0);while (x-x0>0)|(x-x0<0) x0=x; x=x0-(x0+sin(x0)*log(x0+sin(x0)/(1+cos(

2、x0);end>> newton1(0.1)ans = 0.5110>> newton1(1)ans = 0.51101.5、2.4作為初值不適合,計算結(jié)果出現(xiàn)復(fù)數(shù)。 (2)對應(yīng)M文件為newton2如下:function x=newton2(x0) x=x0-sin(x0)/cos(x0);while (x-x0>0)|(x-x0<0) x0=x; x=x0-sin(x0)/cos(x0);end>> newton2(1)ans = 0>> newton2(1.4)ans = 3.1416>> newton2(1.6)a

3、ns = 31.4159>> newton2(1.8)ans = 6.2832>> newton2(3)ans = 3.1416>> newton2(3.3)ans = 3.1416>> newton2(3.9)ans = 3.1416 初始值取值不同,有可能造成迭代公式發(fā)散。計算不出正確值,或是計算得出錯誤的值。(2)、newton-steffensen加速法(1)、對應(yīng)的M文件為NS111如下:function x=NS111(x0)y0=x0-(x0+sin(x0)*log(x0+sin(x0)/(1+cos(x0);z0=y0-(y0+s

4、in(y0)*log(y0+sin(y0)/(1+cos(y0);x=x0-(y0-x0)*(y0-z0)/(z0-2*y0+x0);while (abs(x-x0)>0.00001) x0=x;y0=x0-(x0+sin(x0)*log(x0+sin(x0)/(1+cos(x0);z0=y0-(y0+sin(y0)*log(y0+sin(y0)/(1+cos(y0); x=x0-(y0-x0)*(y0-z0)/(z0-2*y0+x0);endx=x0 >> NS111(0.1)x = -10.7295 - 3.1908ians = -10.7295 - 3.1908i>

5、;> NS111(1)x = 0.5140ans = 0.5140>> NS111(1.5)x = 0.5140 - 0.0000ians = 0.5140 - 0.0000i>> NS111(2.4)x = 2.9105e+002 -4.0048e-001ians = 2.9105e+002 -4.0048e-001i (2)、對應(yīng)M文件為NS2如下:function x=NS2(x0)y0=x0-sin(x0)/cos(x0);z0=y0-sin(y0)/cos(y0);x=x0-(y0-x0)*(y0-z0)/(z0-2*y0+x0);while (abs(

6、x-x0)>0.00001) x0=x;y0=x0-sin(x0)/cos(x0);z0=y0-sin(y0)/cos(y0); x=x0-(y0-x0)*(y0-z0)/(z0-2*y0+x0);end x=x0 >> NS2(1)x = 0.0311ans = 0.0311>> NS2(1.4)x = -0.0311ans = -0.0311>> NS2(1.6)x = 3.1727ans = 3.1727>> NS2(1.8)x = 9.3937ans = 9.3937>> NS2(3)x = 3.1105ans = 3.

7、1105>> NS2(3.3)x = 3.1727ans = 3.1727兩種算法算出的X值有略微的差別,說明兩者的計算精度不同.2 松弛因子對SOR法收斂速度的影響。用SOR法求解方程組Ax=b,其中要求程序中不存系數(shù)矩陣A,分別對不同的階數(shù)取w=1.1, 1.2, .,1.9進行迭代,記錄近似解x(k)達到|x(k)-x(k-1)|<10-6時所用的迭代次數(shù)k,觀察松弛因子對收斂速度的影響,并觀察當w<=0或w>=2會有什么影響?解:本題的主要目的為分析松弛因子對收斂速度的影響,在編寫程序是需要輸出迭代次數(shù),程序能夠接受不同的松弛因子w,而且可以算出方程的解.

8、 本題方程組很特殊,無論是幾階,其解都是1. 而且無論是幾階,都可以將SOR迭代公式寫成下式 : (1in)xik=xik-1-w4-3+4xik-1-xi+1k-1 i=1 xik=xik-1-w4-2-xi-1k+4xik-1-xi+1k-1 2in-1xik=xik-1-w4-3+4xik-1-xi-1k i=n 使用上式不難編出程序,本程序可以輸入方程階數(shù)和w值,可以求出迭代次數(shù)和解向量,程序的初始值設(shè)置為0向量,程序中設(shè)置迭代終止條件|x(k+1)-x(k)|1<10-6 ,本程序只適于上式,不具普遍性.由于本題方程組很特殊,所以程序既沒有存系數(shù)矩陣,也沒有用向量存系

9、數(shù).源代碼見附錄A .表8 迭代次數(shù)計算匯總 方程階數(shù) W567891.1991011121.212121314141.314151616171.414151616171.525252525251.632323334341.745454747461.871737375741.9151151151153155從上面的結(jié)果可以看出,對于本方程組,隨著w的增大,大大地降低了迭代速度,方程階數(shù)的提高也有增大迭代次數(shù)的趨勢.下面分析w<=0 的情況.還是取5到9階的方程,w分別取為-0.1 -0.5 -1.0 -2.0 四個值,結(jié)果均不收斂.下面分析w>=2 的情況. 還是取5到9階的方程,

10、w分別取為2.0 2.1 2.5 3 四個值,結(jié)果均不收斂.從書上的理論可知,SOR迭代法收斂的一個必要條件是0<w<2 ,程序驗算的結(jié)果證明了這個理論.總結(jié)與分析1. SOR迭代法的關(guān)鍵還是寫出收斂的迭代格式,C+程序只負責迭代計算.2. 從本題來看w取為1.1時迭代速度最快,取為1.9時收斂速度最慢.3. SOR方法是求解大型稀疏矩陣方程組的有效方法之一,如果遇到系數(shù)矩陣是稀疏矩陣,那么應(yīng)該想到這種方法.4. 對本題這種三對角方程組,追趕法更加適宜. SOR迭代法程序(C+)#include<iostream>#include<cmath>#includ

11、e<iomanip>#include<vector>using namespace std;double norm1(const vector<double>& v1,const vector<double>& v2)int i;double ans=0.0;for(i=0;i<=v1.size()-1;i+)ans+=fabs(v1i-v2i);return ans;int main()int i,n,js=0;double w;cin>>n;cin>>w;vector<double> x1(n),x2(n);fill(x1.begin(),x1.end(),0.0);fill(x2.begin(),x2.end(),0.0);while(1)x20+=(-(w/4)*(-3-x21+4*x20);for(i=1;i<=x2.size()-2;i+)x2i+=(-(w/4)*(-2-x2i-1+4*x2i-x2i+1);x2x2.size()-1+=(-(w/4)*(-3+4*x2x2.size()-1-x2x2.size()-2);js+;if(norm1(x1,x2)<1e-6) break;else x1=x2;cout<

溫馨提示

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

最新文檔

評論

0/150

提交評論