问题

已知

X和Y有下表的对应关系,当一个新的4<x<11时,对应的y是多少?
例如:x=10,y=?

X Y
4 54
6 62
9 70
11 100

解决思路

采用线性插值的方法,找到x前后两个数x1和x2,线性计算
y=y1 + x*(y2-y1)/(x2-x1)即可

因此 x=10,y应该是85

Excel函数介绍

trend()函数

说明

返回线性趋势值。 找到适合已知数组 known_y’s 和 known_x’s 的直线(用最小二乘法)。 返回指定数组 new_x’s 在直线上对应的 y 值。

语法

TREND(known_y’s, [known_x’s], [new_x’s], [const])

TREND 函数语法具有下列参数:
◾ Known_y’s 必需。
关系表达式 y = mx + b 中已知的 y 值集合。
如果数组 known_y’s 在单独一列中,则 known_x’s 的每一列被视为一个独立的变量。如果数组 known_y’s 在单独一行中,则 known_x’s 的每一行被视为一个独立的变量。

◾ Known_x’s 必需。
关系表达式 y = mx + b 中已知的可选 x 值集合。
数组 known_x’s 可以包含一组或多组变量。 如果仅使用一个变量,那么只要 known_x’s 和 known_y’s 具有相同的维数,则它们可以是任何形状的区域。 如果用到多个变量,则 known_y’s 必须为向量(即必须为一行或一列)。
如果省略 known_x’s,则假设该数组为 {1,2,3,…},其大小与 known_y’s 相同。

◾ New_x’s 必需。
需要函数 TREND 返回对应 y 值的新 x 值。
New_x’s 与 known_x’s 一样,对每个自变量必须包括单独的一列(或一行)。 因此,如果 known_y’s 是单列的,known_x’s 和 new_x’s 应该有同样的列数。 如果 known_y’s 是单行的,known_x’s 和 new_x’s 应该有同样的行数。
如果省略 new_x’s,将假设它和 known_x’s 一样。
如果 known_x’s 和 new_x’s 都省略,将假设它们为数组 {1,2,3,…},大小与 known_y’s 相同。

◾ Const 可选。
一个逻辑值,用于指定是否将常量 b 强制设为 0。
如果 const 为 TRUE 或省略,b 将按正常计算。
如果 const 为 FALSE,b 将被设为 0(零),m 将被调整以使 y = mx。

直接用trend函数结果

=TREND(B2:B5,A2:A5,D3)


结果显然与分段线性插值的结果有差别,因为trend函数代表的是一组数据的整体趋势,而不是局部的线性。

因此采用trend+offset+match+frequency函数的方式实现

offset()函数

说明

返回对单元格或单元格区域中指定行数和列数的区域的引用。 返回的引用可以是单个单元格或单元格区域。 可以指定要返回的行数和列数。

语法

OFFSET(reference, rows, cols, [height], [width])

OFFSET 函数语法具有下列参数:

◾ Reference 必需。 要作为偏移基准的参照。 引用必须引用单元格或相邻单元格区域。否则, OFFSET 返回 #VALUE! 。

◾ Rows 必需。 需要左上角单元格引用的向上或向下行数。 使用 5 作为 rows 参数,可指定引用中的左上角单元格为引用下方的 5 行。 Rows 可为正数(这意味着在起始引用的下方)或负数(这意味着在起始引用的上方)。

◾ Cols 必需。 需要结果的左上角单元格引用的从左到右的列数。 使用 5 作为 cols 参数,可指定引用中的左上角单元格为引用右方的 5 列。 Cols 可为正数(这意味着在起始引用的右侧)或负数(这意味着在起始引用的左侧)。

◾ 高度 可选。 需要返回的引用的行高。 Height 必须为正数。

◾ 宽度 可选。 需要返回的引用的列宽。 Width 必须为正数。

采用offset函数找到查表区间

MATCH()函数

