次のことが可能かどうか疑問に思っていました: 関数が関数を引数として取る場合、内部関数の引数をループで変更できるようにすることはできますか?
任意の関数 f を取り、それを a、b で積分する関数があります。問題は、ループ内で cos(1* x) を統合してから cos(2*x) ....cos(N*x) を統合したい場合、最初の関数にそれを理解させる方法がわからないことです。 integrate(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)のパラメータを変更したい。私がやっているフーリエ級数関数にはこれが必要です。現在の動作方法は、括弧内に (k * h* i) を指定して cos() を呼び出す代わりに、単に cos(k) を呼び出すことです。