matlab常用函数系列三之插值、拟合法

1、interp1()

插值法

        插值法又称“内插法”,是利用函数f (x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f (x)的近似值,这种方法称为插值法。如果这特定函数是多项式,就称它为插值多项式。

线性插值法

        线性插值法是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的方法。

        假设我们已知坐标(x0,y0)与(x1,y1),要得到[x0,x1]区间内某一位置x在直线上的值。根据图中所示,我们得到两点式直线方程:


        假设方程两边的值为α,那么这个值就是插值系数—从x0到x的距离与从x0到x1距离的比值。由于x值已知,所以可以从公式得到α的值:

        同样:


        这样,在代数上就可以表示成为:

                                                                  y = (1 − α)y0 + αy1

        或者,

                                                                   y = y0 + α(y1 − y0)

        这样通过α就可以直接得到 y。实际上,即使x不在x0到x1之间并且α也不是介于0到1之间,这个公式也是成立的。在这种情况下,这种方法叫作线性外插—参见 外插值。

已知y求x的过程与以上过程相同,只是x与y要进行交换。

MATLAB中的使用

%{
    MATLAB中的插值函数为interp1,其调用格式为:  yi= interp1(x,y,xi,'method')           
    其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, 
    'method'表示采用的插值方法,MATLAB提供的插值方法有几种: 
        'nearest'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'pchip'立方插值.缺省时表示线性插值
    注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。
%}
x = 0:2*pi;  
y = sin(x);  
xx = 0:0.5:2*pi;  

% interp1对sin函数进行分段线性插值,调用interp1的时候,默认的是分段线性插值  
y1 = interp1(x,y,xx,'linear');  
subplot(2,2,1);
plot(x,y,'o',xx,y1,'r')  
title('分段线性插值')  
  
% 临近插值  
y2 = interp1(x,y,xx,'nearest');  
subplot(2,2,2);
plot(x,y,'o',xx,y2,'r');  
title('临近插值')  
  
%球面线性插值  
y3 = interp1(x,y,xx,'spline');  
subplot(2,2,3);
plot(x,y,'o',xx,y3,'r')  
title('球面插值')  
  
%三次多项式插值法  
y4 = interp1(x,y,xx,'pchip');  
subplot(2,2,4);
plot(x,y,'o',xx,y4,'r');  
title('三次多项式插值')  

运行结果:

参考链接:MATLAB插值函数interp1

2、polyfit() 线性最小二乘拟合

函数命令为:a=polyfit(x,y,m)    % x,y为对应的自变量,m为需要拟合的最高次幂

                       y=polyval(a,x);      %根据拟合的函数得出x对应的因变量的值

函数表达形式为:f(x)=a1*x^m+...+am*x+a_m+1。

程序示例:

当前有数据集

x = 0 : 1 : 21;
y = [3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 92 76.5 123.2 131.7 150.7 179.3 204 226.5 251.4 281.4];

 若想找出一条多项式曲线去描述此数据集,则可使用polyfit()函数与polyval():

a = polyfit(x, y, 2);
z = polyval(a, x);

作图查看拟合结果:

scatter(x, y);
hold on;
plot(x, z);

得到图像:

参考:polyfit多项式曲线拟合

3、

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/71930196 【完整课程列表】 PPT教程\完整版 中南大学 MATLAB与科学计算教程 01-绪论(共46页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 02-MATLAB基础知识_数值计算 符号计算(共170页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 03-MATLAB基础知识_图形设计 程序设计(共135页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 04-插值(共81页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 05-函数逼近与拟合(共99页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 06-数值积分与微分(共116页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 07-常微分方程数值解(共68页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 08-非线性方程求根(共79页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 09-解线性方程组的直接解(共59页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 10-解线性方程组的迭代(共41页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 11-simulink和偏微分 特征值概率统计最优化问题(共48页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 11-概率统计函数问题(共118页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 12-simulink和偏微分pdetool(共65页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 12-实例和讲解(共44页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 matlab期中复习(共143页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 总复习(共277页).ppt 实验\Data.txt 实验\MATLAB程序设计实践2015.pdf 实验\实验1-基础知识.ppt 实验\实验2-数值处理.ppt 实验\实验3-模型求解.ppt 考试\matlab期末考试样题 2015.doc 考试\Matlab与科学计算样题.doc 考试\操作题集.doc 考试\期中考试样题.doc 考试\作业题.docx matlab与科学计算(2nd).pdf 数值分析(李庆扬、王能超、易大义)(超清晰版).pdf
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/71930196 【完整课程列表】 PPT教程\完整版 中南大学 MATLAB与科学计算教程 01-绪论(共46页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 02-MATLAB基础知识_数值计算 符号计算(共170页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 03-MATLAB基础知识_图形设计 程序设计(共135页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 04-插值(共81页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 05-函数逼近与拟合(共99页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 06-数值积分与微分(共116页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 07-常微分方程数值解(共68页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 08-非线性方程求根(共79页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 09-解线性方程组的直接解(共59页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 10-解线性方程组的迭代(共41页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 11-simulink和偏微分 特征值概率统计最优化问题(共48页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 11-概率统计函数问题(共118页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 12-simulink和偏微分pdetool(共65页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 12-实例和讲解(共44页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 matlab期中复习(共143页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 总复习(共277页).ppt 实验\Data.txt 实验\MATLAB程序设计实践2015.pdf 实验\实验1-基础知识.ppt 实验\实验2-数值处理.ppt 实验\实验3-模型求解.ppt 考试\matlab期末考试样题 2015.doc 考试\Matlab与科学计算样题.doc 考试\操作题集.doc 考试\期中考试样题.doc 考试\作业题.docx matlab与科学计算(2nd).pdf 数值分析(李庆扬、王能超、易大义)(超清晰版).pdf
MATLAB中有几种插值函数可用于处理维数据的插值问题。以下是其中几个常用函数: 1. interp3函数:interp3函数可以用于维数据的插值。它可以根据给定的输入数据和插值,在维空间中对数据进行插值。interp3函数的语如下: ``` Vq = interp3(X, Y, Z, V, Xq, Yq, Zq, method) ``` 其中,X、Y、Z是原始数据点的坐标,V是对应的数值,Xq、Yq、Zq是要进行插值的点的坐标,method是插值,可以是'linear'(线性插值)或'cubic'(次样条插值)。 2. griddedInterpolant函数:griddedInterpolant函数可以创建一个插值器对象,用于在维空间中进行插值。它可以根据给定的输入数据和插值,生成一个可以重复使用的插值器。griddedInterpolant函数的语如下: ``` F = griddedInterpolant(X, Y, Z, V, method) ``` 其中,X、Y、Z是原始数据点的坐标,V是对应的数值,method是插值,可以是'linear'(线性插值)或'cubic'(次样条插值)。然后可以使用生成的插值器对象F进行插值操作。 3. scatteredInterpolant函数:scatteredInterpolant函数可以用于不规则数据点的插值。它可以根据给定的输入数据和插值,在维空间中对不规则数据进行插值。scatteredInterpolant函数的语如下: ``` F = scatteredInterpolant(X, Y, Z, V, method) ``` 其中,X、Y、Z是不规则数据点的坐标,V是对应的数值,method是插值,可以是'linear'(线性插值)或'natural'(自然邻近插值)。然后可以使用生成的插值器对象F进行插值操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值