跳到主要内容
CalcMax

线性插值计算器

范围:-1,000,000 – 1,000,000

范围:-1,000,000 – 1,000,000

范围:-1,000,000 – 1,000,000

范围:-1,000,000 – 1,000,000

范围:-1,000,000 – 1,000,000

结果

5.000000

插值得到的 y

斜率
3.000000
在两点之间的位置
0.500000

线性插值计算器求的是两点之间那条直线上任意一处的 y 值。给出两个已知点和一个待求的 x,就能得到插值结果,同时给出这条直线的斜率,以及这个点在两点之间的位置——一个 0 到 1 之间的比例。默认的两个点是 (1, 2) 与 (3, 8),x 取 2,正好落在正中间,所以 y 等于 5。插值的意思是「先从两个测量值画出一条直线,再去线上读一个数」,所以答案的好坏完全取决于「这一段是直的」这个假设。待求的 x 落在两个点之外时,同一个式子继续算下去,得到的是外插;外插在这一页上是被允许的,页面会报出这件事,而不是拒收。

(1, 2) 到 (3, 8) 之间五个等分点

xty
102
1.50.253.5
20.55
2.50.756.5
318

五个取样位置是两端加上把区间等分成四段的三个点,所以中间那一列读出来是 0、0.25、0.5、0.75、1。往下读正是这张表的用意:y 那一列每次跨出去的步子一样大,因为「位置等步、值也等步」正是直线独有的性质。两端也列进来了,所以第一行与最后一行不用算就能对着两个已知点核。每一格都是纯数,所以这张表在全部十个语言里长得一样。

公式

y = y₁ + (x − x₁) × (y₂ − y₁) ÷ (x₂ − x₁) t = (x − x₁) ÷ (x₂ − x₁) y = (1 − t)·y₁ + t·y₂

x₁、y₁
第一个已知点。它把这条线钉住:x 取 x₁ 时式子里的距离项整个归零,答案精确地退回 y₁。x₁ 取 0 是允许的而且常见,那时这个点就落在 y 轴上。
x₂、y₂
第二个已知点。两点合起来决定一条直线,而一条直线要的也就这么多。两个点的横坐标必须不同:横坐标相同的两个点描述的是一条竖直线,一个 x 同时对应无穷多个 y,没有唯一的答案。
x
要求值的那一处横坐标。它不必落在两个点之间——出了这个范围,同一个式子照样算得下去,得到的是外插而不是插值,所以页面把它报出来,而不是把它挡住。
t
在两点之间的位置:从第一个点算起,这个点在线段上走了多远。第一个点处是 0,正中间是 0.5,第二个点处是 1,而它正是两个 y 值混合时的权重——也就是这个点把线段分成的比例。

已知两个测量值、要问它们中间某一处是多少时用这一页:两个表格值之间的读数、两次观测之间的某个日期、或者任何被认为「按直线一起变」的两个量。若这两个点是用来说明「有多陡」的,那是直线的斜率那一页;若要求的就是正中间那一点,那是中点那一页。

算例

  1. (1, 2) 与 (3, 8) 的正中间

    1. y 的变化量是 8 − 2 = 6,x 的变化量是 3 − 1 = 2
    2. x 每走 1,y 就升 3,所以斜率是 3
    3. x = 2 在 2 个单位长的区间上走了 1 个单位,所以在两点之间的位置是 1 ÷ 2 = 0.5
    4. 按这个比例把两个值混起来:(1 − 0.5) × 2 + 0.5 × 8 = 1 + 4 = 5
    5. 插值得到 y = 5

    默认这一格值得多看一眼:位置正好是一半时,答案就是 2 与 8 的算术平均。这是「正好落在正中间」的巧合,不是规律——走四分之一处时答案是 3.5,不是别的什么。

  2. 一条往下走的线

    1. y 的变化量是 −20 − 0 = −20,x 的变化量是 10 − 0 = 10
    2. 斜率是 −20 ÷ 10 = −2,也就是每往右 1 就往下 2
    3. x = 4 在 10 个单位长的区间上走了 4 个单位,所以在两点之间的位置是 0.4
    4. 混合:0.6 × 0 + 0.4 × (−20) = −8
    5. 插值得到 y = −8

    这一格两端都带符号,所以值得手核一遍:分母是 10 而不是 −10,答案落在两个已知值之间、没有出界。把区间从右往左读,斜率与位置会同时变号而 y 不变——这正是位置那一格要挨着答案印出来的原因。

  3. 问到最后一个点之外

    1. 与第一格是同一条线:每往右 1 升 3
    2. x = 4 在 2 个单位长的区间上走了 3 个单位,所以在两点之间的位置是 3 ÷ 2 = 1.5
    3. 这个比例大于 1,就是答案在说「这一点落在第二个已知值之外」
    4. 混合:(1 − 1.5) × 2 + 1.5 × 8 = −1 + 12 = 11
    5. 答案是 y = 11

    这就是外插,也是位置那一格印成一个普通数字、而不被截回区间里的原因。1.5 说的是这一点已经越过了那一端、又走了半段;算法与插值完全一样,变的只是怎么读它。

局限

两个已知点的横坐标必须不同。横坐标相同的两个点描述的是一条竖直线,一个 x 对应无穷多个 y,插值没有唯一的答案——这种输入会被拒收,而不是返回无穷大。五个数都限制在一百万以内,因为斜率与位置都是要舍入到六位小数的商,再大就核不动了。落在区间外的值照收并如实报出:位置会大于 1 或小于 0,那是这一页在说明它做的是外插。这一页说不出来的是「外插这件事本身合不合理」——两个点决定的那条直线,对两个点之外会发生什么一无所知,所以这里不给任何置信度读数:两个点撑不起一个置信度。

常见问题

线性插值是什么意思?
过两个已知点画一条直线,再在它们之间读一个值。linear 这个词把假设直接写在名字里:这一段里这个量被当成匀速变化的,所以答案是两个已知值的加权混合,而不是一次测量。
在两点之间的位置那一格有什么用?
它说的是这个点从第一个已知点算起走了多远:第一个点是 0,正中间是 0.5,第二个点是 1。答案本身也可以写成两个已知值按这个比例混合,所以插值在两点之外加的东西全在这一格里。把区间四等分,五个等分点的位置就依次是 0、0.25、0.5、0.75 与 1。
可以求两个点之外的值吗?
可以,这一页就是这么做的——但那时它叫外插,位置那一格会大于 1 或小于 0,这就是它在告诉你这件事。过两点的直线只是对它们之间那一段的猜测;往两端伸出去之后,它变成对一个数据根本没覆盖过的地方的强猜测。
为什么横坐标相同的两个点要拒收?
因为没有唯一的答案可给。横坐标相同的两个点一上一下,过它们的直线把这一个 x 同时配给所有的 y。这一页会指名拒收这种输入,而不是返回一个无穷大——那看起来太像一个答案了。
两个点写反了会有影响吗?
线上读出来的值不受影响,但斜率与位置都会变。把两个点对调,斜率与在两点之间的位置同时变号,而插值得到的 y 原地不动——因为描述的还是同一条线,只是从另一头开始读。
为什么没有给出拟合优度?
因为两个点撑不起这个数。拿两个点去算拟合程度,算出来永远是最好看的那个值,无论背后的数据实际上是什么样。这一页改印斜率与位置——它们是关于这条直线的事实,不是关于数据的断言。

参考资料

相关计算器