1樓:電燈劍客
如果尋找方程f(x)=0的零點t,假定f二階可導,那麼在t附近的點u有
0=f(t)=f(u)+f'(u)(t-u)+f''(x)(t-u)^2
略去二階小量得
f(u)+f'(u)(t-u)=0
於是t=u-f(u)/f'(u)
但是實際上因為f不一定是線性的,不可以忽略略去二階小量的影響,所以上述過程就要迭代地進行
f(x_)=x_n-f(x_n)/f'(x_n)並且這個迭代具有(區域性)二次收斂性。
就寫這些,教材上一般都會有的,你自己去看看。
2樓:閃亮登場
一、牛頓法
解非線性方程f(x)=0的牛頓(newton) 法,就是將非線性方程線性化的一種方法。它是解代數方程和超越方程的有效方法之一。
(一) 牛頓法的基本思想
把非線性函式f(x)在 處成 泰勒級數
f(x)=f( )+(x- )f′( )+(x- ) + …
取其線性部分,作為非線性方程f(x)=0的近似方程,則有
f( )+(x- ) f′( )=0
設f′( )≠0,則其解為x = - (1)
再把f(x)在x 處為泰勒級數,取其線性部分為f(x)=0的近似方程,若
f′(x ) ≠0,則得x = - 如此繼續下去,得到牛頓法的迭代公式:x = - (n=0,1,2,…) (2)
例1 用牛頓法求方程f(x)=x +4x -10=0在[1,2]內乙個實根,取初始近似值x =1.5。
解 f′(x)=3x +8x所以迭代公式為:
x = - n=0,1, 2,…
(二 ) 牛頓法的幾何意義
方程f(x)=0的根就是曲線y=f(x)與x軸交點的橫座標x*,當初始近似值 選取後,過( ,f( ))作切線,其切線方程為:y- f( )=f′( )(x- )
它與x軸交點的橫座標為x = -
一般地,設 是x*的第n次近似值,過( ,f( )作y=f(x)的切線,其切線與x軸交點的橫座標為:x = - 即用切線與x軸交點的橫座標近似代
曲線與x軸交點的橫座標,如圖2-4。
2-4牛頓法正因為有此明顯的幾何意義,所以也叫切線法。
(三) 牛頓法的收斂性及收斂速度
定理 設f(x)在[a,b ]滿足
(1) (1) f(a)·f(b)<0
(2) f(x)∈[a,b],f′(x),f″(x)均存在,且f′(x)與f″( x)的符號均保持不變。
(3) f( )·f″(x)>0, 、x∈[a,b],則方程f(x)=0在[a,b]上有且只有乙個實根,由牛頓法迭代公式計算得到的近似解序列{ }收斂於方 程f(x)=0的根x*。
由方程f(x)=0得到的牛頓迭代形式
x=x- = =1- = 由於f(x*)=0,所以當f′(x*)≠0時, (x* )= 0,牛頓法至少是二階收斂的,即牛頓法在單根附近至少是二階收斂的,在重根附近是線性收斂的。
牛頓法收斂很快,而且可求復根,缺點是對重根收斂較慢,要求函式的一階導數存在。
(四) 牛頓二階導數法
這裡將簡單介紹一下牛頓二階導數法。對其幾何意義及收斂性不作詳細的敘述,讀者可仿照牛頓法進行討論,其基本思想是:
將f(x)在 處泰勒級數
f(x)=f( )+f′( )(x- )+ f″( )(x- ) +…
取右端前三項近似代替f(x),於是得f(x)=0的近似方程為
f( )+f′( )(x- )+ f″( )(x- ) =0
也即f( )+(x- )[f′( )+ f″( )(x- )] =0 (3)
設其解為 .利用(1), - =- ,代入(3)中括號內 - ,則得f( )+( - ) [f′( )+ f″( ) ] =0
於是解出 ,得 = -
重複以上過程得: = -
於是得牛頓二階導數法的迭代公式為:
= - n=0,1,2,… (4)
上式與牛頓法迭代公式(2)相比,利用此公式求根收斂更快,迭代次數更少。其缺點是要求f(x)的二階導數存在。
matlab 用牛頓法求解方程
3樓:斷線的粢鳶
定義函式
function y=nd(x)
y= 0.036-((x/2090.7).^(1/0.1585))-x/182000
function y=nd0(x)
y=- (1/0.1585)*(x/2090.7).^(1/0.1585-1)*(1/2090.7) - 1/182000
主程式x=0.5; %迭代初值
i=0; %迭代次數計數
while i<=100;
y=x-nd(x)/nd0(x); %牛頓迭代格式if abs(y-x)>10^(-5); %收斂判斷x=y;
else break
endi=i+1;
endfprintf('\n%s%.4f \t%s%d','x=',x,'i=',i) %輸出結果
x=-100.5000 i=101
求c語言編寫 用牛頓迭代法解方程 x乘以e的x次冪減1等於0
4樓:匿名使用者
//求出迭代方程,根據牛頓的是,g(x)=x-f(x)/f'(x)//針對x*e^x-1=0,是g(x)=x-(xe^x-1)/(e^x+x*e^x);
#include
#includeint main()
printf("%.3f\n",y);
printf("%f\n",exp(y)*y);
return 0;
}//為了通用性,用乙個函式,來表示迭代方程double f(double x)
有方程,用牛頓迭代法,求位於(1, 2)的唯一實根並要求。
5樓:匿名使用者
#include
#include
double f(double x)
double f1(double x)
main( )
while((x>=2||x<=1)&&(hi>=0.5*1e-5));
printf("%lf",x);}
fabs函式調整一下,然後判斷改了下,你對照上面**看下就知道了
利用牛頓迭代法求方程根的函式c++
6樓:喵有引力
第(1)問**如下
#define fun1 5*p(x,9)+7*p(x,8)+10*p(x,7)+156*p(x,4)+89*p(x,3)+90*p(x,2)+101*x+50//函式
#define fun1_ 45*p(x,8)+56*p(x,7)+70*p(x,6)+156*4*p(x,3)+89*3*p(x,2)+180*p(x,1)+101//導數
#include
#include
using namespace std;
double p(double x,int n);
int main()
第(2)問
#define e 2.718281828459
#define fun2 x*pow(e,x)+p(x,5)*p(sin(x),3)
#define fun2_ pow(e,x)+x*pow(e,x)+4*p(x,4)*p(sin(x),3)+3*p(sin(x),2)*cos(x)*p(x,5)
#include
#include
using namespace std;
double p(double x,int n);
int main()
求乙個用牛頓迭代法解方程的matlab**。
7樓:匿名使用者
其中,fun()是原函式,dfun()是導函式
解方程x305,解方程x
x 3 0.5 12 x 2.5 12 x 12 2.5 x 9.5 x 12 2.5 x 9.5 x 12 3 0.5 9 0.5 9.5 解方程 x 3 0.5 12 5x x 3 35 x 3 0.5 12 x 2.5 12 x 12 2.5 x 9.5 5 x 3 35 x 3 35 5 x...
解方程 要帶過程!解方程,要過程!
3 10 x 1 25 1 4 x 3 10 1 25 1 4 x 30 100 4 100 25 100x 1 100 您好,很高興為您解答,skyhunter002為您答疑解惑。如果本題有什麼不明白可以追問,如果滿意記得。如果有其他問題本題後另發點選向我求助,答題不易,請諒解,謝謝。祝學習進步。...
解方程3234x,解方程3234x
3 4x 11 8 x 11 6 2x 30 46 5 2x 8.9 x 4.45 x 2 3 3 4 x 3 4 2 3 x 1 2 3 4x 33 2 4x 2 11 x 1 22 解方程3 4x 1 8 1 2 3 4x 1 2 1 8 3 4x 3 8 x 3 8 3 4 x 1 2 3 4...