Optimization Problem with Inverse Matrix

10 次查看(过去 30 天)
Hi,
I have a problem on maximizing a function of an inverse of a matrix which entries contain the maximization variable.
As an example, suppose that I want to maximize a'*inv(M(x))*a with respect to x, where a is nx1, and M(x) is an nxn matrix with elements as a function of x.
The optimization algorithm might lead M(x) to be singular, i.e. inv(M(x)) is not defined at all x. The optimization then stops.
So I am wondering if there is any optimization algorithm to solve such problem.
Thank you very much.

回答(1 个)

John D'Errico
John D'Errico 2020-11-15
Of course, the simple answer to this question is you are trying to use the wrong algorithm.
If you want to find the vector a, such that a'*inv(M(x))*a is maximized, then you want to work with the eigenvectors of the matrix M. That is, the vector you want to find is simply the eigenvector corresponding to the SMALLEST eigenvalue of M. If M is singular, then ANY eigenvector that lives in the nullspace of M will suffice. (In case there are multiple effectively zero eigenvalues.)
But there is no optimization needed.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by