【发布时间】:2014-05-08 08:08:32
【问题描述】:
我正在尝试复制我之前在 Matlab 中制作的 Python 绘图,其中三个函数绘制在相同的 xy 轴上。
红线代表函数y=1/(1+(x^2)),蓝线代表它的一阶导数,绿线代表它的不定积分。
我在两个方面遇到了问题:
1) 我尝试了几种不同的方法,但无法将 y 轴范围设置为 -1.5 到 1.5。
2) 我在尝试绘制第三条线(积分)时收到错误“ValueError:x 和 y 必须具有相同的第一维”。
正如您在下面的代码中看到的,我实际上使用的是从-infinity 到infinity 的定积分,因为我也不知道如何编写不定积分。因此,您可以在此处提供的任何帮助也会有所帮助。
from scipy.misc import derivative as deriv
import numpy as np
import scipy.integrate as integ
import pylab as pyl
f = lambda x : 1 / (1 + x**2)
x = np.arange(-10, 10, 0.01)
d = deriv(f,x)
i = integ.quad(f,-np.inf,np.inf)
pyl.plot(x,f(x),'r-')
pyl.plot(x,d,'b-')
pyl.plot(x,i,'g-')
pyl.ylim(-1.5,1.5)
pyl.show()
我从代码中得到的图形显示了正确的红色和蓝色函数,但是y轴显然不太对,绿色函数不显示(由于前面提到的错误)
我非常感谢任何人可以提供的任何帮助。
【问题讨论】:
-
1.您已经导入了
numpy,因此您不需要完整的pylab,只需导入matplotlib.pyplot as plt。 2. 您计算返回单个数字的函数的积分(在这种情况下加上误差估计,请参阅quad),您希望如何绘制它?
标签: python plot anaconda integrate derivative