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

带区间的向量加权乘法:实测风速的有效功率插值计算

解决方案

可以通过以下步骤实现带区间的加权乘法计算:

  1. 定位每个实测风速在理论风速序列中的区间位置
  2. 计算风速在区间内的权重占比
  3. 基于权重对区间两端的功率值进行加权求和

完整代码实现

# 定义理论风速-功率对应数据框
a <- data.frame(
  wind_speed = c(21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0),
  power = c(29, 171, 389, 703, 1139, 1682, 2205, 2700, 2700)
)

# 实测风速数据
b <- c(21.5, 27.2)

# 获取每个实测风速对应的左区间索引
interval_idx <- findInterval(b, a$wind_speed)

# 计算右区间功率的权重(实测风速与左区间风速的差值占区间长度的比例)
weights <- (b - a$wind_speed[interval_idx]) / (a$wind_speed[interval_idx + 1] - a$wind_speed[interval_idx])

# 批量加权计算功率
calculated_power <- (1 - weights) * a$power[interval_idx] + weights * a$power[interval_idx + 1]

# 输出结果
calculated_power

结果说明

运行代码后输出结果为 [1] 100 2304,完全符合预期:

  • 21.5对应的功率为 (29+171)/2 = 100
  • 27.2对应的功率为 0.8*2205 + 0.2*2700 = 2304

代码解释

  • findInterval():快速定位每个实测风速落在理论风速序列中的左区间位置,比如21.5对应左区间21.0(索引1),27.2对应左区间27.0(索引7)
  • 权重计算:通过向量运算批量算出每个风速在区间内的占比,右区间权重为(实测风速-左区间风速)/区间长度,左区间权重为1-右区间权重
  • 加权求和:利用R的向量运算特性,无需循环即可完成所有实测风速的功率计算,效率更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:31:04