Mathematica中的Newton-Raphson方法

时间:2013-06-04 12:57:58

标签: wolfram-mathematica newtons-method

我想在Mathematica中实现Newton-Raphson方法。

这是我的代码:

f[x] = x^3 - x^2 + 1

MetodaTangente[x0_, eps_] := Block[{p0, p1, dp, k},
   p0 = N[x0];
   p1 = p0;
   dp = 1;
   k = 0;
   While[dp > eps,
    p0 = p1;
    p1 = p0 - f[p0]/f'[p0];
    dp = Abs[p1 - p0];
    k = k + 1;
    ];
   Print[p1];
   ];

k计算有多少次迭代。

然而,这是我运行时发生的事情:

enter image description here

f似乎存在问题。我现在该怎么办?

1 个答案:

答案 0 :(得分:3)

改为定义你的函数:

f[x_] := x^3 - x^2 + 1
MetodaTangente[-1, .000000000001]

> -0.754878

更多信息: http://reference.wolfram.com/mathematica/tutorial/DefiningFunctions.html