polynomial/rational evaluation
horner(P,x)
:P polynomial or rational matrix : :x array of numbers or polynomials or rationals :
evaluates the polynomial or rational matrix P = P(s) when the variable s of the polynomial is replaced by x:
horner(P,x)`= `P(x)
Example (Bilinear transform): Assume P = P(s) is a rational matrix then the rational matrix P((1+s)/(1-s)) is obtained by horner(P,(1+s)/(1-s)).
To evaluate a rational matrix at given frequencies use preferably the freq primitive.
//evaluation of a polynomial for a vector of numbers
P=`poly`_(1:3,'x')
horner(P,[1 2 5])
horner(P,[1 2 5]+%i)
//evaluation of a rational
s=`poly`_(0,'s');M=[s,1/s];
horner(M,1)
horner(M,%i)
horner(M,1/s)
//evaluation of a polynomial for a matrix of numbers
X= [1 2;3 4]
p=`poly`_(1:3,'x','c')
m=horner(p, X)
1*X.^0+2*X.^1+3*X.^2