數(shù)值計(jì)算(二分法、簡單迭代法、Newton迭代法、弦截法(割線法、雙點(diǎn)弦法))_第1頁
數(shù)值計(jì)算(二分法、簡單迭代法、Newton迭代法、弦截法(割線法、雙點(diǎn)弦法))_第2頁
數(shù)值計(jì)算(二分法、簡單迭代法、Newton迭代法、弦截法(割線法、雙點(diǎn)弦法))_第3頁
數(shù)值計(jì)算(二分法、簡單迭代法、Newton迭代法、弦截法(割線法、雙點(diǎn)弦法))_第4頁
數(shù)值計(jì)算(二分法、簡單迭代法、Newton迭代法、弦截法(割線法、雙點(diǎn)弦法))_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、本科生實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)課程 數(shù)值計(jì)算方法 學(xué)院名稱 信息科學(xué)與技術(shù)學(xué)院 專業(yè)名稱 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生姓名 學(xué)生學(xué)號 指導(dǎo)教師 實(shí)驗(yàn)地點(diǎn) 實(shí)驗(yàn)成績 二 一六 年 五 月 二一六 年 五 月實(shí)驗(yàn)一 非線性方程求根1.1問題描述實(shí)驗(yàn)?zāi)康模赫莆辗蔷€性方程求根的基本步驟及方法,。實(shí)驗(yàn)內(nèi)容:試分別用二分法、簡單迭代法、Newton迭代法、弦截法(割線法、雙點(diǎn)弦法),求 x5-3x3+x-1= 0 在區(qū)間 -8,8上的全部實(shí)根,誤差限為10-6。要求:討論求解的全過程,對所用算法的局部收斂性,優(yōu)缺點(diǎn)等作分析及比較, 第2章 算法思想2.1二分法思想:在函數(shù)的單調(diào)有根區(qū)間內(nèi),將有根區(qū)間不斷的二分,尋找方程的解

2、。步驟: 1.取中點(diǎn)mid=(x0+x1)/22.若f(mid)=0,則mid為方程的根,否則比較與兩端的符號,若與f(x0)異號,則根在x0,mid之間,否則在mid,x1之間。3并重復(fù)上述步驟,直達(dá)達(dá)到精度要求,則mid為方程的近似解。2.2 簡單迭代法思想:迭代法是一種逐次逼近的方法,它是固定公式反復(fù)校正跟的近似值,使之逐步精確,最后得到精度要求的結(jié)果。步驟:1.構(gòu)造迭代公式f(x),迭代公式必須是收斂的。 2.計(jì)算x1,x1=f(x0). 3.判斷|x1-x0|是否滿足精度要求,如不滿足則重復(fù)上述步驟。 4輸出x1,即為方程的近似解。2.3 Newton迭代法思想:設(shè)r是的根,選取作為

3、r的初始近似值,過點(diǎn)做曲線的切線L,L的方程為,求出L與x軸交點(diǎn)的橫坐標(biāo),稱x1為r的一次近似值。過點(diǎn)做曲線的切線,并求該切線與x軸交點(diǎn)的橫坐標(biāo),稱為r的二次近似值。重復(fù)以上過程,得r的近似值序列,其中,稱為r的次近似值步驟:1.計(jì)算原函數(shù)的導(dǎo)數(shù)f(x);構(gòu)造牛頓迭代公式2.計(jì)算 ,若f(x0)=0,退出計(jì)算,否則繼續(xù)向下迭代。3.若|x1-x0|滿足精度要求,x1即為方程的近似解。2.4弦截法思想:為加速收斂,改用兩個(gè)端點(diǎn)都在變動的弦,用差商替代牛頓迭代公式的導(dǎo)數(shù)f(x)。步驟: 1.構(gòu)造雙點(diǎn)弦法的公式2.計(jì)算x2=x1-f(x1)(x1-x0)/f(x1)-f(x0);3.判斷f(x2)是

4、否滿足精度要求,若沒有則按照上述步驟繼續(xù)迭代,否則輸出x2.x2即為方程的近似解。第3章 測試結(jié)果及分析 測試結(jié)果函數(shù)圖像函數(shù) Y=x5-3x3+x-1 二分法(表1-1,1-2,1-3)-1.6,-1.3kxkkxkkxk0-1.455-1.5015610-1.504931-1.5256-1.5039111-1.5052-1.48757-1.5050812-1.505043-1.506258-1.5044913-1.505064-1.496889-1.5047914-1.50507 表1-1 區(qū)間-1.2,-0.9kxkkxkkxk0-1.055-0.99843710-1.000051-0.

5、9756-1.0007811-0.9999762-1.01257-0.99960912-1.000013-0.993758-1.000213-0.9999944-1.003129-0.99990214-1表1-2區(qū)間1.5,1.8kxkkxkkxk01.6571.69102141.6902911.72581.69043151.6902921.687591.69014161.6902931.70625101.69028171.6902841.69687111.69036181.6902851.69219121.6903261.68984131.6903表1-3簡單迭代法(表2-1.2-2.2-3

6、)初值-1.5kxkkxkkxk1-1.57-1.5043513-1.504932-1.502178-1.5045314-1.504973-1.502879-1.50466151.504994-1.5034110-1.5047616-1.505015-1.5038111-1.5048317-1.505046-1.5041212-1.5048918-1.50505表2-1初值-1kx1-12-1表2-2初值1.6 結(jié)果 x=1.69028kxkkxkkxk11.681.68862151.6902321.6566991.68927161.6902531.66987101.68967171.6902

