多项式系统根的同时逼近

时间:2016-03-05 09:36:35

标签: algorithm numerical-methods polynomials newtons-method

维基百科上的article描述了如何从牛顿方法推导出Durand-Kerner根寻找方法。这种方法很有吸引力,因为它具有良好的收敛性和简单性,正如Immo Kerner自己在ACM Algorithm 283中所证实的那样("由R. A. Vowels翻译为PL / I"):

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多元多项式方程的系统,存在另一种牛顿方法的推广,它允许人们找到根(即一组n个值系统变为零的地方)。它使用雅可比矩阵。

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

0 个答案:

没有答案