gpt4 book ai didi

Python 实现我自己的 linspace 绘图例程

转载 作者:太空宇宙 更新时间:2023-11-03 17:26:04 25 4
gpt4 key购买 nike

我对 python 很陌生,在使用 linspace 例程绘制高斯函数图时遇到困难。 (我不想使用 numpy)。

"""plot a normalized gaussian function
"""
from matplotlib import pyplot as mp
import math
def linspace(a,b,n):
if n==1:
yield b
return
d=(b-a)/(n-1)
for i in range(n):
yield a+d*i


def gaussian(x,xo, sig):
return ((2*math.pi*sig**(2.))**(-1/2.))*(math.exp(((x-xo)**(2.))/(2*sig**(2.))))

for xo, sig in [(-1,0.5), (-1,1), (-1,2)]:
mp.plot(gaussian(linspace(-3,3,1000),xo,sig))

mp.show()

错误是我不能在高斯中以这种方式使用这个 linspace,但我不确定如何解决这个问题。任何帮助将不胜感激!

最佳答案

plot() 不接受生成器。此外,您不能对生成器进行数学运算。因此,您需要为 linspace() 中的每个元素调用 gaussian()。您可以尝试:

from matplotlib import pyplot as mp
import math


def linspace(a, b, n):
if n == 1:
yield b
return
d = (b-a)/(n-1)
for i in range(n):
yield a+d*i


def gaussian(x, xo, sig):
xp = ((x-xo)**(2.))/(2*sig**(2.))
return ((2*math.pi*sig**(2.))**(-1/2.)) * math.exp(-xp)


for xo, sig in [(-1, 0.5), (-1, 1), (-1, 2)]:
y = list(gaussian(x, xo, sig) for x in linspace(-5, 10, 100))
mp.plot(y)

mp.show()

关于Python 实现我自己的 linspace 绘图例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32546305/

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