Solving Higher Order Matrix Polynomials
Afficher commentaires plus anciens
Hi, guys:
I wonder if there is some numerical method to solve a general matrix polynomial in the form: I+A1*X+A2*X^2+...+Aq*X^q=0. where X is supposed to be a matrix with the same dimension as As. A1 to Aq are k-by-k square matrices.
Any hint or reference is highly appreciated.
2 commentaires
Walter Roberson
le 15 Mar 2012
To cross-check, q is a positive integer?
Jing
le 16 Mar 2012
Réponses (1)
Teja Muppirala
le 22 Mar 2012
If k and q are not too large, one idea is to try to solve it as an optimization problem.
"Which elements of X will yield the smallest norm of the residual"
(you will have to save this as a function):
function solvepoly
k = 4;
qmax = 3;
for q = 1:qmax
A(:,:,q) = randn(k); %Make some random A matrices
end
[xf,fval] = fminunc(@doCost,zeros(k))
function COST = doCost(x)
COST = eye(k);
for q = 1:qmax
COST = COST + A(:,:,q)*x^q;
end
COST = sum(COST(:).^2);
end
end
1 commentaire
Jing
le 22 Mar 2012
Catégories
En savoir plus sur Linear Algebra dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!