多項式にニュートン法を実装しようとしました。お気に入り:
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
。規則的ではないかもしれませんが、方程式の解が負の数の場合に発生することに気付きました。どこで説明を探すことができますか?
編集:dg
double result=0;
for(int i=0; i<n+1; i++)
result+=w[i]*(n-i)*pow(x, n-i-1);
ここで、n は多項式の次数です。