2011-02-03 12 views
3

/wの交差点の右側の曲線下2つのカーブ&地域の交点を探す:私は、次のMathematicaのコードで示す2つの曲線持ちのMathematica

Show[Plot[PDF[NormalDistribution[0.044, 0.040], x], {x, 0, 0.5}, PlotStyle -> Red], 
Plot[PDF[NormalDistribution[0.138, 0.097], x], {x, 0, 0.5}]] 

Mathematica graphics

を私は2を行う必要があります物事:

  1. 二つの曲線が交差するxおよびy座標を検索し、
  2. はRの下の領域を探します交差点の上にある のx座標の右側にある曲線です。

私はこれまでMathematicaでこのような問題を抱えていませんでしたが、ドキュメントでこれを行う方法が見つかりませんでした。何を検索するかわからない

答えて

10

Solveと交差する場所を見つけることができます(またはFindRootを使用することもできます)。

intersect = 
x /. First[ 
    Solve[PDF[NormalDistribution[0.044, 0.040], x] == 
    PDF[NormalDistribution[0.138, 0.097], x] && 0 <= x <= 2, x]] 

アウト[4] = 0.0995521

は今、その時点までのCDFを取ります。あなたは、x = 0または-Infinityで開始したい場合は

CDF[NormalDistribution[0.044, 0.040], intersect] 

アウト[5] = 0.917554

は確認されませんでした。私のバージョンは後者です。前者の場合、x = 0で評価されたCDFを減算するだけです。あなたは交差点値まで統合できる確率分布以外のものを使用していた場合は

FindRootでの使用は、[6] = 0.0995521

intersect = 
x /. FindRoot[ 
    PDF[NormalDistribution[0.044, 0.040], x] == 
    PDF[NormalDistribution[0.138, 0.097], x], {x, 0, 2}] 

アウトだろう。 CDFを使用するのは、統合するPDFがあるので便利なショートカットです。

ダニエルLichtblau Wolfram Researchの

+0

ありがとうございました。興味深い(少なくとも私のマシンでは)FindRootの使用はSolveよりはるかに高速です。 – Jagra

+1

FindRootはローカルルートファインダーです。 Solveは、不等式によって与えられた指定された領域内のすべてのルーツを見つけ、さらにそれらを「正確な」形式で見つけます。私は近似した入力を与えたので、最終結果を得るためにそれを数値化します。 (正確な結果は、入力の合理化された形式に対して正しい)。とにかく、Solveはグローバルで正確なメソッドを使用しているので、FindRootが高速であることは驚くことではありません。しかし、数値的方法であるFindRootは、実際にルートが存在する状況で失敗することがあります。 –

関連する問題