【数值分析/计算方法】插值法及其余项MATLAB仿真实验
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仿真实验相关推荐
- matlab电磁仿真案例,电磁场matlab仿真实验.doc
电磁场matlab仿真实验.doc 电磁场 matlab 仿真实验一实验一例 7-5试分析一对等量异号的电荷周围空间上的电位和电场分布情况.分析将等量异号的电荷的几何中心放置于坐标原点位置,则它们在空 ...
- 微分环节的matlab仿真,典型环节的MATLAB仿真 实验二.doc
典型环节的MATLAB仿真 实验二 实验六① 典型环节的MATLAB仿真 实验内容 1.按下列各典型环节的传递函数,建立相应的SIMULINK仿真模型,观察并记录其单位阶跃响应波形. ① 比例环节 S ...
- 【基于参数估计的ISAR定标MATLAB仿真实验】
本章内容简介:分析了CPF(三次相位函数法),CICPF(相干三次相位函数法)和ICPF(积分三次相位函数法)三种LFM信号调频率估计方法,分析了基于LOG算子(高斯拉普拉斯)的散射点提取方法,进行仿 ...
- 【散射点模型以及雅克42飞机实测数据RD算法ISAR成像的MATLAB仿真实验】
基于散射点模型进行仿真实验分析,探讨距离压缩效果和RD成像算法的有效性. 如图2-6 a)所示为模拟空间站目标的散射点模型,该模型由模拟的空间站四块大太阳能板以及实验核心舱组成.仿真无噪声环境下的实验 ...
- matlab仿真报告,电路Matlab仿真实验精选报告.docx
电路 Matlab 仿真实验报告 武汉大学电气工程学院仿真实验报告 武汉大学电气工程学院 MATLAB 电路仿真实验报告 姓名: 班级: 学号: 2015 级大二上仿真报告 武汉大学电气工程学院仿真实 ...
- 直流电机双闭环调速Matlab仿真实验
直流电机双闭环调速Matlab仿真实验 实验目的 1.双闭环直流调速系统组成及工作原理 2.电机参数及仿真设置 3.仿真结果 3.1.转速电流双闭环仿真(给定转速1260RPM) 3.2.电流反馈断开 ...
- 感应电动机的matlab仿真实验报告,异步电机矢量控制MATLAB仿真 实验 (2).doc
学 号: 课 程 设 计 题 目异步电机矢量控制MATLAB仿真实验 (矢量控制部分)学 院自动化学院专 业自动化专业班 级姓 名指导教师曹雪莲 2015年1月7日目录 摘要1 1异步电动机矢量控制原 ...
- 《电磁场与电磁波》MATLAB 仿真实验
<电磁场与电磁波>MATLAB 仿真实验 一沿x方向极化的线极化波在海水中传播,取+z方向为传播方向.已知海水的媒质参数 给定频率f变化范围为1MHz~2GHz: 要求:利用MATLAB仿 ...
- 通信原理MATLAB仿真实验50例
通信原理MATLAB仿真实验50例 一.文章出处 1.1.本文转自 matchfilter的博客 原文链接:http://blog.sina.com.cn/s/articlelist_15036850 ...
最新文章
- ftp可以传输什么类型文件_使用FTP文件传输典型案例配置
- Oracle 用户管理
- C++如何使用puff()的示例
- 免师计算机与学前教育,2014届河南免师生源分布.doc
- Java / Cloud:如何快速创建支持Kubernetes的REST微服务
- cvc降噪和主动降噪_1MORE 主动降噪圈铁耳机图集
- 2019年技术盘点微服务篇(一) | 程序员硬核评测
- rabbit和mysql事务_分布式事务原理及SpringBoot整合RabbitMQ实现可靠事件,TCC事务模型及接口幂等性...
- 授人以渔:stm32资料查询技巧
- [恢]hdu 2062
- 学习c++ 必知三大特性
- ubuntu18.04截图快捷键
- Cadence之双击(DSN/brd)文件打开变新建文件的解决方法
- 15 个常见的 Node.js 面试问题及答案
- 软考一些可能有用的链接
- 一个程序员的平凡日常
- tomcat官方下载(历史版本,旧版本)
- ubuntu控制台访问u盘_ubuntu中使用终端查看U盘里的内容
- sysbios挂钩函数使用_使用动作挂钩自定义WordPress主题
- 笔记dng图片在premiere和ae中不一致