【发布时间】:2021-08-18 21:12:14
【问题描述】:
我正在尝试用 python 中的 sympy 模块求解一个微分方程。 这就是我所做的
from sympy import *
t = sympy.Symbol('t')
k = sympy.Symbol('k')
m = sympy.Symbol('m')
x = sympy.Function('x')(t)
GDE = Eq(m*x.diff(t, 2) + k*x, 0)
solution = dsolve(GDE, x)
display(solution)
现在,我正在尝试用 sin、cos 和复数 (i) 的极坐标形式求解,就像这张图片一样。在这张图中,w_n 是 sqrt(k/m)
我试过了
solution.rewrite(sin)
但它返回一个带有双曲线函数的表达式。rewrite(cos) 也返回一个带有双曲线函数的表达式。
我也试过
solution.rewrite(sin, cos)
但它给出了最初的答案。
有没有什么方法可以将这种指数形式的复数形式转换为没有双曲函数的极坐标形式?
谢谢
【问题讨论】:
-
我认为 ODE 的解不包含 sin() 或 cos(),因此无法转换为极坐标形式。也就是说,解乘以 cos(0*t)
-
我不明白,如果两个实指数不能自行转换为复指数,则组合。如果您想在复杂字段上使用 smt,则必须使用 Symbol 指定它
-
sinh 和 cosh 只是指数特殊组合的占位符 => sympy 是对的
-
@Patricio Loncomilla 语法应该是:Symbol("x*, complex=True)
标签: python sympy ode differential-equations polar-coordinates