我有一个由100个数字组成的列表,其中Y轴的高度和X轴的长度:从1到100,步长为5。我需要计算(x,y)曲线所包含的面积点和X轴(使用矩形和Scipy)。我是否必须找到该曲线的函数?或不? ...我读过的几乎所有示例都是关于Y轴的特定方程式的。在我的情况下,没有方程,只有列表中的数据。经典的解决方案是将Y点加或乘以X步距...使用Scipy有什么想法吗?

请问有人可以推荐使用Scipy和Numpy着重于数值(有限基本)方法的书吗? ...

最佳答案

numpy和scipy库包含复合梯形(numpy.trapz)和Simpson(scipy.integrate.simps)规则。

这是一个简单的例子。在trapzsimps中,参数dx=5表示沿x轴的数据间距为5个单位。

from __future__ import print_function

import numpy as np
from scipy.integrate import simps
from numpy import trapz


# The y values.  A numpy array is used here,
# but a python list could also be used.
y = np.array([5, 20, 4, 18, 19, 18, 7, 4])

# Compute the area using the composite trapezoidal rule.
area = trapz(y, dx=5)
print("area =", area)

# Compute the area using the composite Simpson's rule.
area = simps(y, dx=5)
print("area =", area)

输出:
area = 452.5
area = 460.0

关于python - 在不知道函数的情况下,在给定一组坐标的情况下计算曲线下的面积,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13320262/

10-12 18:16