実験データをそれに適合させるために使用できる数学関数を返す単純な関数を設計しました。関数は次のようになります。
def colecole_2(f,*p):
term1=p[0] * ( 1 - 1 / (1 + numpy.power((0+1j) * 2 * numpy.pi * f * p[1], p[2])))
term2=p[3] * ( 1 - 1 / (1 + numpy.power((0+1j) * 2 * numpy.pi * f * p[4], p[5])))
return p[6]*(1-abs( term1+ term2))
残念ながら、次のように RunTimeWarnings で問題が発生します。
RuntimeWarning: overflow encountered in power
RuntimeWarning: overflow encountered in divide
値が大きすぎるか小さすぎるためです。ただし、この問題を自分で理解することはできません。関数を再定義して、警告なしで渡す方法はありますか?