Algorithm 多项式系统的同时逼近&x27;树根
维基百科上的描述了如何从牛顿法推导出Durand-Kerner寻根法。正如Immo Kerner本人所证明的(“R.A.元音翻译成PL/I”): 在Algorithm 多项式系统的同时逼近&x27;树根,algorithm,numerical-methods,polynomials,newtons-method,Algorithm,Numerical Methods,Polynomials,Newtons Method,维基百科上的描述了如何从牛顿法推导出Durand-Kerner寻根法。正如Immo Kerner本人所证明的(“R.A.元音翻译成PL/I”): 在n变量中,n多项式方程组的根的所有近似值都可以同时求出类似的方法吗 思路是:要在一个变量中找到多项式的根,可以使用牛顿方法。它简单而快速,但是要找到哪个确切的根取决于最初的猜测,因此很难找到所有的根 为了同时逼近所有根,牛顿方法有几种推广,采用所谓的Weierstrass校正,例如上述Durand-Kerner或Aberth方法 对于变量n中的n多元
n
变量中,n
多项式方程组的根的所有近似值都可以同时求出类似的方法吗
思路是:要在一个变量中找到多项式的根,可以使用牛顿方法。它简单而快速,但是要找到哪个确切的根取决于最初的猜测,因此很难找到所有的根
为了同时逼近所有根,牛顿方法有几种推广,采用所谓的Weierstrass校正,例如上述Durand-Kerner或Aberth方法
对于变量n
中的n
多元多项式方程组,存在牛顿方法的另一个推广,该方法允许人们找到根(即系统变为零的一组n
值)。它使用雅可比矩阵
所以我的问题是,有没有可能在修正中使用雅可比矩阵,而不是牛顿,就像结合Durand Kerner和多元牛顿一样?非常幸运,有人知道这种算法的实现吗?PL/I中的一个代码示例得到+1,但我认为您现在有更好的机会回答这个问题。
Prrs: procedure (A, X, n, epsin) options (reorder);
declare (A(*), X(*), epsin) float, n fixed binary;
declare (i, k, j, nits) fixed binary, (xx, P, Q, eps) float;
eps = epsin*epsin;
nits = 1;
W: Q = 0;
do i = 1 to n;
xx = A(n); P = A(n);
do k = 1 to n;
xx = xx * X(i) + A(n-k);
if k ^= i then P = P * (X(i) - X(k));
end;
X(i) = X(i) - xx/P;
Q = Q + (xx/P)*(xx/P);
end;
nits = nits + 1;
if Q > eps then go to W;
end Prrs;