[SciPy-user] verify whether a matrix is positive definite or not
Nils Wagner
nwagner@iam.uni-stuttgart...
Thu Jun 28 06:31:57 CDT 2007
Hi all,
I have a parameter-dependent matrix
B(x) = B_0 + x B_1, 0 \le x \le 1
where B_0 and B_1 are symmetric. How can I determine critical values x*
(if any) such that B(x*) is not positive definite ?
from scipy import *
def B(x):
return array(([[11.,8.],[8.,7.]])) - x*array(([[20.,1.],[1.,26]]))
X = linspace(0,1,100)
for x in X:
print x
L=linalg.cholesky(B(x),lower=1)
I mean it would be nice if cholesky could return info=1 if the matrix is
not spd.
The current behaviour is
Traceback (most recent call last):
File "test_spd.py", line 11, in ?
L=linalg.cholesky(B(x),lower=1)
File "/usr/lib64/python2.4/site-packages/scipy/linalg/decomp.py", line
552, in cholesky
if info>0: raise LinAlgError, "matrix not positive definite"
numpy.linalg.linalg.LinAlgError: matrix not positive definite
Helpful suggestions would be appreciated.
Nils
More information about the SciPy-user
mailing list