我试图为多项式实现牛顿法。喜欢:
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)
计算导数。
当我使用我使用 Sturm 定理找到的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 是多项式的次数