Solving Higher Order Matrix Polynomials
7 次查看(过去 30 天)
显示 更早的评论
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.
回答(1 个)
Teja Muppirala
2012-3-22
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear Algebra 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!