2014-09-05 101 views
0

方法這是我需要程序的功能:牛頓Mathematica中

F(X)= 1 - E 1 cos(x)的

  1. 使用牛頓法近似˚F附近的根4.使用10-5作爲踢出閾值。

這是教授如何寫出來的另一個例子類,所以我只是複製在這個問題上使用功能相同的事情:

f[x_] = 1 - E^Cos[x]; 
a = 4; 
Plot[f[x], {x, 0, 10}] 

i = 1; 
While[i <= 1000, 
g[x_] = D[f[x], x]; 
b = a - f[a]/g[a]; 
a = b; 
c = Abs[a - prev a] 
    If[c < 10^-5, 
    i = 10000; 
    i++ 
    ];] 
Print[a]; 
Print[f[a]]; 
Print[i]; 

我的問題是,它不是迭代近似根。我究竟做錯了什麼?

+0

你失蹤分號'C = ABS [A - 滬指]' – agentp 2014-09-05 12:08:51

+1

你的教授似乎使用Mathematica在C.編寫一個數學解決方案請參見http://mathworld.wolfram。 COM/NewtonsMethod.html – 2014-09-05 14:45:45

回答

1

您的代碼有幾個錯別字,加上需要定義的prev a

f[x_] = 1 - E^Cos[x]; 
a = 4; 
Plot[f[x], {x, 0, 10}] 

i = 1; 
While[i <= 1000, 
g[x_] = D[f[x], x]; 
b = a - f[a]/g[a]; 
preva = a; 
a = N[b]; 
c = Abs[a - preva]; 
    If[c < 10^-5, 
    i = 10000, 
    i++];] 
Print[a]; 
Print[f[a]]; 
Print[i];