gpt4 book ai didi

python - Sympy:为什么 cholesky 不适用于这个对称矩阵?

转载 作者:行者123 更新时间:2023-12-01 00:45:07 24 4
gpt4 key购买 nike

我想用 Sympy 找到一个符号 Cholesky 分解。矩阵 M(参见示例)是实对称的(因此是埃尔米特矩阵)。但 Sympy 引发 ValueError:矩阵必须是厄米特矩阵。

两个问题:

  1. 为什么会出现错误?
  2. 我需要做什么才能找到我的 Cholesky 因子?
from sympy import *
x, y = symbols('x y')

M = Matrix([
[ exp(x**2), exp(x*y)],
[ exp(x*y), exp(y**2)]
])

print(M == M.T) #True
L = M.cholesky() #ValueError: Matrix must be Hermitian.

最佳答案

  1. 矩阵 M 不是 Hermitian,因为值 xy 没有复数限制。
  2. 由于 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 中的参数。您可以找到更改on this page 。对于早期版本,cholesky 方法按原样适用于您的示例。

关于python - Sympy:为什么 cholesky 不适用于这个对称矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57036453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com