0

Python で quad() の実行時間を短縮する必要があります (数千の積分を統合しています)。ここで、いくつかの統合を行い、部分的な値を追加することを提案した同様の質問を見つけました。ただし、パフォーマンスは向上しません。何かご意見は?簡単な例を次に示します。

import numpy as np                      
from scipy.integrate import quad
from scipy.stats import norm
import time

funcB = lambda x: norm.pdf(x,0,1)

start = time.time()
good_missclasified,_ = quad(funcB, 0,3.3333)
stop = time.time()
time_elapsed = stop - start 
print ('quad : ' + str(time_elapsed))

start = time.time()
num = np.linspace(0,3.3333,10)
Lv = []
last, lastG = 0, 0
for g in num:
  Lval,x = quad(funcB, lastG, g)
  last, lastG = last + Lval, g
  Lv.append(last)
Lv = np.array(Lv)
stop = time.time()

time_elapsed = stop - start 
print ('10 int : ' + str(time_elapsed))
print(good_missclasified,Lv[9])
4

1 に答える 1