1

多項式にニュートン法を実装しようとしました。お気に入り:

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 は多項式の次数です。

4

1 に答える 1