Оптимальное начальное предположение — это сам корень, поэтому поиск «оптимального» предположения на самом деле недействителен.
Любое предположение даст вам действительное решение в конечном итоге, пока f'(x0) != 0
для любого шага, что происходит только в нулях cos(x)
, которые равны k*pi + pi/2
для любого целого числа k
.
Я бы попробовал x0 = C * pi
, просто посмотреть, работает ли он.
Однако вашей самой большой проблемой будет периодический характер вашей функции. Метод Ньютона будет медленным (если он вообще работает) для вашей функции, поскольку sin(x)
будет сдвигать x0
вперед и назад снова и снова.
Меры предосторожности:
Вы заметили, что в методе Ньютона f'(xn)
стоит в знаменателе? f'(x)
приближается к 0
бесконечно много раз. Если ваш f'(x) = 0.0001
(или близко к нулю, что может произойти), ваш xn+1
отбрасывается очень далеко от xn
.
Что еще хуже, это может происходить снова и снова из-за того, что f'(x)
является периодической функцией, а это означает, что метод Ньютона может даже никогда не сойтись для произвольного x0
.
person
Blender
schedule
05.04.2012