牛顿迭代法(Newton#39;s Method)
一方法在牛頓生前并未公開(kāi)發(fā)表(討厭的數(shù)學(xué)家們還是鼓搗出來(lái)了)
牛頓法的作用是使用迭代的方法來(lái)求解函數(shù)方程的根。
簡(jiǎn)單地說(shuō),牛頓法就是不斷求取切線的過(guò)程。
對(duì)于形如f(x)=0的方程,首先隨意估算一個(gè)解x0,再把該預(yù)計(jì)值代入原方程中。
因?yàn)橐话悴粫?huì)正好選擇到正確的解。所以有f(x)=a。這時(shí)計(jì)算函數(shù)在x0處的斜率,和這條斜率與x軸的交點(diǎn)x1。
f(x)=0中精確解的意義是,當(dāng)取得解的時(shí)候。函數(shù)值為零(即f(x)的精確解是函數(shù)的零點(diǎn))。因此,x1比x0更加接近精確的解。僅僅要不斷以此方法更新x,就能夠取得無(wú)限接近的精確的解。
可是,有可能會(huì)遇到牛頓迭代法無(wú)法收斂的情況。
比方函數(shù)有多個(gè)零點(diǎn),或者函數(shù)不連續(xù)的時(shí)候。
牛頓法舉例
以下介紹使用牛頓迭代法求方根的樣例。牛頓迭代法是已知的實(shí)現(xiàn)求方根最快的方法之中的一個(gè),僅僅須要迭代幾次后就能得到相當(dāng)精確的結(jié)果。
首先設(shè)x的m次方根為a。
以下是matlab的編程:
syms x f=x^x-10; df=diff(f,x); eps=1e-6; x0=10; cnt=0; MAXCNT=200; %最大循環(huán)次數(shù) while cnt<MAXCNT %防止無(wú)限循環(huán) x1=x0-subs(f,x,x0)/subs(df,x,x0); %去掉這個(gè)分號(hào),能夠看到迭代過(guò)程. if (abs(x1-x0)<eps) break; end x0=x1; cnt=cnt+1; end if cnt==MAXCNT disp '不收斂' else vpa(x1,8) end轉(zhuǎn)載于:https://www.cnblogs.com/yangykaifa/p/6829336.html
總結(jié)
以上是生活随笔為你收集整理的牛顿迭代法(Newton#39;s Method)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。