Расчет площадей между двумя кривыми

У меня есть код, содержащий кривую и строку. Я знаю, как заполнить области ниже и под строкой, но мне нужно рассчитать значения площадей каждого из них.

Вот код:

import matplotlib.pyplot as plt import numpy as np x = np.arange(0.0, 2, 0.01) y1 = np.sin(2*np.pi*x) y2 = 0*x fig, ax = plt.subplots(1, 1, sharex=True) ax.plot(x, y1, x, y2, color='black') ax.fill_between(x, y1, y2, where=y2 >= y1, facecolor='green', interpolate=True) ax.fill_between(x, y1, y2, where=y2 <= y1, facecolor='red', interpolate=True) plt.show() 

Любая помощь?

  • Ограничение значений для curve_fit (scipy.optimize)
  • Неисправность установки scipy в virtualenv на экземпляре amazon ec2 linux micro
  • Как управлять файлами wav-файлов в Python?
  • поиск ближайших элементов в двух списках / массивах в Python
  • настройка numpy / scipy в режиме ожидания
  • Поверхностная кривизна Matlab эквивалент в Python
  • Использование scipy.stats.stats в django после развертывания
  • Почему не называется Dfunc (градиент) при использовании integrate.odeint в SciPy?
  • 2 Solutions collect form web for “Расчет площадей между двумя кривыми”

    Адаптирован из scipy.integrate.quad docs для другой функции, y = x ^ 2:

     from scipy import integrate def f(x): return x**2 integrate.quad(f, 0, 4) # (21.333333333333332, 2.3684757858670003e-13) print(4**3 / 3.) # analytical result # 21.3333333333 

    Возвращается результат и ошибка для численного расчета.

    Если вам нужен точный или символический ответ, рассмотрите sympy . Вот аналогичный пример, применяемый к y = πx ^ 2 (Примечание: для обозначения объектов Sympy использовались символы подчеркивания).

     import sympy as sym sym.init_printing() _x = sym.symbols("x") _f = sym.pi * _x**2 sym.integrate(_f, (_x, 0, 2)) 

    введите описание изображения здесь

    Примените любой из этих методов к вашей проблеме.

    Это называется численным интегрированием . Есть множество стандартных методов. Поскольку @pylang сказал, что они уже реализованы в scipy.integrate.* . scipy.integrate.quadгауссова квадратура .

    Python - лучший язык программирования в мире.