代码之家  ›  专栏  ›  技术社区  ›  jett chen

如何在sympy中生成矩阵函数?

  •  0
  • jett chen  · 技术社区  · 6 月前

    我定义 f(At) = e^(At) 哪里 A = [[0, 1], [-1, 0]]

    from sympy import *
    from sympy.abc import x,y
    
    t = symbols("t")
    A = Matrix([
        [0, 1],
        [-1, 0]
    ])*t
    
    A1 = A.exp()
    
    

    A1 输出 Matrix([[exp(I*t)/2 + exp(-I*t)/2, -I*exp(I*t)/2 + I*exp(-I*t)/2], [I*exp(I*t)/2 - I*exp(-I*t)/2, exp(I*t)/2 + exp(-I*t)/2]]) 当我希望输出为 [ [cos(t), sin(t)], [-sin(t), cos(t)] ] .我怎样才能得到那个结果?

    1 回复  |  直到 6 月前
        1
  •  0
  •   Tim Roberts    6 月前

    你需要逐一简化结果:

    A1 = A.exp()
    A1 = A1.applyfunc(simplify)
    print(A1)
    

    输出:

    Matrix([[cos(t), sin(t)], [-sin(t), cos(t)]])