2011-02-03 4 views
3

У меня 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. Найти х и у координаты, где две кривые пересекаются и
  2. Найти площадь под г кривая справа от координаты 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]] 

Out [4] = 0,0995521

Теперь возьмите CDF до этого момента.

CDF[NormalDistribution[0.044, 0.040], intersect] 

Out [5] = 0,917554

не был уверен, если вы хотите, чтобы начать в точке х = 0 или -бесконечности; моя версия делает последнюю. Если бы первый тогда просто вычитал CDF, оцененный при x = 0.

использование FindRoot будет

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

Out [6] = 0.0995521

Если вы работали с чем-то, кроме вероятностных распределений можно интегрировать до значения пересечения. Использование CDF - полезный ярлык, так как у нас есть PDF для интеграции.

Daniel Лихтблау Wolfram Research

+0

Спасибо. Интересно (по крайней мере на моей машине), что использование FindRoot работает намного быстрее, чем Solve. – Jagra

+1

FindRoot - это локальный корневой поиск. Решите, найдем ВСЕ корни в заданной области, заданные неравенством, и, кроме того, найдем их в «точной» форме. Поскольку я дал ввод, который был приблизительным, он затем numericizes, чтобы получить окончательный результат. (Точный результат верен для рационализированной формы ввода). В любом случае, поскольку Solve использует глобальные и точные методы, неудивительно, что FindRoot работает быстрее. Но FindRoot, являющийся набором числовых методов, может терпеть неудачу в ситуациях, когда на самом деле есть корень. –