代码之家  ›  专栏  ›  技术社区  ›  Adam

绘制不同值的总和

  •  0
  • Adam  · 技术社区  · 2 年前

    我有以下求和函数:

    import numpy as np
    from sympy import var, Sum, pi, factorial, limit
    import matplotlib.pyplot as plt
    import math 
    import scipy.misc
    
    
    def n_series(x, k):
        n = np.arange(k)
        X, N = np.meshgrid(x, n)
        val =(((-1)**N)*X**(2*N + 1)) / factorial(2*N + 1)
        return np.sum(val, axis=0)
    
    x0 = np.pi/2
    x1= 2 * np.pi
    
    x = np.linspace(x0, x1, 100)
      
    for k in [0, 1, 5]:
        plt.plot(x, n_series(x, k), label=str(k))
    
    plt.show()
    

    我想把它画成以下值: [0, 1, 5] 但不幸的是,我收到了这个错误信息: enter image description here

    这是:

    enter image description here

    任何关于这个问题的想法都将不胜感激。

    1 回复  |  直到 2 年前
        1
  •  1
  •   Davide_sd    2 年前

    你用的是sympy的 factorial 关于数字数据类型:如果可能,避免将符号函数与数字数据混合。

    取代辛皮的 阶乘的 使用scipy提供的:

    from scipy.special import factorial
    

    之后,你将得到情节:

    enter image description here