import matplotlib.pyplot as plt
import matplotlib.pyplot as plt

for i in range(0,100,10):
    function = (1/2) + (2/3.14) * (sin(2*(i)+1)x)/(2*(i)+1)
plt.plot(function)


我有一个函数:fN(x) = (1/2) + (2/pi) * (sin[(2n+1)x])/(2n+1),我需要将其绘制为值

n= 0, 10 ,20,...., 100.


请帮助,我已经很长时间没有使用python了。
谢谢。

最佳答案

您需要先将x定义为浮点值。您还需要导入sin()函数,更正表达式中的语法(您需要在x前面加一个乘号),然后定义function,使其为列表或类似数据类型。我还更改了range表达式,因此100包含在n的值中,并删除了pyplot的多余导入。

下面的代码应做您想要的。

import matplotlib.pyplot as plt
from math import sin


x = 1

function = [(1/2) + (2/3.14) * (sin(2*i+1) * x) / (2*i+1)
    for i in range(0, 101, 10)]
plt.plot(function)


对于x=1,结果图为

python - 用x的变化值和n的不同值绘制数学函数f(x)-LMLPHP

如果要沿水平轴记录n的值,则需要做更多的工作。因为它是显示的数字,所以是function列表中值的索引。要显示这些n的值,请将我的代码的最后一行替换为

ivals = list(range(0, 101, 10))
plt.plot(ivals, function)


然后您得到此图:

python - 用x的变化值和n的不同值绘制数学函数f(x)-LMLPHP

关于python - 用x的变化值和n的不同值绘制数学函数f(x),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46513843/

10-12 06:54