Я попытался реализовать метод Ньютона для полиномов. Как:Метод Ньютона расходится для некоторых полиномов
double xn=x0;
double gxn=g(w, n, xn);
int i=0;
while(abs(gxn)>e && i<100){
xn=xn-(gxn/dg(w, n, xn));
gxn=g(w, n, xn);
i++;
}
, где g(w, n, xn)
вычисляет значение функции и dg(w, n, xn)
вычисляет производную.
Как x0
Я использую начальную точку M
, которую я нашел, используя теорему Штурма.
Моя проблема заключается в том, что этот метод расходится для некоторых полиномов, таких как x^4+2x^3+2x^2+2x+1
. Может быть, это не регулярно, но я заметил, что это происходит, когда решение уравнения является отрицательным числом. Где я могу найти объяснение?
Edit: дециграмм
double result=0;
for(int i=0; i<n+1; i++)
result+=w[i]*(n-i)*pow(x, n-i-1);
где п степень полинома
Набор начальных значений, которые сходятся к определенному корню, называется бассейном притяжения. Если вы Google, что вы обнаружите, что математика очень продвинута. –
[Вы удивлены?] (Https://en.wikipedia.org/wiki/Newton_fractal) – imallett
@PaulBoddington Похоже, что на самом деле у ОП была ошибка (или больше) в их коде, а не начальное значение за пределами бассейна Привлечение. Однако, похоже, что ОП предполагает, что метод Рафсона (ложно названный Ньютоном, который не смог его опубликовать) всегда должен сходиться. – Walter