不对齐的辛矩阵

2024-10-04 11:28:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用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:matrix n'*Xp and I are not aligned”,我认为这个错误不应该发生,因为n'*Xp是标量,所以它应该能够与矩阵相乘。在

如何使表达式n.T*Xp*Identity(3)有效? 还有,sympy能帮我分离出这个方程中的向量n吗?在


Tags: 代码fromimport目的表达式矩阵向量matrix
1条回答
网友
1楼 · 发布于 2024-10-04 11:28:50
n.T*Xp*Identity(3) 

具有维度签名

^{pr2}$

这显然行不通。在

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

或者

^{8}$

它在右边矩阵的每个非平凡分量中都会给出一个a的值,但只有当所有这些值都相同时,才存在解。在

相关问题 更多 >