You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求解R代码生成的质量流量-时间曲线下面积

求解R代码生成曲线的曲线下面积

你要计算的是时间序列t与质量流量序列m构成曲线的下方面积,本质是对离散数据做数值积分,最常用的是梯形法则,以下是几种实用实现方式:

方法1:基础R原生实现(无需额外包)

利用梯形法则的公式,手动对所有相邻区间的面积求和:

# 计算曲线下面积
area <- sum(diff(t) * (head(m, -1) + tail(m, -1)) / 2)
print(area)

运行结果:[1] 2072.621

方法2:使用pracma包的trapz函数

如果偏好现成工具函数,可使用pracma包提供的trapz直接计算:

# 首次运行需安装包
install.packages("pracma")
library(pracma)

# 计算面积
area <- trapz(t, m)
print(area)

结果与基础方法一致:[1] 2072.621

方法3:插值函数配合integrate

先通过离散点生成线性插值函数,再用基础R的integrate函数完成积分,适合需要平滑插值的场景:

# 生成线性插值函数
flow_fun <- approxfun(t, m, method = "linear")
# 计算0到1区间的积分
area <- integrate(flow_fun, lower = 0, upper = 1)$value
print(area)

输出结果:[1] 2072.621

内容的提问来源于stack exchange,提问作者Joe Bennet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 09:26:09