多项式插值

这段时间关注了一个数值分析的课程,是华东师范大学潘建瑜老师的课,看了一遍课件,将内容梳理一下,做个笔记。

什么是插值

已知一个函数 f ( x ) f(x) f(x)在 [ a , b ] [a,b] [a,b]上有定义,且已知此区间有限个数据点: y 0 = f ( x 0 ) , y 1 = f ( x 1 ) , . . . y_0=f(x_0), y_1=f(x_1),... y0​=f(x0​),y1​=f(x1​),...
找到一个函数 p ( x ) p(x) p(x),使得 p ( x ) p(x) p(x)也经过所有数据点,则 p ( x ) p(x) p(x)为 f ( x ) f(x) f(x)的插值函数。

什么是多项式插值

从插值的定义可以得知,一定有相当多类的函数满足“经过有限数据点”这个条件,其中多项式函数就是一大类,使用多项式函数作为 p ( x ) p(x) p(x)的插值方式叫做多项式插值。若有 n + 1 n+1 n+1个数据点,插值多项式的最高次幂不得超过 n n n。

多项式插值唯一性

满足条件的插值多项式只有一个。
证明:

记插值多项式 p ( x ) = c 0 + c 1 x + . . . + c n x n p(x)=c_0+c_1x+...+c_nx^n p(x)=c0​+c1​x+...+cn​xn
记要插值的数据点为 ( x 0 , y 0 ) , ( x 1 , y 1 ) , . . . , ( x n , y n ) (x_0, y_0),(x_1,y_1),...,(x_n,y_n) (x0​,y0​),(x1​,y1​),...,(xn​,yn​)
带入可得n个方程:

{ p ( x 0 ) = c 0 + c 1 x 0 + . . . + c n x 0 n = y 0 p ( x 1 ) = c 0 + c 1 x 1 + . . . + c n x 1 n = y 1 . . . p ( x n ) = c 0 + c 1 x n + . . . + c n x n n = y n \begin{cases} p(x_0)=c_0+c_1x_0+...+c_nx_0^n=y_0& \\ p(x_1)=c_0+c_1x_1+...+c_nx_1^n=y_1& \\...& \\p(x_n)=c_0+c_1x_n+...+c_nx_n^n=y_n \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧​p(x0​)=c0​+c1​x0​+...+cn​x0n​=y0​p(x1​)=c0​+c1​x1​+...+cn​x1n​=y1​...p(xn​)=c0​+c1​xn​+...+cn​xnn​=yn​​​

要证明多项式插值的唯一性,只需要证明系数 c 0 , c 1 , . . . , c n c_0,c_1,...,c_n c0​,c1​,...,cn​的唯一性即可。

将 c 0 , c 1 , . . . , c n c_0,c_1,...,c_n c0​,c1​,...,cn​视为未知数,可知系数矩阵的行列式正好是个范德蒙行列式,所以系数矩阵可逆, c 0 , c 1 , . . . , c n c_0,c_1,...,c_n c0​,c1​,...,cn​有唯一解。

一次多项式插值

两个数据点可以进行一次多项式插值,即线性插值。实际上这就是求两点连线的直线方程,使用两点式求直线方程就可以。

p ( x ) − y 0 = y 1 − y 0 x 1 − x 0 ( x − x 0 ) \begin{aligned}p(x)-y_0 &= \dfrac{y_1-y_0}{x_1-x_0}(x-x_0)\\\end{aligned} p(x)−y0​​=x1​−x0​y1​−y0​​(x−x0​)​

化简可得:

p ( x ) = y 0 x 1 − x x 1 − x 0 + y 1 x − x 0 x 1 − x 0 = y 0 l 0 ( x ) + y 1 l 1 ( x ) \begin{aligned}p(x)&=y_0\dfrac{x_1-x}{x_1-x_0}+y_1\dfrac{x-x_0}{x_1-x_0}\\&=y_0l_0(x)+y_1l_1(x)\end{aligned} p(x)​=y0​x1​−x0​x1​−x​+y1​x1​−x0​x−x0​​=y0​l0​(x)+y1​l1​(x)​

p ( x ) p(x) p(x)可以看作基函数 l ( x ) l(x) l(x)的线性组合。

因此,如何寻找基函数表出插值函数就是不同的多项式插值方法的主要目的。

多项式插值法的分类

课件里分别介绍了以下几种多项式插值方法。分别是:

  • 拉格朗日(Lagrange)插值
  • 牛顿(Newton)插值
  • 厄密(Hermite)插值
  • 分段低次插值
  • 三次样条插值

后几节会介绍这些插值方法的基函数,线性表出方式,已经代码示例。

数值分析——多项式插值相关推荐

  1. 数值分析:插值与拟合

    数值分析:插值与拟合 目录 数值分析:插值与拟合 插值 多项式插值 Lagrange插值 Newton插值 分段多项式插值 分段线性插值 分段三次Hermite插值 三次样条插值 拟合 预备知识 线性 ...

  2. 轨迹规划当中用到的多项式插值和样条曲线

    机器人之路漫漫兮.要想要得到成绩还需要付出许多的努力. 轨迹规划 轨迹规划可以这么分类: 1.笛卡尔空间规划 位置规划:直线插补.圆弧插补.NURBS自由曲线插补 姿态规划:四元数.slerp 2.关 ...

  3. 多项式插值与牛顿差商

    一.定义 那么多项式插值(牛顿差商公式)被形式化描述为: 其中 二.例子 对于三个点的多项式插值问题,我们可以通过以上的定义计算得到牛顿差商公式的各个系数(红色横线的标记)如下: 再详细点: 那么,得 ...

  4. 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)

    文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...

  5. 数值分析-多项式插值方法小结

    数值分析-多项式插值方法小结 前言 插值的应用与唯一性 Lagrange插值法和逐次线性插值 代码实现 逐次线性插值 代码实现 逼近复杂函数 Newton插值法 代码实践 差分与等距节点差分插值 代码 ...

  6. 机器学习数据预处理之缺失值:插值法填充+多项式插值

    机器学习数据预处理之缺失值:插值法填充+多项式插值 garbage in, garbage out. 没有高质量的数据,就没有高质量的数据挖掘结果,数据值缺失是数据分析中经常遇到的问题之一.当缺失比例 ...

  7. c语言构造插值多项式,拉格朗日多项式插值(C语言).docx

    拉格朗日多项式插值(C语言) #include #include #include float lagrange(float *x,float *y,float xx,int n)/*拉¤-格?朗¤¨ ...

  8. matlab 平滑曲线连接_平滑轨迹插值方法之多项式插值(附代码)

    前言 今天我们来聊聊轨迹插值,在机器人的运动规划和控制领域,参考轨迹的生成是一个历史悠久的问题,已经发展出了一系列的方法.今天我们就来聊一聊轨迹插值领域中最常见的轨迹插值方法:多项式插值. 说明:本文 ...

  9. matlab全域基函数,多项式函数插值:全域多项式插值(一)单项式基插值、拉格朗日插值、牛顿插值 [MATLAB]...

    全域多项式插值指的是在整个插值区域内形成一个多项式函数作为插值函数.关于多项式插值的基本知识,见"计算基本理论". 在单项式基插值和牛顿插值形成的表达式中,求该表达式在某一点处的值 ...

