【发布时间】:2020-08-08 22:49:41
【问题描述】:
我特别使用 Jupyter。例如,从方程 e2+j 中,我怎样才能将它分为实部 (e2) 和虚部 (ej )?
我试过了:
exp(complex(2,1)).real
然而,随之而来的错误是:'Mul' 对象没有属性'real'。
另一种解决方案可能是实现欧拉公式以将其分离为 cos(2)+j·sin(1) 但到目前为止没有成功。通常问题是当复数出现在幂位置而不是通常的格式 (2+j) 时。如果有人对此事有任何想法,将不胜感激!
更适合我的问题的重要编辑:
在我的情况下,我拥有的复杂方程是通过 dsolve() 获得的二阶微分方程。对于 nympy 中存在的 exp() 元素,这是一个有效的解决方案,它与任意方程不同。然而,我的方程只是上面的一个关于它的复杂性
我包含我的代码:
import scipy as sp
from sympy import*
import sympy as syp
from scipy.integrate import odeint
t, z, w, C2=symbols('t, z, w, C2')
x=Function('x')
eq=x(t).diff(t,2)+2*z*w*x(t).diff(t,1)+w**2*x(t)
sol=dsolve(eq,x(t),ics={x(0):0,x(t).diff(t,1).subs(t,0):2*C2*w*sqrt(z**2-1)})
接下来我想替换 z,w 参数以拟合我的数据,然后使用循环创建一个数组,该数组采用数值解来绘制它们。我尝试了以下方法:
for i in range(1000):
step.append(i)
numdata=[]
for i in range(1000):
numdata.append(N(sol.rhs.subs(t,i).subs(w,10).subs(z,0.001)))
但是这不起作用,因为sol 是一个复杂的函数。在这段漫长的旅程之后,我试图找到(我生命的意义)分离这种功能的真实部分和想象部分的方法。
谢谢你一直陪着我,不管结果如何,你都是英雄。
【问题讨论】:
-
sympy和numpy未集成。除非你真的需要,否则不要一起使用它们。甚至会出现一些故障。
标签: python numpy jupyter sympy complex-numbers