Найти площадь между двумя кривыми отдельно в NumPy - PullRequest
0 голосов
/ 15 марта 2019

У меня в списке точек две разные кривые (y1, y2), и я хочу найти область между кривыми, когда:

  • y1> y2
  • y1

Я нашел этот пост , но он вычисляет только сумму обеих областей.

Если мы строим то, что я хочу, я хочу отдельно синюю область и красную область.

separately

1 Ответ

1 голос
/ 15 марта 2019

Редактировать : Оглядываясь назад, я заметил, что это решение не является точным и, возможно, в некоторых случаях оно вообще не работает. Пока нет другого лучшего ответа, я оставлю это здесь.

Вы можете использовать

diff = y1 - y2 # calculate difference
posPart = np.maximum(diff, 0) # only keep positive part, set other values to zero
negPart = -np.minimum(diff, 0) # only keep negative part, set other values to zero

чтобы отделить синий от красной части. Затем рассчитайте их площади с помощью np.trapz:

posArea = np.trapz(posPart)
negArea = np.trapz(negPart)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...