今天就的学习内容是数据拟合。
数据拟合也称为曲线拟合,是一种把现有数据透过数学方法来代入一条数式的表示方式。科学和工程问题可以通过诸如采样、实验等方法获得若干离散的数据,根据这些数据,我们往往希望得到一个连续的函数(也就是曲线)或者更加密集的离散方程与已知数据相吻合,这过程就叫做数据拟合。(抄的官方解释◕✔◕)
常用的拟合方式是多项式拟合,在MATLAB中使用polyfit函数即可建立N次多项式,代码实现如下:
p = polyfit(x,y,N)
其中x,y分别代表的是传入样本点的横纵坐标数组,N代表构造多项式的次数,p是多项式的系数数组。
多项式值计算函数为:
z = polyval(p,x)
我们通过调用polyfit()函数,并用样本点来构造N次多项式p,然后将原有的变量x带入构造的多项式p中得到最后拟合的值z。通俗的来讲就是根据原有点,来构造新的函数,然后再讲原有变量带入新函数中得到新的值。通过以下代码来具体深入:
clc;clear;close all;
x=[0,3,5,7,9,11,12,13,14,15];
y=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6]; %定义样本点,x和y个数相等
p=polyfit(x,y,4); %构造四次多项式
z=polyval(p,x); %将变量带入多项式中
plot(x,y,'ro',x,z,'b-')
legend('原函数点','拟合曲线','location','nw')
效果图:
如果想学习更多的数据拟合方法可以看一看这篇文章 。
以上就是今天的学习内容了。
参考文章:数据拟合(Data Fitting)算法 - 离心的文章 - 知乎
https://zhuanlan.zhihu.com/p/546437540