如何在Python 3中使用两个变量绘制求和

时间:2017-10-04 20:38:01

标签: python python-3.x function matplotlib

我想制作一个函数并使用pyplot来很好地绘制它 它本身的功能如下:

enter image description here

我的任务是在范围[-3pi,3pi]范围内为x绘制k = [2,4,6,8,10]。 我还想在同一个窗口中绘制cos(x)。

还有一种方法可以设置动画吗?

到目前为止,我的代码是:

import numpy as np
import matplotlib.pyplot as plt
import math 
n=0;
def C_series(n):
    return (((-1)**n)*x**(2*n)) / math.factorial(2*n)

C_func = np.vectorize(C_series)
x = np.arange(-3*math.pi, 3*math.pi, 5.0)
k = np.arange(2, 10, 2)
T = C_func(n)
plt.plot(T, k)

任何人都可以给我任何关于我做错的指示吗? 我并不是说这是一个教程,我得到了一些严厉的评论,但我希望现在我想抓住苹果。

1 个答案:

答案 0 :(得分:3)

x和k必须是函数的输入,为了简化我们使用meshgrid创建网格的任务,然后在一个方向上添加,我们将获得每个k的曲线轮廓。

import numpy as np
import matplotlib.pyplot as plt
import math 
from scipy import misc


def C_series(x, k):
    n = np.arange(k)
    X, N = np.meshgrid(x, n)
    val =(((-1)**N)*X**(2*N)) / misc.factorial(2*N)
    return np.sum(val, axis=0)

x0 = -3*math.pi
xf= 3*math.pi

x = np.linspace(x0, xf, 100)

plt.plot(x, np.cos(x))    
for k in [2, 4, 6, 8, 10]:
    plt.plot(x, C_series(x, k), label=str(k))

plt.show()

截图:

enter image description here

代表x0 = -1xf= 1

enter image description here