1、Lagrange插值法

方法:对给定的n个插值节点x1,x2,⋯,xn以及它们对应的函数值y1,y2,⋯,yn,利用构造的n-1次Lagrange插值多项式,可以通过下面式子求得插值区间内任意x的函数值。

Matlab实现:

function y = lagrange(x0,y0,x)
n=length(x0); %记录插值节点个数
m=length(x); %记录插值点个数
for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if(j~=k) p=p*(z-x0(j))/(x0(k)-x0(j)); %连乘end end s=s+p*y0(k); %求和end y(i)=s;
end

2、Newton插值法

方法:通过选取特殊的基函数来实现

根据插值条件和差商定义,从而可以得到满足插值条件的n项插值多项式

Matlab实现:

function [A,y]= Newton(x0,y0,x)
%   Newton插值函数
%   x0为已知数据点的x坐标
%   y0为已知数据点的y坐标
%   x为插值点的x坐标
%   函数返回A差商表
%   y为各插值点函数值
n=length(x0); m=length(x);
for t=1:mz=x(t); A=zeros(n,n);A(:,1)=y0';s=0.0; y=0.0; for  j=2:nfor i=j:nA(i,j)=(A(i,j-1)- A(i-1,j-1))/(x0(i)-x0(i-j+1));endendfor k=1:np=1.0;for l=1:k-1p=p*(z-x0(l));ends=s+A(k,k)*p;        endss(t)=s;
endy=ss;A=[x0',A];
end

3、Hermite插值法

方法:在实际问题中,不但要求在节点上函数值相等,而且往往会要求导数值也相等,即:

已知n个插值点x1,x2,⋯,xn及对应的函数值y1,y2,⋯,yn和一阶导数值y1′,y2′,⋯,yn′。则可以通过下面式子求得插值区间内任意x的函数值y

Matlab实现:

function [y,Rn]=Hermite_Re(x0,x)%这里只讨论n个插值节点及其对应的函数值和一阶导数都存在,
%则每个插值节点都是函数的"二重节点"syms t;
f=log(t);
y0=subs(f,t,x0);y1=subs(diff(f,t),t,x0);n=length(x0);
m=length(x);
for k=1:mp=0.0;for i=1:nh=1.0;a=0.0;w=1.0;for j=1:nw=w*(x(k)-x0(j));if (j~=i)h=h*((x(k)-x0(j))/(x0(i)-x0(j)));a=a+1/(x0(i)-x0(j));endendp=p+h*((x0(i)-x(k))*(2*a*y0(i)-y1(i))+y0(i));endy(k)=eval(p);Rn(k)=diff(f,t,(2*n))/factorial(2*n)*w^2;
end
end

4、分段低次插值

方法:通过插值点用折线或者低次的曲线连接起来逼近原曲线,规避Runge现象,可以通过调用Matlab内部函数interp1函数实现

一维数据插值指令,该指令可以对插值区间内的数据计算内插值,找出一元函数在插值点的数值

调用格式:vq=interp1(x,v,xq,'method')vq = interp1(x,v,xq,method,extrapolation)

其中x,v为已知的插值节点及其对应的函数值,xq为给定的插值点,vq为在插值点xq处的插值结果,extrapolation用于指定外插策略,来计算落在 x 域范围外的点。

‘method’表示采用的插值方法,Matlab内部提供了几种插值方法,常见的有:

  • ‘linear’表示线性插值

  • ‘nearest’表示邻近插值

  • 'pchip'表示三次Hermite插值

  • …………

当method缺省时,默认表示线性插值。

示例

x=0:0.12:1;
y=(x.^2-3*x+5).*exp(-5*x).*sin(x);
x1=0:0.05:1;
y0=(x1.^2-3*x1+5).*exp(-5*x1).*sin(x1);
y1=interp1(x,y,x1,'linear');%线性插值
y2=interp1(x,y,x1,'nearest');%最近点插值
y3=interp1(x,y,x1,'pchip');%三次Hermite插值
plot(x1,[y1',y2',y3'],x,y,'o',x1,y0);
legend('线性插值','邻近插值','三次Hermite插值','插值节点','原始函数图像')

5、样条插值

方法:插值出来的函数不仅要连续,还要光滑。

在Matlab中,可以通过调用内部函数spline来实现三次样条数据插值

调用格式:s = spline(x,y,xq)

返回与 xq 中的插值点对应的插值 s 的向量。s 的值由插值节点 x 及其对应 y 的三次样条插值确定。

示例

x=0:0.12:1;
y=(x.^2-3*x+5).*exp(-5*x).*sin(x);
xq=0:0.05:1;
s=spline(x,y,xq);
plot(x,y,'o',xq,s);

将三次样条插值与分段插值进行对比,可以看出,三次样条插值曲线更加贴近原始函数图形,插值效果最好。

下一步,可以在这些已有程序的基础上,根据各种插值方法的余项估计公式,编写程序,以分析各类插值法的误差估计。有兴趣的小伙伴可以持续关注本频道。如果你觉得写的不错的话,还请点赞转发收藏。

【数值分析/计算方法】插值法及其余项MATLAB仿真实验相关推荐

  1. matlab电磁仿真案例,电磁场matlab仿真实验.doc

    电磁场matlab仿真实验.doc 电磁场 matlab 仿真实验一实验一例 7-5试分析一对等量异号的电荷周围空间上的电位和电场分布情况.分析将等量异号的电荷的几何中心放置于坐标原点位置,则它们在空 ...

  2. 微分环节的matlab仿真,典型环节的MATLAB仿真 实验二.doc

    典型环节的MATLAB仿真 实验二 实验六① 典型环节的MATLAB仿真 实验内容 1.按下列各典型环节的传递函数,建立相应的SIMULINK仿真模型,观察并记录其单位阶跃响应波形. ① 比例环节 S ...

  3. 【基于参数估计的ISAR定标MATLAB仿真实验】

    本章内容简介:分析了CPF(三次相位函数法),CICPF(相干三次相位函数法)和ICPF(积分三次相位函数法)三种LFM信号调频率估计方法,分析了基于LOG算子(高斯拉普拉斯)的散射点提取方法,进行仿 ...

  4. 【散射点模型以及雅克42飞机实测数据RD算法ISAR成像的MATLAB仿真实验】

    基于散射点模型进行仿真实验分析,探讨距离压缩效果和RD成像算法的有效性. 如图2-6 a)所示为模拟空间站目标的散射点模型,该模型由模拟的空间站四块大太阳能板以及实验核心舱组成.仿真无噪声环境下的实验 ...

  5. matlab仿真报告,电路Matlab仿真实验精选报告.docx

    电路 Matlab 仿真实验报告 武汉大学电气工程学院仿真实验报告 武汉大学电气工程学院 MATLAB 电路仿真实验报告 姓名: 班级: 学号: 2015 级大二上仿真报告 武汉大学电气工程学院仿真实 ...

  6. 直流电机双闭环调速Matlab仿真实验

    直流电机双闭环调速Matlab仿真实验 实验目的 1.双闭环直流调速系统组成及工作原理 2.电机参数及仿真设置 3.仿真结果 3.1.转速电流双闭环仿真(给定转速1260RPM) 3.2.电流反馈断开 ...

  7. 感应电动机的matlab仿真实验报告,异步电机矢量控制MATLAB仿真 实验 (2).doc

    学 号: 课 程 设 计 题 目异步电机矢量控制MATLAB仿真实验 (矢量控制部分)学 院自动化学院专 业自动化专业班 级姓 名指导教师曹雪莲 2015年1月7日目录 摘要1 1异步电动机矢量控制原 ...

  8. 《电磁场与电磁波》MATLAB 仿真实验

    <电磁场与电磁波>MATLAB 仿真实验 一沿x方向极化的线极化波在海水中传播,取+z方向为传播方向.已知海水的媒质参数 给定频率f变化范围为1MHz~2GHz: 要求:利用MATLAB仿 ...

  9. 通信原理MATLAB仿真实验50例

    通信原理MATLAB仿真实验50例 一.文章出处 1.1.本文转自 matchfilter的博客 原文链接:http://blog.sina.com.cn/s/articlelist_15036850 ...

最新文章

  1. ftp可以传输什么类型文件_使用FTP文件传输典型案例配置
  2. Oracle 用户管理
  3. C++如何使用puff()的示例
  4. 免师计算机与学前教育,2014届河南免师生源分布.doc
  5. Java / Cloud:如何快速创建支持Kubernetes的REST微服务
  6. cvc降噪和主动降噪_1MORE 主动降噪圈铁耳机图集
  7. 2019年技术盘点微服务篇(一) | 程序员硬核评测
  8. rabbit和mysql事务_分布式事务原理及SpringBoot整合RabbitMQ实现可靠事件,TCC事务模型及接口幂等性...
  9. 授人以渔:stm32资料查询技巧
  10. [恢]hdu 2062
  11. 学习c++ 必知三大特性
  12. ubuntu18.04截图快捷键
  13. Cadence之双击(DSN/brd)文件打开变新建文件的解决方法
  14. 15 个常见的 Node.js 面试问题及答案
  15. 软考一些可能有用的链接
  16. 一个程序员的平凡日常
  17. tomcat官方下载(历史版本,旧版本)
  18. ubuntu控制台访问u盘_ubuntu中使用终端查看U盘里的内容
  19. sysbios挂钩函数使用_使用动作挂钩自定义WordPress主题
  20. 笔记dng图片在premiere和ae中不一致

热门文章

  1. 人脸活体/活性检测方法综述
  2. [TJOI2013]黄金矿工
  3. win 10 pip 安装都超时_清华Anaconda 镜像恢复及一键安装气象常用的Python库
  4. c/c++ register函数
  5. 移动互联网Pinterest战役打响 鲜淘铺推摇一摇功能
  6. 梦熊联盟1月普及组月赛游记
  7. 第十五届吉林省大学生程序设计竞赛
  8. 关于html5毕业论文设计任务书,毕业论文设计任务书.doc
  9. 云计算未来面临的挑战,主要包含哪几方面?
  10. 文件对比工具(做软件版本)