2
私はリーマンシータ機能をモデル化しています:numpyで負のパワーにすることができないのはなぜですか?
import numpy as np
def theta(s, n=100):
a_range = np.arange(2, n + 1)
return 1 + sum(1/(a_range ** s))
それは負s
のために動作しません。例えばtheta(-2)
はこのエラーにつながります。
1 def theta(s, n=100):
2 a_range = np.arange(1)
----> 3 return 1 + sum(1/(a_range ** s))
4
5 theta(-2)
ValueError: Integers to negative integer powers are not allowed.
なぜですか? x^-1
はちょうど1/x
でなければなりません。
を:「負の整数のべき乗の整数が許可されていません。 "、なぜ試してみませんか:' a_range = np.arange(2、n + 1、dtype = np.float) '? – Evert
または単に 'a_range = np.arange(1.0)'で十分です。 –
それだけです!ありがとう。 – shredding