python - 计算两条曲线之间的面积

标签 python math scipy numerical-integration

我有一个包含曲线和直线的代码。我知道如何填充线下方和下方的区域,但我需要计算每个区域的面积值。

这是代码:

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()

有什么帮助吗?

最佳答案

改编自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))

enter image description here

将这些技术中的任何一种应用于您的问题。

关于python - 计算两条曲线之间的面积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43951136/

相关文章:

Python:一个函数与多个函数的键?

如果执行得太快,Python 线程会干扰

function - 函数式编程中的所有纯函数都是连续的吗?

c# - 为特定精度截断数字的最有效方法是什么?

c - 找出一个整数与另一个整数的百分比

python - 创建五边形或更高的三角形网格

python - 通过组合列表构造 'table'

Python - 将脚本作为服务运行,名称不是 'python'

python - 求 1d 内给定区间内的所有根

python - 在 scipy 稀疏 csr_matrix 中找到 n 个随机零元素