gpt4 book ai didi

python - sympy 矩阵未对齐

转载 作者:太空宇宙 更新时间:2023-11-03 17:03:00 24 4
gpt4 key购买 nike

我正在尝试使用 sympy 来帮助我隔离矩阵表达式中的向量。我写了这段代码:

    import sympy
from sympy import symbols, MatrixSymbol, Matrix
from sympy import Identity

Xp = MatrixSymbol('Xp', 3,1)
t = MatrixSymbol('t', 3,1)
n = MatrixSymbol('n', 3,1)
H = n.T*Xp*Identity(3) - t*n.T

我的目的是隔离n。我不确定 sympy 是否可以做到这一点,但我已经收到“ShapeError:矩阵 n'*Xp 和我没有对齐”,我认为这个错误不应该发生,因为 n'*Xp 是一个标量,所以它应该是能够与矩阵相乘。

如何使表达式 n.T*Xp*Identity(3) 有效?并且,sympy 可以帮助我分离这个方程中的向量 n 吗?

最佳答案

n.T*Xp*Identity(3) 

有尺寸签名

(1,3)*(3,1)*(3,3)

这显然行不通。

n*Xp.T*Identity(3) 

可以工作。

<小时/>

如果你想解决

H=(n.T*X)*I-t*n.T

对于n,那么第一句话是这并不总是可能的。假设存在解决方案,请注意

1/(t.T*t)*t.T*H=1/(t.T*t)*(n.T*X)*t.T-n.T

这样

n = a*t - b*H.T*t

其中 a 未知且 b=1/(t.T*t)。代入原方程可得

H = (a*t.T*X-b*t.T*H*X)*I - a*t*t.T + b*t*t.T*H

H - b*t*t.T*H +b*(t.T*H*X)*I = a*((t.T*X)*I - t*t.T)

在右侧矩阵的每个重要分量中都会给出一个值a,但只有当所有这些值都相同时才存在解决方案。

关于python - sympy 矩阵未对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34865536/

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