Scilab 评估多项式矩阵

问题描述 投票:0回答:1

我想知道是否可以在 scilab 中将多项式计算为矩阵。 例如 :

A = floor(10*rand(3,3)); P = poly(A,"x"); horner(P,A)
应该返回空矩阵,但它会计算 A 的每个系数中的 P...

我尝试了 horner(P,A) 和 P(A) 但不起作用。

matrix polynomials scilab
1个回答
0
投票

我想您想从 Scilab 中检查凯利-汉密尔顿定理(请参阅 https://en.wikipedia.org/wiki/Cayley%E2%80%93Hamilton_theorem)。使用

horner()
无法做到这一点,因为该函数计算标量变量的多项式的值。如果 A 是矩阵
horner(p,A)
按数组计算值,而不是矩阵意义上的。然而,定义一个在矩阵意义上计算多项式的函数很容易:

function r = hornerm(p,A)
    r = zeros(A);
    for k = degree(p) : -1: 0
        c = coeff(p, k);
        r = r * A + c * eye();
    end
endfunction

那么你就有了

A = [1 2;3 4]
p = poly(A,"x")
hornerm(p,A)

--> A = [1 2;3 4]

 A = [2x2 double]

   1.   2.
   3.   4.

--> p = poly(A,"x")

 p = [polynomial] of x

  -2 -5x +x^2

--> hornerm(p,A)

 ans = [2x2 double]

   2.220D-16   0.       
   0.          2.220D-16
© www.soinside.com 2019 - 2024. All rights reserved.