問題タブ [quad]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 統合される関数も積分である場合、scipy.integrate.quad は (時々) 失敗します。
sqipy.integrate.quad
二重積分を計算するために使用しています。基本的に、私は exp[-mu_wx_par] の積分を計算しようとしています。ここで、mu_wx_par も積分です。
私のコードはほとんど動作します。ただし、一部の値では失敗します。つまり、正しくない値が返されます。
の値がestimate_42
正しくありません。とほぼ同じ値になるはずrough_estimate_42
です。ただし、estimate_43
見た目は問題ありません。ここで何が起こっているのですか?
私は scipy v1.1.0 と numpy v1.15.1 と Windows を使用しています。
この投稿scipy integrate.quad return an illegal value のように、関数はほぼどこでもゼロに近いことが示唆されています。tpx_wx
for x=42
from a=0
toの単純なプロットがb=125-42
明確に示すように、そうではありません
python - dblquad と統合できません
したがって、ユーザーがこの定数の値を割り当てることができる a、b などの定数を含む二重積分を統合したいと考えています。
積分の限界は x[0,1] と y[-1,2] です
しかし、このエラーが発生し、その理由がわかりません:
わかりません。私が同じことをすると、 quad() Python が正しく動作するためです。
結果:
python - numpy.random.exponential を使用して X の 10,000,000 サンプルを抽出し、ペイアウトの期待値を推定する
自動車事故による損害のドル額が平均 1000 の指数確率変数であると仮定します。このうち、保険会社は 400 の免責額を超える額のみを支払います。X が損害額を表す確率変数である場合の場合、保険の支払いは max(X-400,0) です。
scipy の quad 関数を使用して、max(x-400) の 0 と無限大の間の積分を評価しようとしています。
視覚化を改善するためのリンクは次のとおりです: https://imgur.com/a/XIglH8i
モンテカルロ シミュレーションを使用して 670.32 の答えを検証する必要があり、numpy の .random.exponential 関数を使用して X の 10,000,000 サンプルを描画する必要があると考えています。
前述のように、scipy の quad を使用して積分を定義しようとしていますが、苦労しているのは、X が 10,000,000 回描画されるようなループの繰り返し回数をどのように組み込むかです。for ループは非常に非効率的であると予想されるため、行列操作を使用したブロードキャストがより効率的なソリューションになる可能性があると考えています。残念ながら、これは私のプログラミング経験のレベルを超えており、X のサンプルを効率的に収集し、それを X の積分を評価する関数に組み込み、何らかのデータ構造に格納する方法について、実際にいくつかの助けを借りることができます。 、そしてプロセスを10,000,000回繰り返します
指数関数的な数の変数を取り、それらを保存してプロセスを繰り返すように関数を定義するにはどうすればよいですか?
結果は ~= 670.32 になるはずです