线性插值计算器
填入两个已知点,线性插值计算器立即按内插法公式算出中间值:既能已知 x 求 y(查表估中间读数),也能已知 y 反查 x(财务管理的插值法求利率、IRR 试算),并自动标注内插还是外推、给出插值比例 t 与直线斜率 k。
查表估中间值选前者;已知结果反推自变量(如财管用两个折现率的系数插值求利率)选后者。
目标值落在 x₁ 与 x₂ 之间时为内插, 落在区间之外则是外推,工具会明确标注。
插值结果常为除不尽的小数,此项决定结果、插值比例与斜率的显示位数(除不尽时带 ≈)。
由线性插值公式 y = y₁ + (x − x₁) / (x₂ − x₁) × (y₂ − y₁) 代入得 y 1.32(除得尽,为精确值)。插值比例 t = 0.4,位于 0~1 之间,属于内插,误差取决于该区间内真实关系与直线的偏离程度。
怎么用
- 确定计算方向:默认「已知 x 求 y」:查表时表里只有整点数值,要估中间某个 x 对应的 y 就选它。若手里已有结果、要反推自变量(如财务管理中用两个折现率对应的系数插值求利率),切换到「已知 y 反查 x」。
- 填两个已知点:在「已知点 P₁」「已知点 P₂」下分别填 (x₁, y₁) 与 (x₂, y₂)。x 是自变量(温度、年限、利率、时间等),y 是它对应的数值(读数、系数、现值等)。两点取得越近,插值越准;两点先后顺序不影响结果。
- 填目标值:求 y 时填目标 x,反查时填目标 y。目标值应尽量夹在两个已知点之间(内插);若落在区间之外,工具会标注为「外推」,提醒你结果只是把直线延长出去的估计。
- 读结果:工具给出插值结果,并附插值比例 t、目标值位置(内插/外推/正好在端点)、区间跨度与直线斜率 k。插值常常除不尽,可在「小数位数」处调整显示位数,除不尽时结果前带 ≈;财务插值一般保留 2~4 位即可。
核心要点
线性插值计算器先给结论:把两个已知点连成一条直线,目标值在区间里占多大比例, 结果就在两个已知值之间走多远。
- 求 y:
y = y₁ + (x − x₁) / (x₂ − x₁) × (y₂ − y₁); 如 20℃→1.20、30℃→1.50,则 24℃ 处为1.32。 - 反查 x:
x = x₁ + (y − y₁) / (y₂ − y₁) × (x₂ − x₁); 财管的插值法求利率、IRR 试算用的就是这一式。如年金现值系数 10%→3.7908、 12%→3.6048,实际系数 3.7500 对应利率约10.44%。 - 插值比例 t:
t = (x − x₁) / (x₂ − x₁), 落在 0~1 是内插,超出则是外推,结果可靠性明显下降;查表时取「刚好夹住目标值」 的相邻两行,t 自然落在 0~1。 - 误差来源:只在于「这段区间是不是直线」;区间越窄、曲率越小越准, 误差约与区间跨度的平方成正比。
- 算不出的情况:求 y 时
x₁ = x₂、 反查 x 时y₁ = y₂,都没有唯一解,工具会提示。 - 精度:插值多为除不尽的小数,除不尽时按所选小数位显示并带 ≈, 全部计算在浏览器本地完成。
原理与公式
线性插值(内插法,linear interpolation)是最常用的估值方法: 当我们只掌握两个已知点,而需要知道它们「中间某处」的数值时, 就假设这段区间内两个量成直线关系,再按比例算出中间值。 它相当于把两点连成一条线段,在线段上取点。
公式:已知 x 求 y
已知 P₁(x₁, y₁)、P₂(x₂, y₂),目标 x:
y = y₁ + (x − x₁) / (x₂ − x₁) × (y₂ − y₁)
记插值比例 t = (x − x₁) / (x₂ − x₁),公式就是 y = y₁ + t × (y₂ − y₁),也可写成两端加权平均的形式 y = (1 − t)·y₁ + t·y₂:t = 0 时取 y₁,t = 1 时取 y₂,t = 0.5 时正好取两者中值。
公式:已知 y 反查 x
把上式对 x 反解,得到反插值(逆插值)公式:
x = x₁ + (y − y₁) / (y₂ − y₁) × (x₂ − x₁)
这一式要求 y₁ ≠ y₂;同理,求 y 的式子要求 x₁ ≠ x₂。
为什么是按比例走
过两点的直线斜率为 k = (y₂ − y₁) / (x₂ − x₁), 点斜式即 y = y₁ + k·(x − x₁)。把 k 代回就是上面的插值公式—— 所以线性插值本质上就是「先求两点直线方程,再代入目标值」, 只不过写成比例形式后更适合查表手算。工具同时给出斜率 k, 便于你核对或复用这条直线。
算例一:查表估中间值
某标定表 20℃ → 1.20、30℃ → 1.50,求 24℃:t = (24 − 20) / (30 − 20) = 0.4,y = 1.20 + 0.4 × (1.50 − 1.20) = 1.32。
算例二:财管插值法求利率
5 年期年金现值系数 (P/A, i, 5):i = 10% 时为 3.7908,i = 12% 时为 3.6048; 某项目实际系数为 3.7500,求其对应的利率:
i = 10% + (3.7908 − 3.7500) / (3.7908 − 3.6048) × (12% − 10%) ≈ 10.44%
内含报酬率(IRR)试算同理:取一正一负两个净现值对应的折现率, 目标 y 填 0,插值得到使净现值为零的利率。 债券到期收益率的试算插值也是同一套做法。
误差与适用条件
- 只在区间内才叫内插:
0 ≤ t ≤ 1时结果被两个真实数据点 夹住;t超出该范围即为外推,直线被延伸到无数据支撑处,风险显著更高。 - 误差量级:用直线近似二阶可导函数,误差不超过
|f″(ξ)| × (x − x₁)(x₂ − x) / 2,与区间跨度的平方、 与曲线弯曲程度成正比。取点越密越准。 - 方向偏差:对下凸(上凹)函数,弦在曲线上方,插值结果偏高; 对上凸函数则偏低。年金现值系数对利率就是凸函数,故插值利率通常有小幅系统偏差。
精度:本工具用十进制高精度运算(decimal.js)代入公式, 差值、跨度均为精确值,不产生浮点误差;只有除不尽的商(结果、插值比例、斜率) 才四舍五入到所选小数位(默认 6 位,最多 20 位),并在数值前标注 ≈。
常见问题
- 线性插值公式是什么?内插法怎么算中间值?
- 已知两点 P₁(x₁, y₁)、P₂(x₂, y₂),认为这段区间内 y 随 x 线性变化,则目标 x 处的 y 为:y = y₁ + (x − x₁) / (x₂ − x₁) × (y₂ − y₁)。也就是先算目标值在区间里的位置比例 t = (x − x₁)/(x₂ − x₁),再让 y 从 y₁ 按同样比例走向 y₂。例如某传感器 20℃ 读数 1.20、30℃ 读数 1.50,求 24℃:t = (24−20)/10 = 0.4,y = 1.20 + 0.4 × 0.30 = 1.32。本工具用高精度十进制代入公式,除不尽时按所选小数位四舍五入。
- 内插和外推有什么区别?插值比例 t 超出 0~1 说明什么?
- 两者用的是同一条直线,区别在目标值的位置。t 在 0~1 之间说明目标值夹在两个已知点中间,叫内插(内插法),直线只是在两个真实数据点之间做过渡,误差受控;t 小于 0 或大于 1 说明目标值落在已知区间之外,是外推——把直线延长到没有数据支撑的地方,真实关系一旦弯曲,偏差会随距离迅速放大。工具会直接标注「内插」还是「外推」。遇到外推,优先换一对能把目标值夹在中间的已知点,而不是硬算。
- 财管插值法求利率怎么算?内插法求 IRR(内含报酬率)的公式是什么?
- 把利率当 x、系数(或净现值)当 y,切换到「已知 y 反查 x」即可。例如 5 年期年金现值系数 (P/A, i, 5):10% 时为 3.7908,12% 时为 3.6048,项目实际系数为 3.7500,填 x₁=10、y₁=3.7908、x₂=12、y₂=3.6048、目标 y=3.7500,得 i ≈ 10.44%,与教材做法 i = 10% + (3.7908−3.7500)/(3.7908−3.6048) × (12%−10%) 完全一致。求内含报酬率(IRR)时同理:把两个折现率对应的净现值填进去、目标 y 填 0,即可得到净现值为零的利率。债券到期收益率的试算插值也用这一步。
- 线性插值的误差有多大?内插法结果准不准、误差来自哪里?
- 误差只来自一个假设:这段区间内的真实关系是直线。若真实曲线在区间内向上或向下弯曲,插值结果会系统性偏向弦一侧——对上凸的曲线偏低,对下凹的曲线偏高。数学上,用直线近似的误差不超过 |f″(ξ)| × (x−x₁)(x₂−x) / 2,即与区间跨度的平方成正比、与曲率成正比。所以两个已知点取得越近,结果越可靠;跨度大、曲率明显(如复利、指数、对数关系)时误差会变大。财管的年金现值系数与利率就是凸函数关系,用插值法算出的利率通常略有偏差,教材也只把它当作近似值。
- 线性插值已知 y 反查 x 怎么算?反插值什么情况下算不出来?
- 把公式反过来解即可:x = x₁ + (y − y₁) / (y₂ − y₁) × (x₂ − x₁)。工具在「已知 y 反查 x」模式下用的就是这个式子。两种情况算不出唯一答案:一是 y₁ = y₂(两点的 y 相同,直线是水平的,任意 x 都对应同一个 y),工具会提示无法反查;二是 x₁ = x₂ 时无法「已知 x 求 y」,同一个 x 对应两个 y。另外,如果目标 y 不在 y₁ 与 y₂ 之间,反查得到的 x 属于外推,需谨慎使用。
- 线性插值结果保留几位小数合适?为什么插值结果前面带 ≈ 号?
- 线性插值要做一次除法,(x − x₁)/(x₂ − x₁) 很容易除不尽(例如 1/3 = 0.333…),这时结果只能按所选小数位四舍五入,工具会在数值前加 ≈ 提示这是近似显示值;除得尽时不带 ≈,是精确值。位数按用途选:财务利率、系数类保留 2~4 位足够,工程标定或需要再代入后续计算时可选 6~10 位。工具内部用十进制高精度运算,不会出现 0.1 + 0.2 这类浮点误差,四舍五入只发生在最后的显示环节。
- 查表用线性插值该选哪两点?表格里有多组数据怎么取相邻行?
- 选「刚好把目标值夹住」的相邻两行:目标 x 上方最近的一行作 P₁,下方最近的一行作 P₂,这样 t 一定落在 0~1 之间,且区间跨度更窄、误差更小。不要为了凑整数而跨行取点(如目标 24 却用 0 和 100 两行)。表格数据本身已四舍五入(如系数表只给 4 位小数)时,插值结果的有效位数不会超过原表精度,多保留的位数没有实际意义。多段数据逐段这样处理,就是工程上常说的分段线性插值。
- 线性插值和多项式插值、样条插值有什么区别?该用哪个?
- 线性插值只用两个点、拟合一条直线,是一次多项式插值(拉格朗日插值取 n=1 的特例),优点是手算可行、稳定、不会在数据点之间冒出奇怪的振荡;缺点是无法体现曲率,在弯曲明显的区间偏差较大。多项式插值用更多点拟合更高次曲线,能贴合曲率,但点数一多容易出现龙格现象(端点附近剧烈振荡)。样条插值分段用低次多项式并保证接口处平滑,是曲线拟合的常用折中。日常查表、财管求利率、传感器标定这类「区间窄、要求手算可复核」的场景,线性插值足够;对精度要求高且数据密集的曲线,再考虑样条。