前回の質問と似たようなことをしているのですが、次はscipy.integrate.trapz
、scipy.integrate.simps
を使って、これらの関数と実際の値との誤差をプロットしようとしています。まず練習として
import numpy as np from scipy import integrate f = lambda x: np.exp(-x) x = np.linspace(0, 1, num=10000, endpoint=True) y = f(x) integrate.trapz(y, x)
こちらは問題なくできたのですが、次にループを使ったときにエラーが出てしまいました。
for i in [10, 100, 1000, 10000]: x = np.linspace(0, 1, num=i, endpoint=True) print(integrate.trapz(y, x))
ValueError: operands could not be broadcast together with shapes (0,) (49,)
おそらく配列の数が合っておらず、引数の渡し方に問題があるのだと思うのですが、直し方がよくわかりません。多分np.linspace
の使い方がまだよくわかっていないのだとは思うのですが…。
どなたか教えていただけると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/18 05:37