2016-11-12 8 views
0
class Diff: 
    def __init__(self, f, h): 
     self.f = f 
     self.h = h 

class Backward1(Diff): 
    def __call__(self, x): 
     f = self.f 
     h = self.h 
     return (f(x)-f(x-h))/h 

from math import sin, pi 
A = Backward1(sin,1E-5) 
print A(pi) 

[範囲(10)のkに対して[h = 2 **(-k)]のようにいくつかのh値を計算したいとします。どのようにこれを行うためのヒント?ありがとう!forループを関数の引数として使用する方法

答えて

0

あなたはリストの内包に変数を代入することはできませんが、私はあなたがする必要はないと思う:

print([Backward1(sin, 2**(-k))(pi) for k in range(10)]) 

は異なるh秒の結果のリストを構築するだろう。
2段階の処理で、同じ関数セットに対して異なるargを使用できるようにします。

fns = [Backward1(sin, 2**(-k)) for k in range(10)] 
print([fn(pi) for fn in fns]) 
print([fn(2*pi) for fn in fns]) 
関連する問題