matlab曲线拟合 函数 用法以及例子(polyfit) |
您所在的位置:网站首页 › matlab筛选函数 › matlab曲线拟合 函数 用法以及例子(polyfit) |
(一)polyfit曲线拟合 函数 用法以及例子 转自:https://blog.csdn.net/It_BeeCoder/article/details/78779385 在运行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为我们提供了多项式拟合函数命令polyfit,下面我们就用这个函数命令进行拟合。 在MATLAB主窗口中输入 y1=polyfit(x,y,3),回车 我们会看到下面结果: y1 = 4.0000 3.0000 0.0000 2.0000 ![]() 函数的说明: 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其实输出的是拟合函数的系数,并且由高次到低次由左到右输出。 ![]() 多项式阶数N的确定: 这里有些人可能会有问题了,我们事先不知道要拟合的数据是几阶的,那么我们如何判断我们给定的拟合阶数N最终为多少呢? 阶数确定方法一: 这种方法是最常用的确定方法,一般情况下,我们拟合函数的目的,就是为了调用,所以在用函数拟合之前会用matlab曲线拟合工具箱进行拟合函数阶数的确定,由其确定拟合的阶数,然后我们用这个函数命令在其他地方进行十分方便地调用,这是最常用的做法。我们往往拟合的是多个同类型的数据,所以确定好一组样本的次数之后,就可以对其他数据用同样的N进行拟合。 ![]() 阶数确定方法二: 这种方法方法可以取代用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 |