使用 MATCH 函数在 范围 单元格中搜索特定的项,然后返回该项在此区域中的相对位置。 例如,如果 A1:A3 区域中包含值 5、25 和 38,那么公式 =MATCH(25,A1:A3,0) 返回数字 2,因为 25 是该区域中的第二项。

语法

MATCH(lookup_value, lookup_array, [match_type])

MATCH 函数语法具有下列参数:

◾ lookup_value 必需。 要在 lookup_array 中匹配的值。 例如,如果要在电话簿中查找某人的电话号码,则应该将姓名作为查找值,但实际上需要的是电话号码。

lookup_value 参数可以为值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。

◾ lookup_array 必需。 要搜索的单元格区域。

◾ match_type 可选。 数字 -1、0 或 1。 match_type 参数指定 Excel 如何将 lookup_value 与 lookup_array 中的值匹配。 此参数的默认值为 1。

下表介绍该函数如何根据 match_type 参数的设置查找值。

◾MATCH 返回匹配值在 lookup_array 中的位置,而非其值本身。 例如,MATCH(“b”,{“a”,“b”,“c”},0)返回 2,即“b”在数组 {“a”,“b”,“c”} 中的相对位置。

◾匹配文本值时,MATCH 函数不区分大小写字母。

◾如果 MATCH 函数查找匹配项不成功,它会返回错误值 #N/A。

◾如果 match_type 为 0 且 lookup_value 为文本字符串,您可在 lookup_value 参数中使用通配符 - 问号 (?) 和星号 (*) 。 问号匹配任意单个字符;星号匹配任意一串字符。 如果要查找实际的问号或星号,请在字符前键入波形符 (~)。

采用match函数找到查表区间的位置

FREQUENCY()函数

FREQUENCY 函数计算值在某个范围内出现的频率,然后返回一个垂直的数字数组。 例如,使用函数 FREQUENCY 可以在分数区域内计算测验分数的个数。 由于 FREQUENCY 返回一个数组,所以它必须以数组公式的形式输入。

语法

FREQUENCY(data_array, bins_array)

FREQUENCY 函数语法具有下列参数:

◾ data_array 必需。 要对其频率进行计数的一组数值或对这组数值的引用。 如果 data_array 中不包含任何数值,则 FREQUENCY 返回一个零数组。

◾ bins_array 必需。 要将 data_array 中的值插入到的间隔数组或对间隔的引用。 如果 bins_array 中不包含任何数值,则 FREQUENCY 返回 data_array 中的元素个数。

采用frequency函数对x进行定位

最后的结果

=TREND(OFFSET($B$2,MATCH(1,FREQUENCY(D3,A2:A5),)-2,,2),OFFSET($A$2,MATCH(1,FREQUENCY(D3,A2:A5),)-2,,2),D3)


结果完美!
仅做抛砖引玉,可以根据实际问题扩展完善。

