Javascript 如何通过已知点的数组对特定数据点的值进行插值?

Javascript 如何通过已知点的数组对特定数据点的值进行插值?,javascript,arrays,linear-interpolation,Javascript,Arrays,Linear Interpolation,我知道数据点及其值被描述为数组、speed和power speed=[2,6,8,10,12] 功率=[200450500645820], 我想估算与源阵列(2到12)中未列出的速度值(例如7)相对应的功率值 也就是说,我正在寻找一种执行插值的方法。最简单的方法是将速度相关性中的功率视为一组线,并假设目标点位于某条线的两个已知点之间,计算该值 例如,您可以执行以下操作: const speed=[2,6,8,10,12],power=[200450500645820] 常量插值=(xarr

我知道数据点及其值被描述为数组、
speed
power

speed=[2,6,8,10,12]
功率=[200450500645820],
我想估算与源阵列(2到12)中未列出的速度值(例如7)相对应的功率值


也就是说,我正在寻找一种执行插值的方法。最简单的方法是将速度相关性中的功率视为一组线,并假设目标点位于某条线的两个已知点之间,计算该值

例如,您可以执行以下操作:

const speed=[2,6,8,10,12],power=[200450500645820]
常量插值=(xarr、yarr、xpoint)=>{
常量xa=[…xarr].reverse().find(x=>x>=xpoint),
ya=yarr[xarr.indexOf(xa)],
yb=yarr[xarr.indexOf(xb)]
返回yarr[xarr.indexOf(xpoint)]| | ya+(xpoint xa)*(yb ya)/(xb xa)
}
console.log(插值(速度、功率、7))

。由于控制台包装器{min height:100%}
Resultin power应该在450到500之间,所以结果是575