最新文章

  1. win10安装程序无法将配置为在此计算机,Win10安装会遇到的问题汇总及解决方法...
  2. R语言ggplot2可视化设置数据点的大小、设置数据点的颜色、设置数据点边缘线条的厚度(point border thickness)实战
  3. 【Java】 Base64原理及简单应用
  4. 指定python 版本安装相关插件
  5. 法证先锋3中的Apps软件
  6. oracle函数应用,oracle函数应用
  7. 防范非法用户入侵系统秘籍
  8. 【eNSP 华为模拟器】了解一下交换机原理和基础命令
  9. SCI 投稿Cover letter模板大全
  10. linux正则表达式大全,正则表达式,正则表达式语法大全
  11. java 线程优先级_Java线程优先级
  12. excel 2007 冻结单元格
  13. OpengL消除锯齿
  14. flex布局练习,仿手机淘宝首页
  15. WORD里的拼页、书籍折页、反向书籍折页功能(一)
  16. android源码结构分析
  17. 公众号怎么做?要怎么做才赚钱?
  18. mysql error unpacking_error: unpacking of archive failed on file错误的解决
  19. 南宁市第二十六中学:教研路漫漫,花香伴我行
  20. php nts安装,PHP语言学习之yum安装方式的php,切换NTS为ZTS版本

热门文章

  1. 集群Slurm使用教程
  2. java实现world文档转pdf
  3. html5 车牌识别,车牌识别系统
  4. matlab hough算法车牌识别,一种基于数学形态学和Hough变换的车牌图像检测及定位算法-汽车电子-与非网...
  5. JAVA算法-排序算法
  6. 算法时间复杂度计算方式
  7. 解决Python下载包问题(更)
  8. IDEA配置代码格式化模板
  9. opencv眼动识别(1_眼睛分割)
  10. 5000字英文计算机相关,自我介绍模拟器游戏