我想知道是否可以这样做:如果一个函数以一个函数作为参数,我能使它使内部函数的参数在循环中改变吗?在
我有一个函数,它取任何函数f,并把它积分到a,b上。问题是如果我在一个循环中想要积分cos(1*x),然后cos(2*x)…cos(N*x),我不知道如何让我的第一个函数明白,当我说积分(f(I),a,b)时,我不是指积分cos(1)或cos(2),而是cos(1*x)或cos(2*x)等等。在
例如:
def integrate(f,a,b):
h = float(b-a)/10;
I = 0;
for i in range(10):
I+= f(h*i); <----(1)
return I;
A = zeros(N);
for k in range(N):
A[k] = integrate(cos(k), a,b) <-----(2)
我想让(2)中的cos(k)被称为,在(1)中变成f(k*h*I),这对你有意义吗?我想通过改变(2)来改变(1)的参数。我需要一个傅里叶级数函数。它目前的工作方式是,它将只调用cos(k(k*h*i)),而不是在paranthesis中使用(k*h*i)调用cos()。在
您可以使用^{} 执行此操作:
而且,Python不需要分号。在
您不是将函数传递给
integrate
,而是传递cos(k)
返回的值。如果我正确地理解了您的目标,则可以通过传递lambda (an anonymous function)来解决此问题:如果很难读懂,可以使用“normal”
^{2}$def
d函数完成等效的结尾,该函数在k
上闭合:(代码未测试)
相关问题 更多 >
编程相关推荐