Python 为什么cholesky不适用于这个对称矩阵?

Python 为什么cholesky不适用于这个对称矩阵?,python,matrix,linear-algebra,sympy,Python,Matrix,Linear Algebra,Sympy,我想用Symphy找到一个符号Cholesky因子分解。矩阵M(参见示例)是实对称的(因此是厄米特矩阵)。但Sympy提出了一个错误:矩阵必须是厄米特矩阵 两个问题: 为什么会出错 我需要做什么才能找到我的Cholesky因子 矩阵M不是厄米特矩阵,因为没有限制值x和y是复杂的 因为M不是必需的Hermitian,所以应该使用 M.cholesky(hermitian=False) Out[17]: Matrix([ [ sqrt(exp(x**2)),

我想用Symphy找到一个符号Cholesky因子分解。矩阵M(参见示例)是实对称的(因此是厄米特矩阵)。但Sympy提出了一个错误:矩阵必须是厄米特矩阵

两个问题:

  • 为什么会出错
  • 我需要做什么才能找到我的Cholesky因子
  • 矩阵
    M
    不是厄米特矩阵,因为没有限制值
    x
    y
    是复杂的
  • 因为
    M
    不是必需的Hermitian,所以应该使用

    M.cholesky(hermitian=False)
    
    Out[17]: 
    Matrix([
    [         sqrt(exp(x**2)),                                       0],
    [exp(x*y)/sqrt(exp(x**2)), sqrt(exp(y**2) - exp(-x**2)*exp(2*x*y))]])
    
  • hermitian
    是出现在
    sympy版本1.4
    中的参数。你可以找到变化。对于早期版本的
    cholesky
    方法可以按原样使用示例

    M.cholesky(hermitian=False)
    
    Out[17]: 
    Matrix([
    [         sqrt(exp(x**2)),                                       0],
    [exp(x*y)/sqrt(exp(x**2)), sqrt(exp(y**2) - exp(-x**2)*exp(2*x*y))]])