如何对一个函数的不同值求和?

时间:2019-05-02 19:42:12

标签: python python-2.7

我需要求和不同功能值的帮助。这是一段代码

n = 4
a = np.arange(0.0,n+1,1)
def n(a):
    return 11.0+(a**2)/((2.1)**(2.0)*(1/4))

print n(a)

它可以工作,但我需要n(0)+n(1)+n(2)+n(3)+n(4)作为单个结果

2 个答案:

答案 0 :(得分:1)

尝试以下操作:

sum(n(i) for i in range(5))

答案 1 :(得分:1)

您可以像这样对数组的元素求和(尤其要看最后一行)

N = 4
a = np.linspace(0, N, N+1)

def n(a):
    return 11.0+(a**2)/((2.1)**(2.0)*(1/4))

print(n(a))
print(n(a).sum())

之所以有效,是因为n(a)返回一个ndarray对象(一个Numpy向量),并且一个ndarray有许多有趣的预定义方法,其中.sum()的意图是我希望这样足够清楚。


测试

In [7]:     N = 4 
   ...:     a = np.linspace(0, N, N+1) 
   ...:      
   ...:     def n(a): 
   ...:         return 11.0+(a**2)/((2.1)**(2.0)*(1/4)) 
   ...:      
   ...:     print(n(a)) 
   ...:     print(n(a).sum()) 
   ...:                                                                                   
[11.         11.90702948 14.62811791 19.16326531 25.51247166]
82.21088435374149