Can any one suggest me how to make a large matrics positive definate.

조회 수: 3 (최근 30일)
shilpa
shilpa 2015년 5월 27일
답변: Alfonso Nieto-Castanon 2015년 5월 27일
I have matrices whose positive eigen values have to be calculated. In order to find them the matrices have to be positive definite. Kindly anyone suggest.
Can SDV be used for it? If yes then how?

답변 (3개)

Walter Roberson
Walter Roberson 2015년 5월 27일
The trick is to use
pdmat = (YourMatrix + YourMatrix.')/2;
Or is the question to find out if a given matrix is positive definite? If so then note that the positive definite tests are very sensitive to the exact bit values of floating point numbers, so a matrix that looks positive definite might not be because of a single bit difference between two numbers. The above trick is routinely used on matrices that "should" be positive definite in order to force the last bits to be the same in the symmetric positions.
  댓글 수: 1
John D'Errico
John D'Errico 2015년 5월 27일
편집: John D'Errico 2015년 5월 27일
The above trick of averaging the matrix with its transpose will indeed suffice to make it symmetric. But a symmetric matrix can still have negative eigenvalues. There will be no complex eigenvalues.
A = -eye(5);
A is perfectly symmetric, yet not at all positive definite, and trying to make it so by symmetrizing it will not suffice.

댓글을 달려면 로그인하십시오.


John D'Errico
John D'Errico 2015년 5월 27일
Your question is not very clear.
You do not need for a matrix to be positive definite to compute the eigenvalues of that matrix. Just use EIG. SVD is not necessary.
Knowing what you will do with those eigenvalues might help us to help you more.

Alfonso Nieto-Castanon
Alfonso Nieto-Castanon 2015년 5월 27일
the matrix B defined as:
B = (A+A')/2 + lambda*speye(size(A,1));
will have eigenvalues eig(B) equal to real(eig(A))+lambda, so for a lambda high enough the resulting matrix B will be positive definite.
How that would help you, though, is another question (I am not sure I understand what you are trying to do exactly)

카테고리

Help CenterFile Exchange에서 Linear Algebra에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by