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.
댓글 수: 2
답변 (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!