gpt4 book ai didi

python - 难以在同一绘图上绘制函数、其一阶导数及其不定积分

转载 作者:太空宇宙 更新时间:2023-11-03 18:24:11 24 4
gpt4 key购买 nike

我正在尝试在 Python 中复制我之前在 Matlab 中制作的绘图,其中三个函数绘制在相同的 xy 轴上。

红线代表函数 y=1/(1+(x^2)),蓝线代表其一阶导数,绿色代表其不定积分。

我在两个方面遇到问题:

1)我尝试了几种不同的方法,但无法将 y 轴范围设置为 -1.5 到 1.5。

2) 在尝试绘制第三条线(积分)时,我收到错误“ValueError:x 和 y 必须具有相同的第一维度”。

正如你在下面的代码中看到的,我实际上使用的是从-无穷大到无穷大的定积分,因为我也无法弄清楚如何编写不定积分。因此,您可以在此处提供的任何帮助也会有所帮助。

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 轴显然不太正确,并且绿色函数没有显示(由于前面提到的错误)

我非常感谢任何人可以提供的任何帮助。

最佳答案

您似乎滥用了scipy.integrate.quad。该函数给出两个值之间的定积分。来自文档:

>>> f = lambda x,a : a*x
>>> y, err = integrate.quad(f, 0, 1, args=(1,))
>>> y
0.5

因此,这会返回元组中积分的值以及该值的误差。您正在尝试根据 x = np.arange(-10, 10, 0.01) 数组绘制该元组。显然元组和数组的大小不匹配,因此您无法绘制数据。

如果您想在所有指定 X 坐标的积分值处绘制一条直线,您可以使用:

pyl.hlines(i[0],x[0],x[-1])

关于python - 难以在同一绘图上绘制函数、其一阶导数及其不定积分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23536182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com