資源描述:
《牛頓迭代法(牛頓-拉夫森)數(shù)值分析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、牛頓迭代法一、牛頓迭代法牛頓迭代法也稱為牛頓-拉夫森(Newton-Raphson)迭代法,它是數(shù)值分析中最重要的方法之一,它不僅適用于方程或方程組的求解,還常用于微分方程和積分方程求解。二、迭代公式用迭代法解非線性方程時(shí),如何構(gòu)造迭代函數(shù)是非常重要的,那么怎樣構(gòu)造的迭代函數(shù)才能保證迭代法收斂呢?牛頓迭代法就是常用的方法之一,其迭代格式的來源大概有以下幾種方式(主要是第一種):1、設(shè),對(duì)在點(diǎn)作泰勒展開:略去二次項(xiàng),得到的線性近似式:。由此得到方程0的近似根(假定0),即可構(gòu)造出迭代格式(假定0):公式(1)這就是牛頓迭代公式,若得到的序列{}收斂于,則就是非線性方程的根。2、
2、牛頓迭代法也稱為牛頓切線法,這是由于的線性化近似函數(shù)=是曲線=過點(diǎn)的切線而得名的,求的零點(diǎn)代之以求的零點(diǎn),即切線與軸交點(diǎn)的橫坐標(biāo),如右圖所示,這就是牛頓切線法的幾何解釋。實(shí)際上,牛頓迭代法也可以從幾何意義上推出。利用牛頓迭代公式,由得到,從幾何圖形上看,就是過點(diǎn)作函數(shù)的切線,切線與軸的交點(diǎn)就是,所以有,整理后也能得出牛頓迭代公式:。3、要保證迭代法收斂,不管非線性方程0的形式如何,總可以構(gòu)造:作為方程求解的迭代函數(shù)。因?yàn)椋憾以诟浇叫。渚植渴諗克俣仍娇?,故可令:?(即根不是0的重根),則由得:,因此可令,則也可以得出迭代公式:。4、迭代法的基本思想是將方程改寫成等價(jià)的
3、迭代形式,但隨之而來的問題卻是迭代公式不一定收斂,或者收斂的速度較慢。運(yùn)用前述加速技巧,對(duì)于簡單迭代過程,其加速公式具有形式:,其中記,上面兩式可以合并寫成:這種迭代公式稱作簡單的牛頓公式,其相應(yīng)的迭代函數(shù)是:。需要注意的是,由于是的估計(jì)值,若取,則實(shí)際上便是的估計(jì)值。假設(shè),則可以用代替上式中的,就可得到牛頓法的迭代公式:。牛頓迭代法實(shí)質(zhì)上是一種線性化方法,其基本思想是將非線性方程逐步歸結(jié)為某種線性方程來求解。三、算法描述用Newton法求方程f(x)=0的一個(gè)解輸入初始值x0;誤差容限TOL;最大迭代次數(shù)m輸出近似解p或失敗信息Step1Step2對(duì)i=1,2,...,m做
4、setp3~4Setp3Setp4若,則輸出(p),停機(jī),否則Setp5輸出失敗信息;停機(jī)注:在第4步中的迭代終止準(zhǔn)則可用:四、C語言代碼求一元四次方程的解doublefunc(doublex)//函數(shù){ returnx*x*x*x-3*x*x*x+1.5*x*x-4.0; } doublefunc1(doublex)//導(dǎo)函數(shù) { return4*x*x*x-9*x*x+3*x; } intNewton(double*x,doubleprecision,intmaxcyc)//初始值,精度,迭代次數(shù) { doublex1,x0; intk; x0=*x
5、; for(k=0;k6、
7、fabs(func(x1))8、/達(dá)到迭代次數(shù),仍沒有達(dá)到精度 return0; } intmain() { doublex,precision; intmaxcyc; printf("輸入初始迭代值x0:"); scanf("%lf",&x); printf("輸入最大迭代次數(shù):"); scanf("%d",&maxcyc); printf("迭代要求的精度:"); scanf("%lf",&precision); if(Newton(&x,precision,maxcyc)==1)//若函數(shù)返回值為1 printf("該值附近的根為:%lf",x); else//若函數(shù)
9、返回值為0 printf("迭代失敗!"); getch(); return0; }五、二元函數(shù)的牛頓迭代法設(shè)z=f(x,y)在點(diǎn)(x0,y0)的某一鄰域內(nèi)連續(xù)且有直到2階的連續(xù)偏導(dǎo)數(shù),(x0+h,y0+k)為此鄰域內(nèi)任意一點(diǎn),則有其中于是方程f(x,y)=0可近似表示為即同理,設(shè)z=g(x,y)在點(diǎn)(x0,y0)的某一鄰域內(nèi)連續(xù)且有直到2階的連續(xù)偏導(dǎo)數(shù),(x0+h,y0+k)為此鄰域內(nèi)任意一點(diǎn),則同樣有其中于是方程g(x,y)=0可近似表示為即于是得到方程組:求解這個(gè)方程組:當(dāng)時(shí)雅可比行列