数值方法:多项式插值


概述–插值方法

一维的数值插值方法,包括但不仅包括:

  • 线性插值
  • Lagrange插值
  • Newton插值
  • Hermite插值
  • 三次样条插值
  • sinc插值
  • 小波插值

多项式插值

首先,多项式插值是基本的方法,除了上面的Lagrange方法与Newton方法,还有Aitken方法与Neville方法,由于多项式插值定理

定理1 给定n+1n+1个相异节点 x0,x1,⋯,xn∈[a,b]x_0,x_1,\cdots,x_n\in [a,b],以及n+1n+1个函数值f(x0),f(x1),⋯,f(xn)f(x_0),f(x_1),\cdots,f(x_n),那么存在唯一的nn次多项式p∈Pnp\in{\mathscr P_n}满足插值条件

p(xi)=f(xi),i=0,1,⋯,n

p(x_i)=f(x_i), i=0,1,\cdots,n

由此可见,不同的多项式插值方法对于同样的插值问题的插值结果是一致的。

Hermite插值

多项式插值仅要求在插值节点x0,x1,...,xn∈[a,b]x_0,x_1,...,x_n\in [a,b]处的插值多项式与被插值函数相等。Hermite插值也是多项式插值,不过对于每个节点,不仅要求函数值相等,还要求节点处的一阶导数,甚至高阶导数相等。

定理2 设f∈C1[a,b]f\in C^1[a,b]给定n+1n+1个相异节点 x0,x1,⋯,xn∈[a,b]x_0,x_1,\cdots,x_n\in [a,b],那么存在唯一的多项式H2n+1∈P2n+1H_{2n+1}\in{\mathscr P_{2n+1}}满足插值条件

{H2n+1(xj)=f(xj),H′2n+1(xj)=f′(xj),j=0,1,⋯,n

\begin{cases} H_{2n+1}(x_j)=f(x_j), \\ H'_{2n+1}(x_j)=f'(x_j),&j=0,1,\cdots,n \end{cases}

三次样条插值

高次多项式插值时由于出现的Runge现象不一定能达到高精度,因此分段低次的多项式插值是一个有效解决方法。

定义 对于区间[a,b][a,b]的一个剖分Δ:a=x0,x1,⋯,xn=b\Delta:a=x_0,x_1,\cdots,x_n=b, 如果SS为满足以下条件的函数: (1)S∈C2[a,b]S\in C^2[a,b],(2)在每个子区间[xj,xj+1][x_j,x_{j+1}]上是三次多项式,则称SS是关于剖分Δ\Delta的一个三次样条函数

sinc插值

多项式插值是时域的插值方法,sinc函数对应的频域函数是理想矩形窗,是一种频域的插值方法,相关应用设计的信号处理、傅里叶变换方面的知识。理论上,经过周期采样的信号在恢复时使用sinc函数时效果更好。

小波插值

据说是比较前沿的领域,目前信号处理技术多是以三角函数为基函数对目标函数进行分析,相关的变换是傅里叶变化,分析方法是频域分析方法。小波理论使用的是一组小波正交基,以此对目标函数进行分析。
(目前对小波理论并不了解,有待进一步研究。)


多项式插值方法

Lagrange方法

function [f]=interpolationLangrange(xx,ff,x)f=0;
nx=length(xx)-1;for i=0:nxli=1;for j=0:nxif(j~=i)li = li*(x-xx(j+1))/(xx(i+1)-xx(j+1));end        endf= f+ ff(i+1)*li;
endend

Newton方法

function [f,nn]=interpolationNewton(xx,ff,x)nx=length(xx)-1;
fnew=ff;
for j=1:nx for i=j:nx        fnew(i+1)=(ff(i+1)-ff(i))/(xx(i+1)-xx(i+1-j));endff(j+1:nx+1)=fnew(j+1:nx+1);
end
f=ff(1);
for j=1:nx    xt=1;for i=1:jxt=xt*(x-xx(i));endf=f + ff(j+1)*xt;
end
nn=ff;end

算例

使用上述Lagrange与Newton方法对函数11+x2\frac{1}{1+x^2}在区间[−5,5][-5,5]上进行10阶插值。
红线为函数值,绿线为Lagrange方法插值结果,蓝点为Newton方法插值结果。

数值方法:多项式插值相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 多项式插值中的一些定理证明

    多项式插值中的一些定理证明 期末复习中整理的一些证明 多项式插值定理 多项式差值误差定理 Hermite插值误差估计定理 Hermite插值存在唯一性定理 多项式插值定理 若x0,x1,⋯,xnx_0 ...

  7. MATLAB之多项式插值

    MATLAB之多项式插值 一.算法原理 1.插值问题定义 当精确函数 y = f(x) 非常复杂或未知时,在区间[a,b]上一系列节点x0,x1,x2,......xn处测得函数值f(x0).f(x1 ...

  8. 数值计算之 插值法(1)多项式插值——拉格朗日插值法

    数值计算之 插值法(1)多项式插值--拉格朗日插值法 前言 什么是插值 多项式插值法 拉格朗日插值法 总结 前言 移动机器人有一个非常重要的任务,轨迹规划.轨迹规划需要满足运动学原理,即在路径规划给出 ...

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

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

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

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

最新文章

  1. PHP的is_numeric is_int is_integer ctype_digit
  2. 物联网智能网关应用系统的一般设计方法
  3. 问题记录 | SpringMVC整合jackson版本问题
  4. 笨办法学 Python · 续 练习 14:双链表
  5. FreeBSD下nginx并支持php配置详解
  6. 4月12日云栖精选夜读:阿里云黄海宇:窄带高清2.0——让直播更惊艳的魔术
  7. 人力资源管理系统课程设计
  8. mt7620n华硕固件下载_无法安装Windows10,这台电脑磁盘布局不受UEFI固件支持解决方法...
  9. 微信QQ在线客服基本功能介绍
  10. 旁注攻击和CDN,绕过cdn找真实IP
  11. 订单流失总金额怎么算_微信新规下增长乏力,裂变到底该怎么做?
  12. Log4j2日志记录框架的使用教程与简单实例
  13. tkinter模块 视窗设计相关操作
  14. CSS 条纹背景秘探
  15. docker出现request cancele le waiting for connection Client. Timeout exceeded while awaiting headers问题
  16. Linux主流桌面环境简单介绍
  17. 1.1计算机网络的应用
  18. 13,excel vba 代码的简化和重复使用_初识对像
  19. GCC源码分析(十四) — rtx结构体,指令与栈分配
  20. 浏览器背景知识(dlmu2001)

热门文章

  1. 初学者如何运用VS打代码?
  2. 基于RF框架的接口测试之代码分层管理
  3. java batik 字体文件_java使用batik转换svg文件-Go语言中文社区
  4. FPGA学习——Vivado2017.4安装教程
  5. 微信公众号自动发布文章
  6. MacBook M1安装Git与Git可视化工具---kalrry
  7. Pycharm下了汉化包之后切换回英文界面
  8. python调用hownet API计算两个词的相似度
  9. 2021 王道考研 数据结构+习题讲解
  10. 一、Django初级