Excel分段线性插值函数实现相关推荐

  1. 贝叶斯方法---分段线性插值函数画图

    一.贝叶斯方法介绍 1.不确定表示 在主观贝叶斯方法中,知识是用产生式表示的,其形式为: IF    E   THEN  (LS,LN)   H 其中(LS,LN)用来表示该知识的知识强度,LS(充分 ...

  2. python线性插值函数_Numpy一维线性插值函数的用法

    直接列出函数: numpy.interp(x, xp, fp, left=None, right=None, period=None) x - 表示将要计算的插值点x坐标 xp - 表示已有的xp数组 ...

  3. 分段线性学习率extend_with_piecewise_linear_lr

    6个派生优化器的简单介绍及其实现 - 科学空间|Scientific Spaces # 派生为带分段线性学习率的优化器. # 其中name参数可选,但最好填入,以区分不同的派生优化器. AdamLR ...

  4. 图像分段线性变化_暗光也清晰的图像增强算法

    个人学习笔记:像素反转.伽马矫正.对数变换.线性变换.分段变换. 某天跑完步以后拍出了这样一张照片,由于晚上开闪光不太好,所以想自己处理一下(为了更好的看出处理效果,所以采用尺寸较大的原图像,没有进行 ...

  5. ITK:分段线性曲线的数据结构

    ITK:分段线性曲线的数据结构 内容提要 输出结果 C++实现代码 内容提要 分段线性曲线的数据结构 输出结果 [0, 0] [0, 1] [0, 2] [0, 3] [0, 4] [0, 5] [0 ...

  6. 分段线性拟合经典案例:计算多年气温最低值和最高值的分段线性变化趋势(附分段线性拟合工具下载)

    分段线性回归:是用虚拟变量估计不同数量水平的解释变量对被解释变量的影响.在经济关系中,当解释变量X的值达到某一水平X′之前,与被解释变量之间存在某种线性关系:当解释变量X的值达到或者超过X′以后,与被 ...

  7. 【OpenCV 例程200篇】40. 图像分段线性灰度变换

    [OpenCV 例程200篇]40. 图像分段线性灰度变换 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 分段线性变 ...

  8. 用Excel求线性回归方程

    文章目录 一.何为线性回归 二.如何制作线性回归 最小二乘法 三.利用Excel求线性回归方程 操作方法 1.选择需要拟合的数据 2.点击工具栏的插入,选择插入散点图 3.在生成的表格右上角勾选上生成 ...

  9. 【OpenCV 例程300篇】40. 图像分段线性灰度变换

    『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程300篇]40. 图像分段线性灰度变换 分段线性变换函数可以增强图像各部分的反差,增强感兴趣的灰 ...

  10. 线性插值函数的基函数构造

    线性插值函数的基函数构造 这里介绍的基函数为线性插值对应的基函数,也就是通过不在同一直线上的三个点构造的平面.这里我们直接通过三个点构造一个平面,再将其写法简单的变形就可以找到对应的基函数. 设 A ...

最新文章

  1. 对抗 Google优势 微软考虑收购雅虎
  2. MySQL的共享锁和独占锁
  3. Py之matplotlibseaborn :高级图可视化之​​​​​​​Q-Q分位数图probplot、​​​​​​​boxplot箱线图、stripplot分类散点图案例应用及代码实现
  4. matlab 的均值t检验,用MATLAB做T检验(ttest)
  5. 正则判断字符串是否为数字
  6. 你不出去卖我拿什么养你_玉树枝干“胳膊粗”,至少养了20年,给钱也不卖!...
  7. 用于金融时序预测的神经网络:可改善经典的移动平均线策略
  8. 虚拟机启动后链接超时
  9. c语言的编译过程,从文本到可执行文件
  10. 为什么win10开热点后电脑没有网络?
  11. C# visual studio添加NewtonsoftJSON库
  12. 针对中东石油能源工业控制系统的又一网军诞生
  13. 弹窗php整人,bat整人代码,超级弹窗代码
  14. 【转载】DEDE与DISCUZ整合积分同步[会员表,积分表
  15. python漏洞扫描器爬虫_Python系列之——漏洞平台厂商列表爬虫
  16. 机器学习-GB、GBDT、XGboost、Adaboost
  17. oracle 会话数上不去_(一)UDS诊断服务中的诊断会话控制(DiagnosticSessionControl,0x10)...
  18. Latex脚注加超链接
  19. 交通流量预测-混合注意力时空图卷积-ASTGCN
  20. Matlab + Gurobi入门

热门文章

  1. 广东省地方税务局电子办税服务厅--卡在注册ca证书界面的处理
  2. ucgui 字体生成与字体个性化编辑
  3. 机器学习基石 作业三
  4. HTML中的表格和表单(含有示例代码)
  5. 计算机考研浙江理工和江苏大学,杭州电子科技大和浙江理工大学这两所大学怎么样?哪所好?...
  6. ffplay常用命令
  7. linux离线安装pg数据库
  8. Java入门基础知识点总结(详细篇)
  9. 春天来了,北京周边哪里去~
  10. 你知道数字图像处理的经典Lenna图背后的故事吗