擅长:python、mysql、java
<p>您不是将函数传递给<code>integrate</code>,而是传递<code>cos(k)</code>返回的值。如果我正确地理解了您的目标,则可以通过传递<a href="http://docs.python.org/reference/expressions.html#lambda" rel="nofollow">lambda (an anonymous function)</a>来解决此问题:</p>
<pre><code>def integrate(f, a, b):
h = float(b-a)/10
I = 0;
for i in range(10):
I += f(h*i)
return I
A = zeros(N)
for k in range(N):
A[k] = integrate(lambda x: cos(k*x), a, b)
</code></pre>
<p>如果很难读懂,可以使用“normal”<code>def</code>d函数完成等效的结尾,该函数在<code>k</code>上闭合:</p>
^{2}$
<p>(代码未测试)</p>