matlab曲线拟合 函数 用法以及例子(polyfit)

您所在的位置:网站首页 matlab筛选函数 matlab曲线拟合 函数 用法以及例子(polyfit)

matlab曲线拟合 函数 用法以及例子(polyfit)

2023-09-13 01:12| 来源: 网络整理| 查看: 265

(一)polyfit曲线拟合 函数 用法以及例子

转自:https://blog.csdn.net/It_BeeCoder/article/details/78779385

在运行MATLAB编程进行数据的处理过程当中,我们常常用到matlab曲线拟合,但是工具箱由于需要人工交互,得到的拟合结果,需要人工的去提取,再输入,所以,工具箱拟合结果十分不适合调用,以及继续下面的操作,所以我们需要用到matlab曲线拟合函数,并且以最常用的多项式拟合函数为例作为matlab曲线拟合例子,进行详细介绍。

matlab曲线拟合 函数 用法以及例子 工具/原料

MATLAB

matlab曲线拟合 1

数据准备:

关于MATLAB曲线拟合,我写了一系列的经验,为了相互统一,采用下面的数据:

x=[0    0.3000    0.6000    0.9000    1.2000    1.5000    1.8000    2.1000    2.4000    2.7000    3.0000]

y=[2.0000    2.3780    3.9440    7.3460   13.2320   22.2500   35.0480   52.2740   74.5760  102.6020  137.0000]

由函数y=4*x^3+3*x^2+2 产生。

matlab曲线拟合 函数 用法以及例子 2

函数命令拟合:

MATLAB为我们提供了多项式拟合函数命令polyfit,下面我们就用这个函数命令进行拟合。

在MATLAB主窗口中输入

y1=polyfit(x,y,3),回车

我们会看到下面结果:

y1 =

    4.0000    3.0000    0.0000    2.0000

matlab曲线拟合 函数 用法以及例子 3

函数的说明:

y1=polyfit(x,y,N),这里函数polyfit第一个参数传递的是拟合数据的自变量,第二个参数是因变量,第三个参数是拟合多项式的阶数,这个由我们给定。如下图。我们可以给定不同的N,运用不同的多项式进行拟合。

输出结果:

在上面的例子中我们看到输出的结果是:

y1 =

    4.0000    3.0000    0.0000    2.0000

对照原始的函数y=4*x^3+3*x^2+2 ,我们可以看到,y1其实输出的是拟合函数的系数,并且由高次到低次由左到右输出。

matlab曲线拟合 函数 用法以及例子

4

多项式阶数N的确定:

这里有些人可能会有问题了,我们事先不知道要拟合的数据是几阶的,那么我们如何判断我们给定的拟合阶数N最终为多少呢?

阶数确定方法一:

这种方法是最常用的确定方法,一般情况下,我们拟合函数的目的,就是为了调用,所以在用函数拟合之前会用matlab曲线拟合工具箱进行拟合函数阶数的确定,由其确定拟合的阶数,然后我们用这个函数命令在其他地方进行十分方便地调用,这是最常用的做法。我们往往拟合的是多个同类型的数据,所以确定好一组样本的次数之后,就可以对其他数据用同样的N进行拟合。

matlab曲线拟合 函数 用法以及例子

5

阶数确定方法二:

这种方法方法可以取代用cftool进行判断的过程,具体实现代码如下:

for i=1:5

    y2=polyfit(x,y,i);

    Y=polyval(y2,x);%计算拟合函数在x处的值。

    if sum((Y-y).^2)=k+1.简单分析:k阶拟  合需要确定k+1个未知参数(如1阶拟合y = ax + b需要确定a和b两个参数),故而至少需要k+1个方程,故而需要至少k+1个不同的已知数对(x,y),由于函数中x只能对应一个y,故而需要至少k+1个不同的x。

以上只是帮助理解的粗略分析,仅供参考。

2. polyfit只适合于形如y = a[k]*x^k + a[k-1]*x^(k-1) + .... + a[1]*x + a[0]的完全的一元多项式的数据拟合。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3