Метод Ньютона-Рафсона в Mathematica

Я хочу реализовать метод Ньютона-Рафсона в Mathematica.

Вот мой код:

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 подсчитывает, сколько было итераций.

Однако вот что происходит, когда я запускаю это:

введите здесь описание изображения

Кажется, проблема с f. Что мне теперь делать?


person Milos    schedule 04.06.2013    source источник
comment
Эта страница Mathworld — mathworld.wolfram.com/NewtonsMethod.html — содержит гораздо больше информации о системе Mathematica. идиоматическая реализация этого метода. То же самое, если мне не изменяет память, есть и в документации по Mathematica, но у меня ее сейчас нет.   -  person High Performance Mark    schedule 04.06.2013


Ответы (1)


Вместо этого определите свою функцию следующим образом:

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

> -0.754878

Дополнительная информация: http://reference.wolfram.com/mathematica/tutorial/DefiningFunctions.html< /а>

person Corey Kelly    schedule 04.06.2013