我正在尝试用python中的Symphy模块求解一个微分方程。这就是我所做的
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)
但它给出了最初的答案。
有没有办法把这个指数形式的复形转换成没有双曲函数的极形?
谢谢你
您应该将您的符号声明为实数或正数等。否则默认情况下SymPy假设类似于复数:
In [7]: import sympy
In [8]: from sympy import *
...:
...:
...: t = sympy.Symbol('t', real=True)
...: k = sympy.Symbol('k', positive=True)
...: m = sympy.Symbol('m', positive=True)
...: x = sympy.Function('x', real=True)(t)
...:
...: GDE = Eq(m*x.diff(t, 2) + k*x, 0)
然后各种简化会自动发生:
In [9]: sqrt(-k/m)
Out[9]:
ⅈ⋅√k
────
√m
In [10]: exp(t * sqrt(-k/m))
Out[10]:
ⅈ⋅√k⋅t
──────
√m
ℯ
In [11]: exp(t * sqrt(-k/m)).rewrite(cos)
Out[11]:
⎛√k⋅t⎞ ⎛√k⋅t⎞
ⅈ⋅sin⎜────⎟ + cos⎜────⎟
⎝ √m ⎠ ⎝ √m ⎠
事实上,根据设定的假设,dsolve将自动给出sin、cos表单:
In [12]: dsolve(GDE)
Out[12]:
⎛√k⋅t⎞ ⎛√k⋅t⎞
x(t) = C₁⋅sin⎜────⎟ + C₂⋅cos⎜────⎟
⎝ √m ⎠ ⎝ √m ⎠
如果没有设置这些假设,仍然可以将表达式操作为sin/cos
形式,但需要一些force=True
来覆盖假设检查:
In [25]: s = solution.rhs; s
Out[25]:
_____ _____
╱ -k ╱ -k
-t⋅ ╱ ─── t⋅ ╱ ───
╲╱ m ╲╱ m
C₁⋅ℯ + C₂⋅ℯ
In [26]: s = expand(s, force=True); s
Out[26]:
___ ___
╱ 1 ╱ 1
-ⅈ⋅√k⋅t⋅ ╱ ─ ⅈ⋅√k⋅t⋅ ╱ ─
╲╱ m ╲╱ m
C₁⋅ℯ + C₂⋅ℯ
In [27]: s = s.rewrite(sin); s
Out[27]:
⎛ ⎛ ___⎞ ⎛ ___⎞⎞ ⎛ ⎛ ___⎞ ⎛ ___⎞⎞
⎜ ⎜ ╱ 1 ⎟ ⎜ ╱ 1 ⎟⎟ ⎜ ⎜ ╱ 1 ⎟ ⎜ ╱ 1 ⎟⎟
C₁⋅⎜- ⅈ⋅sin⎜√k⋅t⋅ ╱ ─ ⎟ + cos⎜√k⋅t⋅ ╱ ─ ⎟⎟ + C₂⋅⎜ⅈ⋅sin⎜√k⋅t⋅ ╱ ─ ⎟ + cos⎜√k⋅t⋅ ╱ ─ ⎟⎟
⎝ ⎝ ╲╱ m ⎠ ⎝ ╲╱ m ⎠⎠ ⎝ ⎝ ╲╱ m ⎠ ⎝ ╲╱ m ⎠⎠
In [28]: s = expand(s).collect(s.atoms(sin, cos)); s
Out[28]:
⎛ ___⎞ ⎛ ___⎞
⎜ ╱ 1 ⎟ ⎜ ╱ 1 ⎟
(C₁ + C₂)⋅cos⎜√k⋅t⋅ ╱ ─ ⎟ + (-ⅈ⋅C₁ + ⅈ⋅C₂)⋅sin⎜√k⋅t⋅ ╱ ─ ⎟
⎝ ╲╱ m ⎠ ⎝ ╲╱ m ⎠
In [29]: s = powsimp(s, force=True); s
Out[29]:
⎛ ___⎞ ⎛ ___⎞
⎜ ╱ 1 ⎟ ⎜ ╱ 1 ⎟
(C₁ + C₂)⋅cos⎜√k⋅t⋅ ╱ ─ ⎟ + (-ⅈ⋅C₁ + ⅈ⋅C₂)⋅sin⎜√k⋅t⋅ ╱ ─ ⎟
⎝ ╲╱ m ⎠ ⎝ ╲╱ m ⎠
In [30]: s = powsimp(s, force=True, deep=True); s
Out[30]:
⎛ ___⎞ ⎛ ___⎞
⎜ ╱ k ⎟ ⎜ ╱ k ⎟
(C₁ + C₂)⋅cos⎜t⋅ ╱ ─ ⎟ + (-ⅈ⋅C₁ + ⅈ⋅C₂)⋅sin⎜t⋅ ╱ ─ ⎟
⎝ ╲╱ m ⎠ ⎝ ╲╱ m ⎠
本文向大家介绍delphi实现将BMP格式图形转化为JPG格式图形的方法,包括了delphi实现将BMP格式图形转化为JPG格式图形的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了delphi实现将BMP格式图形转化为JPG格式图形的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Delphi程序设计有所帮助。
我在寻找过去的一天,我没有成功。 我从API获取图像,并使用以下代码将其下载到位图文件。 我得到一个正方形的图像,我想裁剪四个角,使其成为圆形图像。有没有可能实现的方法? 欢迎任何相关答案。提前谢谢。
问题内容: 我在Excel中有一个公式可以计算两个日期之间的星期天数,但是我想在SQL中执行相同的操作,但无法弄清楚该怎么做。你能帮我吗? 谢谢 韦恩 问题答案: 试试这个: 如您所见,这取决于本地化->在俄罗斯,星期日是第7天,因此我们检查第一天是否是星期日 这是另一种解决方案:
问题内容: 我一直在寻找这个小时,却没有找到答案。在燃烧之前,请仔细阅读整个问题!:) 我有类似这样的表格: 并且需要能够将其序列化为: 我在SO上尝试过大多数答案,包括jquery-json库,并且大多数返回如下所示: 这是 我不能使用的 东西!:P 提前谢谢大家。 问题答案: 试试我为您编写的这段代码…仅使用您的数据结果,对我来说效果很好。您可以对其进行处理,并制作一个简单的jQuery插件…
问题内容: 这是Highchart项目符号图表的示例http://jsfiddle.net/jlbriggs/LdHYt/1/ 如何将其转换为列项目符号图表? 问题答案: 这是您要找的东西吗?小提琴
问题内容: 我正在尝试将String转换为我得到的整数。原因很明显。但是我需要一个解决方法。以下是示例代码。 我需要注释部分中的逻辑,一个通用的逻辑会很好。谢谢。 问题答案: 使用结果并将其转换为: