维基百科上的article描述了如何从牛顿方法推导出Durand-Kerner根寻找方法 . 该方法很有吸引力,因为它具有良好的收敛性和简单性,正如Immo Kerner自己("translated to PL/I by R. A. Vowels")所证明的那样:

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;

是否有可能推导出类似的方法来同时找到 n 变量中 n 多项式方程组的根的所有近似值?

思路是:要在一个变量中找到多项式的根,可以使用牛顿方法 . 它简单而快速,但确切找到的根取决于最初的猜测,因此很难找到所有的根 .

为了同时逼近所有根,有几种牛顿方法的概括采用所谓的Weierstrass校正,例如上面提到的Durand-Kerner或Aberth的方法 .

对于 n 变量中的多元多项式方程的系统,存在牛顿方法的另一种推广,其允许人们找到根(即,系统变为零的一组 n 值) . 它使用雅可比矩阵 .

所以我的问题是,是否有可能在修正中使用雅可比,而不是牛顿,有点像结合杜兰德克纳和多元牛顿?纯粹运气,有没有人知道这种算法的实现?