19.matlab数据分析插值(matlab程序)

1. 简述

数据插值的计算机制

数据插值是一种函数逼近的方法。

一维插值

Y1=interp1(X,Y,X1,method)

二维插值

interp2():二维插值函数。

调用格式:

Z1=interp2(X,Y,Z,X1,Y1,method)

其中,X、Y是两个向量,表示两个参数的采样点, Z是采样点对应的函数值。X1、 Y1是两个标量或向量,表示要插值的点。

数据插值的实现方法

method用于指定插值方法,常用的取值有以下四种:

linear: 线性插值,默认方法。将与插值点靠近的两个数据点用直线 连接,然后在直线上选取对应插值点的数据。

nearest :最近点插值。选择最近样本点的值作为插值数据。

pchip:分段3次埃尔米特插值。采用分段三次多项式,除满足插值条件,还需满足在若干节点处相邻段插值函数的一-阶导数相等,使得曲线光滑的同时,还具有保形性。

spline: 3次样条插值。每个分段内构造一个三次多项式, 使其插值函数除满足插值条件外,还要求在各节点处具有连续的一阶和二阶导数。

2. 代码

%% 学习目标:插值

%% 一维多项式插值

clc;

clear all;

x=0:0.2:2;

y=(x.^2-3*x+5).*exp(-3*x).*sin(x);

xi=0:0.03:2; %要插值的数据

yi_nearest=interp1(x,y,xi,'nearest'); %临近点插值

yi_linear=interp1(x,y,xi); %默认为线性插值

yi_spine=interp1(x,y,xi,'spine'); %三次样条插值

yi_pchip=interp1(x,y,xi,'pchip'); %分段三次Hermite插值

yi_v5cubic=interp1(x,y,xi,'v5cubic'); %MATLAB5中三次多项式插值

figure; %画图显示

hold on;

subplot(231);

plot(x,y,'ro');

title('已知数据点');

subplot(232);

plot(x,y,'ro',xi,yi_nearest,'b-');

title('临近点插值');

subplot(233);

plot(x,y,'ro',xi,yi_linear,'b-');

title('线性插值');

subplot(234);

plot(x,y,'ro',xi,yi_spine,'b-');

title('三次样条插值');

subplot(235);

plot(x,y,'ro',xi,yi_pchip,'b-');

title('分段三次Hermite插值');

subplot(236);

plot(x,y,'ro',xi,yi_v5cubic,'b-');

title('MATLAB5中三次多项式插值');

%% 采用一维快速傅立叶插值

clc;

clear all;

x=0:1.1:8;

y=sin(x);

n=2*length(x); %增采样1倍

yi=interpft(y,n);%采用一维快速傅立叶插值

xi=0:0.55:8.3;%要插值的数据

figure;%画图显示

hold on;

plot(x,y,'ro',xi,yi,'b-');

legend('原始数据','插值后结果');

%% 三次样条插值

clc;

clear all;

x=0:10;%原始数据

y=sin(x);

xi=0:.25:10;%插值数据

yi=spline(x,y,xi);%三次样条插值

pp=spline(x,y);%产生插值函数

y1=ppval(pp,xi); %结果相同y1=yi

y2=interp1(x,y,xi,'spline'); %结果相同y2=yi

figure;%画图显示

plot(x,y,'o',xi,yi);

legend('原始数据','三次样条插值');

3. 运行结果

相关推荐
似水এ᭄往昔几秒前
【C++】--stack和queue
开发语言·c++
AKAMAI7 分钟前
AI 边缘计算:决胜未来
人工智能·云计算·边缘计算
仰望—星空11 分钟前
MiniEngine学习笔记 : CommandListManager
c++·windows·笔记·学习·cg·direct3d
flex888813 分钟前
输入一个故事主题,使用大语言模型生成故事视频【视频中包含大模型生成的图片、故事内容,以及音频和字幕信息】
人工智能·语言模型·自然语言处理
csbysj202020 分钟前
R 绘图 - 散点图
开发语言
TTGGGFF21 分钟前
人工智能:大语言模型或为死胡同?拆解AI发展的底层逻辑、争议与未来方向
大数据·人工智能·语言模型
张艾拉 Fun AI Everyday23 分钟前
从 ChatGPT 到 OpenEvidence:AI 医疗的正确打开方式
人工智能·chatgpt
angleoldhen34 分钟前
简单的智能数据分析程序
python·信息可视化·数据分析
电子云与长程纠缠36 分钟前
Blender入门学习09 - 制作动画
学习·blender
电子云与长程纠缠38 分钟前
Blender入门学习10 - 曲线绘制
学习·blender