以下是今天用到的部分代码:
>>> import numpy
>>>
>>>
>>> A=range(16)
>>> A
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
>>> A=numpy.array(A).reshape(4,4)
>>> A
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
>>> A=A+A.T
>>> A
array([[ 0, 5, 10, 15],
[ 5, 10, 15, 20],
[10, 15, 20, 25],
[15, 20, 25, 30]])
>>>
>>>
>>> B=numpy.linalg.eigvals(A)
>>> B
array([ 6.74165739e+01 +0.00000000e+00j,
-7.41657387e+00 +0.00000000e+00j,
-8.88285420e-17 +1.82759332e-15j, -8.88285420e-17 -1.82759332e-15j])
>>> if numpy.all(B>0):print ‘是正定矩阵’
>>> C=numpy.linalg.cholesky(A)
Traceback (most recent call last):
File “”, line 1, in
C=numpy.linalg.cholesky(A)
File “D:Python27libsite-packages
umpy-1.8.0-py2.7-win-amd64.egg
umpylinalglinalg.py”, line 603, in cholesky
return wrap(gufunc(a, signature=signature, extobj=extobj).astype(result_t))
File “D:Python27libsite-packages
umpy-1.8.0-py2.7-win-amd64.egg
umpylinalglinalg.py”, line 93, in _raise_linalgerror_nonposdef
raise LinAlgError(“Matrix is not positive definite”)
LinAlgError: Matrix is not positive definite
>>> A=numpy.eye(4)
>>> A
array([[ 1., 0., 0., 0.],
[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.]])
>>>
>>> B=numpy.linalg.eigvals(A)
>>> B
array([ 1., 1., 1., 1.])
>>> if numpy.all(B>0):print ‘是正定矩阵’
是正定矩阵
>>>
>>>
>>> C=numpy.linalg.cholesky(A)
>>> C
array([[ 1., 0., 0., 0.],
[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.]])
>>>