7、741.6779111.68991181.6902751.68278121.69006191.6902861.68573131.69015201.6902871.68753141.6902表2-3牛頓迭代法(表3-1.3-2,3-3)初值-1.5 結(jié)果 x=-1.50507kxkkxk1-1.54-1.505042-1.504715-1.505063-1.504976-1.50507表3-1初值-1 結(jié)果 x=-1.50507kx1-12-1表3-2初值1.6 結(jié)果 x=1.69028kxkkxk11.651.6902421.6860261.6902731.6889371.6902841.68

8、98581.69028表3-3雙點(diǎn)弦法(表4-1.4-2,4-3)區(qū)間-1.6,-1.3 結(jié)果 x=-1.50507 kxkf(xk)kxkf(xk)1-1.50.031255-1.506670.07845662-1.661490.3765026-1.505-0.0100793-1.47175-1.563227-1.505070.0004409884-1.4920.1868018-1.505072.30387e-006表4-1區(qū)間-1.2,-0.9 結(jié)果 x= -1 kxkf(xk)1-1.013930.04156782-1.00020.0006077773-0.999999-3.11969e

9、-0064-12.11001e-010表4-2區(qū)間1.5,1.8 結(jié)果 x=1.69028kxkf(xk)11.64403-0.67645521.68071-0.15110631.691260.015798841.69027-0.00031351551.69028-6.3006e-007表4-3從測試結(jié)果可以看出二分法和簡單迭代法的收斂速度遠(yuǎn)大于牛頓迭代和弦截法的收斂速度。二分法和簡單迭代法的公式易于構(gòu)造和計(jì)算,牛頓迭代法雖然收斂高,但要求導(dǎo)數(shù),計(jì)算的復(fù)雜度高!雙點(diǎn)弦法隨稍慢于牛頓跌代法,可以用差商代替牛頓迭代法中的導(dǎo)數(shù),降低了計(jì)算的復(fù)雜度!附錄:源程序清單#include#includeus

10、ing namespace std;double foot =0.3; /定義尋根步長int a=-8,b=8;double *rn=new double5; /解的區(qū)間double *r = new double5; / 方程近似解int m=0; /根的個(gè)數(shù)int x_count; double precision=0.000001; /精度要求/函數(shù)的表達(dá)式(x5-3x3+x-1)double f(double x) return (pow(x,5)-3*pow(x,3)+x-1);void init() /根據(jù)函數(shù)圖像確定根的區(qū)間和迭代初值 r0=-1.5; r1=-1; r2=1.6

11、; rn0=-1.6; rn1=-1.2; rn2=1.5;/尋找根的區(qū)間 void search()/若沒有給出區(qū)間和初值,進(jìn)行逐步搜索有根區(qū)間 for(int i=0;i*foot-88;i+) if(f(i*foot-8)*f(i+1)*foot-8)precision) mid = (a+b)/2; if(f(a)*f(mid)=0) b=mid;/判斷與端點(diǎn)函數(shù)值得符號 else a=mid; coutmidendl; rx_count+=mid; return mid; /返回最終結(jié)果 /=簡單迭代法= /構(gòu)造迭代公式double fitera(double x) double r

12、esult=0; double xx=3*pow(x,3)-x+1; if(xx=0) xx=-xx; return pow(xx,1.0/5.0)*(-1); else return pow(xx,1.0/5.0); /簡單迭代double itera(double x0) coutx0precision) x0=x1; x1=fitera(x0); /沒有到達(dá)精度要求繼續(xù)迭代 coutx1precision) x0=x1; if (newtonitera(x0)=-1) break; x1=newtonitera(x0); /繼續(xù)迭代 coutx1endl; return x1; /返回最

13、終結(jié)果/=雙點(diǎn)弦法迭代=/構(gòu)造弦截法的迭代公式double twopointchord_f(double x0,double x1) return x1-(f(x1)/(f(x1)-f(x0)*(x1-x0);/雙點(diǎn)弦法迭代double twopointchord(double x0,double x1) double x3=twopointchord_f(x0,x1); coutx3precision) coutf(x3)f(x3)endl;/輸出x3的函數(shù)值 x0=x1; x1=x3; x3=twopointchord_f(x0,x1);/沒有到達(dá)精度要求繼續(xù)迭代 / coutx3endl

14、; coutf(x3)endl; return x3; /返回最終結(jié)果/測試void main()init();/初始化區(qū)間和迭代初值/* 測試代碼 輸出每次的迭代結(jié)果和最終結(jié)果 cout-二分法-endl;for(int i =0;i3;i+)double result=0;cout有根區(qū)間為rni rni+footendl;result=Dichotomy(rni,rni+foot); /將區(qū)間端點(diǎn)帶入公式cout求得近似解為resultendl;cout-迭代法-endl;for(i =0;i3;i+)double result=0;cout有根區(qū)間為rni rni+footendl;d

15、ouble x0 =ri; /取得初值result=itera(x0); /帶入公式cout求得近似解為resultendl;cout-牛頓迭代-endl;for(i =0;i3;i+)double result=0;cout有根區(qū)間為rni rni+footendl;double x0 =ri; /取得初值result=newton(x0); /帶入公式 cout求得近似解為resultendl;cout-弦截法-endl;for(i =0;i3;i+)double result=0;cout有根區(qū)間為rni rni+footendl; result=twopointchord(rni,rni+foot); /將區(qū)間端點(diǎn)帶入公式cout求得近似解為resultendl;/*學(xué)生實(shí)驗(yàn) 心得 在這次實(shí)驗(yàn)中,通過編程將二分法、簡單迭代法、Newton迭代法、弦截法(割線法、雙點(diǎn)弦法)以代碼的方式實(shí)現(xiàn),這不僅

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論