Matlab的插值与拟合

文章目录

  • 前言
    • 在命令行窗口中完成插值与拟合
  • 一、插值与拟合
  • 二、使用步骤
    • 1.插值
    • 2.拟合


前言

在命令行窗口中完成插值与拟合

一、插值与拟合

插值:在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。

拟合:拟合是指已知某函数的若干离散函数值,通过调整该函数中若干待定系数,使得该函数与已知点集的方差最小。

二、使用步骤

1.插值

1.1对某个点插值

一个简单的例子
这里有一组速度随时间变化的数据:

x(时间) 0 3 5 7 9 11 12 13 14 15
y(速度) 0 1.2 1.7 2 2.1 2 1.8 1.2 1 1.6

如果我们想知道当时间为8.5s时,速度是多少?
先导入数据到matlab,我这里直接在命令行窗口中创建一个x、y的向量,把数据直接复制进去。

>> x=[]

x =

     []

>> y=[]

y =

     []

如图,x、y向量被创建。
Matlab的插值与拟合_第1张图片

分别将时间数据和速度数据复制到x、y中。
把8.5s对应的数据求出来:

>> interp1(x,y,8.5,'spline')

ans =

    2.0959

对于第四个参数,对应的是插值方法,插值的方法有
Matlab的插值与拟合_第2张图片
1.2对一个范围插值
即对向量中的每一项进行插值,对与多个缺失数据可进行补全。如相对x中0~15这个区间我们取一万个点。

>> x1=linspace(1,15,10000);
>> y1=interp1(x,y,x1,'spline');
>> plot(x,y)
>> hold on
>> plot(x1,y1)

在y中的数据已变成10000个。

2.拟合

在命令行窗口中输入:>> cftool
可得到曲线拟合工具箱。
Matlab的插值与拟合_第3张图片
选择输入的数据:
Matlab的插值与拟合_第4张图片
选择拟合的类型。这里选择三次多项式拟合:
Matlab的插值与拟合_第5张图片
在窗口的左边可以看到拟合的表达式。
当拟合完成后,可以将数据邮件保存到工作区。
在这里插入图片描述
工作区会生成一个模型文件。
在这里插入图片描述
将其直接拖拽到命令行窗口

>> fittedmodel(8.5)

ans =

    1.9885

即可得到8.5s时的速度。

参考:https://www.bilibili.com/video/BV1uR4y1p73L?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click


你可能感兴趣的:(MATLAB,matlab,矩阵)