版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 計算機與通信工程學院 I 儲 School of Compuier and ComumcaiKXi Engine竊Ing 數(shù)值球根試驗報告 數(shù)值計算方法 專業(yè)班級 姓 名 學號08083117 時間2010年10月24日星期天 實驗目的 熟悉二分法以及牛頓迭代法求方程近似根的數(shù)值方法,掌握各種迭代 方法,自己擴張研究迭代法的效率與收斂性和初始值的關系。 實驗內容 1. 已知f (x) =x3 4x2 一10 = 0在1,2】上有一個實根x* , f(1) = -5, f(2)= 14,用二分法和牛頓迭代法求該實根,要求精度滿足條 ,. * 1 3 件:x xk*蘭尹燈0 。 2. 條件允許的
2、話,擴展研究各種迭代法的效率,以及迭代的效率和 收斂性與初始值的關系,并通過比較采用兩點加速的方法與普通的方法的 效率體驗加速迭代的優(yōu)點。 總而言之,本實驗中的用到的求根方法有二分法,牛頓迭代法, 1 丄 迭代函數(shù)為(x)二丄(10-x3)2的迭代方法,以及對函數(shù) 2 1 (x!(1x3)2采用兩點加速迭代的方法。 2 三、主函數(shù)流程 程序是按順序運行的,流程圖如下圖所示: 迭代法 分法 結束 等待用戶輸 入求根方式 開始 value=x*x*x+4*x*x-10; return value; /根據(jù)參數(shù)x的值計算函數(shù)f(x)的導數(shù)值 double divFunc(double x) retu
3、rn 3*x*x+8*x; /二分法計算方程f(x)=0在1,2上的跟 / 二份迭代結束條件由參數(shù) precision 精度給出 void biSectionMethod(double precision) int k=0;/ 均分次數(shù) double x1=1.0,x2=2.0;/區(qū)間1.0,2.0 double midx;/ 二分之后的值 printf(nt k 有根區(qū)間k+1f(x(k+1) ); do printf(nt%3d,k); printf(%.3f,%.3f,x1,x2); midx=(x1+x2)/2; printf(%f,midx); printf(%.6f,func(mi
4、dx); if (func(midx)=precision);/ 區(qū)間的長度超過 5e-3 就一直迭代 printf(nt二分法分區(qū)間的次數(shù):d所求的根是:lf,k-1,x2); / 牛頓迭代法 /根據(jù)初值值xO,在區(qū)間1.0,2.0上迭代求根 /迭代次數(shù)由參數(shù) precision 精度決定 void NewTonMethod(double x0,double precision) int k=0;/ 迭代次數(shù) double x1,x2=x0; printf(nt kx(k)f(x(k)|x(k+1)-x(k)|); do printf(nt%2d,k); printf(%.6f,x2); p
5、rintf(%.6f,func(x2); x1=x2; x2=x2-func(x1)/divFunc(x1); if (x2-x10) printf(%.6f,x2-x1);/輸出兩次迭代的差值 else printf(%.6f,x1-x2); k+; if (k%3=0) / 每次輸出 4 個等用戶審查 getch(); while (x2-x1precision|x1-x2precision); printf(nt牛頓迭代初值:lf次數(shù):d所求的根是:lf,x0,k-1,x2); / 迭代函數(shù) g(x)=(sqrt(10-x*x*x)/2; double funcTwo(double x)
6、 return (sqrt(10-x*x*x)/2; /普通迭代函數(shù) void ordinaMethod(double x0,double precision) int k=0;/ 迭代次數(shù) double x1,x2=x0; printf(nt kx(k)f(x(k)|x(k+1)-x(k)|); do printf(nt%2d,k); printf(%.6f,x2); printf(%.6f,func(x2); x1=x2; x2=funcTwo(x1); if (x2-x10) printf( %.6f,x2-x1); / 輸出兩次迭代的差值 else printf( %.6f,x1-x2
7、); k+; if (k%3=0) / 每次輸出 4 個等用戶審查 getch(); while (x2-x1precision|x1-x2precision); printf(nt普通迭代初值:lf次數(shù):d所求的根是:lf,x0,k-1,x2); / 使用兩個跌代值的組合加速跌代 / 對迭代函數(shù) f(x)=(sqrt(10-x*x*x)/2 的加速 void twoValue(double x0,double precision) int k=0;/ 迭代次數(shù) double x1,x2=x0; printf(nt kx(k)f(x(k)|x(k+1)-x(k)|); do printf(nt
8、%2d,k); printf(%.6f,x2); printf(%.6f,func(x2); x1=x2; x2=(funcTwo(x1)+x1)/2; if (x2-x10) printf(%.6f,x2-x1);/輸出兩次迭代的差值 else printf(%.6f,x1-x2); k+; if (k%3=0)/ 每次輸出 4個等用戶審查 getch(); while (x2-x1precision|x1-x2precision); printf(nt 兩點加速迭代初值:%lf,次數(shù):4根:lf,x0,k,x2); void main() double orgin=1.5;/ 初始值 do
9、uble precision=5e-6; / 精度 char sel=0;/ 操作符 while(1) printf(nt 選擇:);printf(nt1. 二分法 nt2. 迭代法 nt); sel=getch(); printf(nnt 注:程序停止處按任意鍵繼續(xù) ); if (sel=1) printf(nnt * biSectionMethod(precision); else 分法求解過程 * / 測試函數(shù) ); printf(nt 輸入迭代的初值 :); scanf(%lf, /if (orgin2.0|orgin1.367 9 3631.3651 10 1-364,1.3651
10、11 1.365,1.3651 12 1.365,1.365 13 1-365,1-3651 14 1.365,1.3653 15 1.365,1.3651 16 1-3:(xH1(1x3),結果如下: 2 *普通迭 ftsr = s qrt /2 * k 耳g f :x-x: 0 11陌0000 -3.829000 0.372158 1 1-472158 1.859535 0.167411 2 1-304748 -0.969377 0.099781 3 1.394529 0.490796 0044710 4 1-349819 -0.2525&9 0.023190 5 1-373009 0.1
11、28947 0.011790 e 丄361219 -0.0&6108 0.006057 ? 1.367276 0.033820 0.003095 8 1.3641S1 -0.017321 0.001586 9 1365767 0.008866 0B00812 10 1.364955 -0.004539 0.000416 11 1-365371 0.U02324 0.00U213 12 丄365158 -8.001190 0.00H109 13 1.365267 0.000609 0 000056 14 1.365211 -0.000312 0.00U029 15 1.365240 0.0001
12、60 0.003015 16 1.365225 一00000S2 000000? 17 1-365233 0.000042 0.000004 瞽裁磨ZE次數(shù)所求的根是:55229 接著可以看到的是用兩點加速法對函數(shù) ;:(x) -(lO-x3)。的加速: 2 wrtti.卜.f古上*Hin片古;出_ .=、藍站址童”址董宜三資童 *則 1 1M 爼 口X 2 +x ?Z. * k x f x lx-xl 0 11耐0000 -382?000 0.186079 1 1-286079 -1.25682? 0.058424 2 1.3445B3 -0-33S797 0.015569 3 136007
13、2 -0.084955 0.003893 4 1363965 -0.020873 0.000956 & 1-364921 -0.005102 臥000234 6 1.365155 -0001246 0.00005? 7 1365212 -0 000304 0000014 8 1-365226 -0.000074 0.000033 臨針值次如根1329 1亠 下面采用不同的初值查看普通迭代函數(shù)的收斂性與效率: 各個結果如下: 背通迭代初值:亠2豳0靦”次數(shù)= 17,所求的根是:丄-3陌2加 上圖對應的是收斂性:收斂的 上圖收斂的,且速度比上面的要快。 背通迭代初值:-2.500000.次數(shù):1,所求的根是:-l.#IND00 上圖對應的是收斂性:發(fā)散的 六、結論與分析 從以上的程序可以看出一下幾點結論 1、二分法和迭代法均能解出方程的根。 2、一般地看來,牛頓迭代法的效率較普通迭代法的要高,兩點加速迭 代法能加速一般迭代法。 3、迭代法對初值是敏感的,若初值選擇的不合適可能導致迭代的效率 1 3 2 很低,甚至是發(fā)散的。例如,對于函數(shù)(x)(10 - x3)2形成的迭
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 虛擬偶像虛擬現(xiàn)實技術應用-洞察分析
- 藝術與意識形態(tài)研究-洞察分析
- 游戲跨界合作模式-洞察分析
- 移動健康干預研究-洞察分析
- 原型設計與迭代方法-洞察分析
- 網絡安全與數(shù)據(jù)保護-洞察分析
- 心理咨詢在特殊兒童干預中的應用-洞察分析
- 網絡安全在電信行業(yè)的重要性-洞察分析
- 細胞液分子識別-洞察分析
- 云內存安全審計-洞察分析
- 日本專利法中文版
- 煙化爐(上海冶煉廠編)_圖文
- 滑坡監(jiān)測技術方案
- 中壓蒸汽管道項目可行性研究報告寫作范文
- 施工進度計劃(橫道圖-)
- 漢字的演變完美版.ppt
- (完整word版)密封條模版
- 壓裂施工 安全操作規(guī)定
- 廣州城鄉(xiāng)居民基本養(yǎng)老保險待遇申請表
- 元素周期表鍵能鍵長半徑
- 教師考核工作登記表2013
評論
0/150
提交評論