我正在尝试在python中绘制带有可变参数的复杂函数,并且发现了无法解释的差异。我的代码如下所示:
import matplotlib.pyplot as plt
from numpy import pi, exp, real, imag, linspace
def f(t,a,b,c,coef1,coef2,coef3):
return ( (coef1)*exp(a*1j*t) + (coef2)*exp(b*1j*t) + (coef3)*exp(c*1j*t) )
t = linspace(0, 2*pi, 1000)
plt.plot(real(f(t,1,6,-14,1,-1/2,1j/3)), imag(f(t,1,6,-14,1,-1/2,1j/3)))
plt.plot(real(exp(1j*t) - exp(6j*t)/2 + 1j*exp(-14j*t)/3),imag(exp(1j*t) - exp(6j*t)/2 + 1j*exp(-14j*t)/3) )
# These two lines make the aspect ratio square
fig = plt.gcf()
fig.gca().set_aspect('equal')
plt.show()
The image produced by this code is shown here.
我希望图中两个用红色和绿色表示的功能是相同的。但这显然不是事实。有人可以告诉我我在想什么吗?谢谢。
答案 0 :(得分:0)
尝试将所有整数替换为浮点数。也许是python2类型的问题。
在python3上,我正在复制您的代码,它们相等。我的依赖版本为:
numpy==1.14.0
matplotlib==2.2.2
更新。问题是-1/2在python2上等于-1