Matrix 如何用sympy实现向量乘法矩阵?

Matrix 如何用sympy实现向量乘法矩阵?,matrix,vector,sympy,Matrix,Vector,Sympy,我有: 类型为的向量;及 类型为 我想把矩阵乘以向量,得到一个向量 我可以方便地执行此操作,还是需要先进行一些额外的操作 作为参考,我试图得到应用于向量的旋转矩阵的符号结果 下面是我处理上述矩阵和向量的一些代码 from sympy.vector import CoordSys3D σ, θ, γ, λ, a, b, c = symbols('σ, θ, γ, λ, a, b, c, a_v, b_v, c_v') σ = sin(θ) γ = cos(θ) λ = 1 - γ N =

我有:

  • 类型为
    的向量;及
  • 类型为
我想把矩阵乘以向量,得到一个向量

我可以方便地执行此操作,还是需要先进行一些额外的操作

作为参考,我试图得到应用于向量的旋转矩阵的符号结果

下面是我处理上述矩阵和向量的一些代码

from sympy.vector import CoordSys3D

σ, θ, γ, λ, a, b, c = symbols('σ, θ, γ, λ, a, b, c, a_v, b_v, c_v')
σ = sin(θ)
γ = cos(θ)
λ = 1 - γ

N = CoordSys3D('N')
u = a*N.i + b*N.j + c*N.k # Axis of rotation

R = Matrix([
    [a*a*λ + γ, a*b*λ-c*σ, a*c*λ+b*σ],
    [b*a*λ+c*σ, b*b*λ + γ, b*c*λ-a*σ],
    [c*a*λ-b*σ, c*b*λ+a*σ, c*c*λ + γ],
])

# Input vector prior to rotation
v = a_v*N.i + b_v*N.j + c_v*N.k

# How to calculate the post rotation output vector w = Rv?

总之,Symphy中是否有通过向量乘法实现矩阵的内置机制?

虽然我没有找到一个函数来实现我想要的功能,但这段代码实现了相同的结果。我把它贴在这里,以防对其他人有用

w = R * Matrix([v.coeff(N.i), v.coeff(N.j), v.coeff(N.k)])
刚刚发现这一点,这似乎与本案的要求相反。是否存在向量对矩阵函数?