在Matlab中数值拟合的应用

更新时间:2023-03-08 05:16:23 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

在Matlab中数值拟合的应用

摘要

在科学实验和生产实践中,往往需要从一组实验数据(xi,yi)(i?1,2,...n)中,寻找变量x和y之间的函数关系y?f(x)的某种近似表达式s(x)。而实际去只能通过观测得到一些离散的数据点。针对这些分散的数据点,运用某种你和方法生成一条连续的曲线,这个过程称为曲线拟合。插值方法可以构造一个插值函数逼近已知函数你,但是,一般来说,给定的实验数据(xi,yi)(i?1,2,...n)的数量较大,且由于观测误差的原因,准确度不一定高,甚至在个别点有很大的误差,形象地成为“噪声”。如果用插值法来求y?f(x)的近似表达式,要使s(x)满足插值条件,势必将“噪声”带进近似函数s(x),因而不能较好地描绘y?f(x)。 面对着分散的数据点,运用某种你和方法生成一条连续的曲线,这个过程称为曲线拟合。插值法虽然是函数逼近的一种重要方法,但他还存在以下的缺陷:一是由于测量数据的往往不可避免地带有测试误差,而插值多项式又通过所有的

电容器充电电压与时间t的曲线109.598.587.576.56点(xi,yi),这样就使插值多项式保留了这些误差,从而影响了逼近精度。此时显然

插值效果是不理想的。二是如果由实验提供的数据较多,则必然得到次数较高的插值多项式,这样近似程度往往既不稳定又明显缺乏实用价值。因此,怎样从给定的一组实验数据出发,寻求已知函数的一个逼近函数s(x),使得逼近函数从总体上来说与已知函数的偏差按某种方法度量能

充电电压(V)012345时间t(s)6789达到最小而又不一定过全部的点(xi,yi),

这就需要介绍本论文主要研究的数据拟合。本文学习目的:

(1)熟悉、掌握数据拟合的各种不同准则,重点学习最小二乘准则; (2)提出、分析并掌握Matlab中各种常见的拟合方法; (3)熟悉掌握拟合工具的使用;

(4)能够灵活编程来解决数据拟合的实际问题 。

关键词:Matlab、数据拟合准则、一元线性拟合、非线性、图像、拟合工具

1 / 16

1、数据拟合概念

数据的拟合主要分为曲线拟合(curve fitting)、曲面拟合(suface fitting)。它试图从散点数据中拟合出一个有规律的解析式,而该解析式的某些参数(系数)是不定的未知量。数据拟合的目的是要根据散点数据在“最小误差”的意义下确定出解析式中的这些不定参数。正如对于一条直线y?kx?b,而该式中有k和b两个未知参数需要求出。由基本的数学知识我们可以知道,只要有两个点就可以确定出这两个参数。但是若有更多的点,比如实验数据往往有很多点,这些点由于有误差不一定在一条直线上,需要找出一条直线离这些点“最近”,这就是拟合。从上面的例子我们可以看出,拟合具有两个特点:

(1)点数(已知数据数目)即方程的个数要大于待求参数的个数; (2)方程所代表的曲线、曲面等不一定通过这些已知点。

对于不同的定义有着不同的数据拟合准则,最常见的数据拟合准则有三种,分别是切比雪夫近似准则、极大化绝对偏差之和准则和最小二乘准则。本文重点介绍最小二乘法准则。

数据拟合的方法主要有一元线性拟合、一元非线性拟合、多项式拟合、多元拟合及拟合工具拟合等。 2、基本拟合准则

2.1切比雪夫近似准则

对给出的y?f(x)和数据,极小化最大绝对偏差|yi?f(xi)|,即确定函数类型y?f(x)电脑参数从而极小化数量:Maxinum|yi?f(xi)|(i?1,2,...n) 切比雪夫近似准则在实际应用中通常很复杂,应用这一准则所产生的最优化问题通常可以表示为线性规划问题,这可能需要高级的数学方法或者用计算机的数值算法,所以通常不使用这一准则。 2.2极大化绝对偏差之和准则

同3.1,对给出的y?f(x)和数据,极大化最大绝对偏差|yi?f(xi)|的和,即确定函数类型y?f(x)电脑参数从而极小化数量:?|yi?f(xi)|

i?1n 由于这一准则有出现了绝对值,这个和式电脑各种微分不是连续的,要解决这个最优化问题时,将该和式对每个未知参数进行求异时,问题会变得不可解,因此该准则也不常用。 2.3最小二乘准则

同3.1、3.2使用相同记号,确定函数类型y?f(x)的参数,使得极小化和数?|yi?f(xi)|2

i?1n 用这方法解决产生的最优化问题仅需要使用几个变量的演算,所以容易普及,Matlab软件中提供的数据拟合方法也基本都是基于该准则的。

2 / 16

2、几种拟合方法

数据拟合根据自变量的个数以及选取的拟合函数的形式 ,可以分为一元线性拟拟合、一元非线性拟合、多元拟合及拟合工具箱使用等方法。

2.1一元线性拟合

2.1.1多项式拟合

多项式拟合是线性拟合中最常见的形式, 它的目标是找出一组多项式系数

ai(i?1,2,...n?1),使得多项式f(x)?a1xn?a2xn?1?...?anx?an?1能够在最小二乘

的意义下最好地拟合原始数据。

多项式拟合可以通过Matlab提供的polyfit()函数实现,调用格式为:

[p,s]=polyfit(x,y,n)

其中,x,y 是输入的实验数据,n 是拟合计算用到的多项式的次数,返回值p 是拟合多

项式的系数,S 是用来估计误差和预测数据的结构体。

与polyfit()函数配合使用的函数是polyval(),这个函数根据拟合出来的多项式系数p 计

算给定数据x 处的y 值。其调用格式如下:

Y=polyval(p,X)

其中X 是给定的需要计算拟合值的向量,p 是polyfit()函数的返回值,返回值Y 是根据p计算出来的X 处的多项式的值。 例1.

给定的多项y?x3?6x2?6x?3和自变量x=1:10,代入产生一组数据

y, 现在xi=x+0.2*rand(1,10)-0.1, yi =y+0.5- rand (1,10) ,i=1,2,?,10), 然后用xi和yi作3次多项式拟合,与原系数比较。注意作图并说明。 x=1:10;

得到结果为:

f3 = 0.9645 -5.4289 3.4571 -0.4339

3 / 16

y=x.^3-6*x.^2+6*x-3; x0=x+0.2*rand(1,10)-0.1; y0=y+0.5- rand;

f3=polyfit(x0,y0,3)%3次多项式拟合 y3=polyval(f3,x0); plot(x,y,'+',x0,y3); grid on

title('三次拟合曲线');

拟合图像为:

可发现加入随机“噪声”后用三次拟合,发现拟合效果还是相当好。故结果可用。

2.1.1已知函数线性组合的拟合方法

实际上,多项式函数的每一项的都可以被看做是一个函数,而多项式函数就是这些函数的线性组合。对于更一般的情形,假设已知某函数的线性组合为:

f(x)?c1f1(x)?c2f2(x)?c3f3(x)?...?cnfn(x)

其中,f1(x),f2(x),?,fn(x)为已知函数,c1,c2,?cn为待定系数,这时如给出数据(xi,yi)(i?1,2,...n),则可以建立方程:Ac?y

?f1(x1)?f(x) A??12?...??f1(xn)Tf2(x1)...f2(x2).........f2(xn)...fn(x1)??y1??y?fn(x2)??,y??2? ?...?...????fn(xn)??yn? 且c??c1,c2,...cn?,故该方程的最小乘解为c?A/y。

4 / 16

例2.已知一室模型快速静脉注射下的血药浓度数据(t=0注射300mg)

kt问题:求血药浓度随时间的变化规律c(t).c(t)?c0e?(c,k为待定系数)

解:建立M文件并命名为fun.m

function f=fun(x,tdata)

f=x(1)*exp(-x(2)*tdata);

在Command Window中输入:

tdata=[0.25,0.5,1,1.5,2,3,4,6,8];

cdata=[19.21,18.15,15.36,14.10,12.89,9.32,7.45,5.24,3.01];

x0=[0.2,0.05];

x=lsqcurvefit('fun',x0,tdata,cdata);

f=fun(x,tdata); x

plot(tdata,cdata,'ro',tdata,f,'b*-')

得到结果为:

x =20.2413 0.2420

得到拟合图像为:

可见拟合效果不错,可以使用,所以方程为:c(t)?20.2413e?0.2420t 2.2一元非线性拟合

在实际的问题场景中,如果我们已知的函数形式为y(x)?aebx这样在幂指数上带有未知数的其他形式,简单的线性求解就无能为力了。通常这种情况下,我

5 / 16

们有两种方法可以解决,一是将非线性函数进行适当的变换变成线性形式,另一种是有Matlab的优化工具箱中提供的lsqcurvefit()函数或者lsqnonlin()函数 进行求解。

2.2.1非线性拟合化为线性拟合

对于某些非线性的变量关系可以通过简单的变量替换使之直线化,这样就可以按最小二乘法原理求出替换后变量的直线方程。在实际中常利用此直线方程绘制数据的标准曲线,同

时根据需要可将此直线方程还原为曲线方程,实现对数据的曲线拟合。常用的非线性函数线性化的方法如下:

1、指数函数y?aebx,当b > 0时, y 随x增大而增大;当b < 0时, y 随x增大而减少。可以两边取对数,得lny?lna?bx。因此当以ln y 和x绘制的散点图呈直线趋势时,可考虑采用指数函数来描述y 与x 之间的非线性关系,lna 和b 分别为截距和斜率。

2、对数函数 y?a?blnx,当b > 0时, y 随x增大而增大,先快后慢;当b < 0时, y 随x 增大而减少,先快后慢。因此,当以y 和ln x 绘制的散点图呈直线趋势时,可考虑采用对数函数描述y 与x 之间的非线性关系,式中的b 和a 分别为斜率和截距。

3、幂函数y?axb,当b > 0时, y 随x增大而增大;当b < 0时, y 随x增大而减少。可以两边取对数,得到lny?lna?blnx。因此,当以lny和ln x绘制的散点图呈直线趋势时,可考虑采用幂函数来描述y 与x 之间的非线性关系,lna和b 分别为截距和斜率。

例3. 用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为

v(t)?V?(V?V0)e,其中是电容器的初始电压V0,?是充电常数。试由下面一组t,V数据确定V0,? t (秒) V (伏) 解:

v(t)?V?(V?V0)e(已知V=10)可见,v(t)与τ成指数变化关系,所以在通过曲线拟合的时候,使用指数曲线y?a1ea2x。(非线性拟合)。首先进行变量代换在程序中用v1代替v(t),t0代替τ,v2是拟合后的曲线方程:

6 / 16

?t??t? 0.5 1 2 3 4 5 7 9 6.36 6.48 7.26 8.22 8.66 8. 99 9.43 9.63 对v(t)?V?(V?V0)e变 形 后 取 对 数,有ln(10?v(t))?ln(10?v0)??t令y?ln(10?v(t)),f1?ln(10?v0),f2?-t10,则v0?10?ef2, t0 输入:

t=[0.5 ,1,2,3,4,5,7,9];

v1=[6.36,6.48,7.26,8.22,8.66,8.99,9.43,9.63]; y=log(10- v1); f=polyfit(t,y,1) t0=-1/f(1)

v0=10-exp(f(2))

v2=10-(10-v0)*exp(-t/t0); plot(t,v1,'rx',t,v2,'k:') grid on

?t?

1f1??

得到结果为:

f =-0.2835 1.4766 t0 = 3.5269 v0 =5.6221

拟合图像为:

可见拟合效果还是可以的,所以v(t)?V?(V?5.6221)e?t3.5269

2.2.2优化工具箱的lsqcurvefit()函数

在解决实际的非线性拟合问题的时候,我们可以通过对实际数据进行一些变

7 / 16

换,去观察数据可能满足的函数规律,但是在实际进行求解参数的时候,尽量还是利用优化工具箱中提供的lsqcurvefit()函数或者甚至有时候需要自己运用一些智能算法来求解这类最优化问题。这里我们介绍一下Matlab 自带的lsqcurvefit()函数的用法,该函数的调用格式为:

(1) x = lsqcurvefit (‘fun’,x0,xdata,ydata);

(2) x =lsqcurvefit (‘fun’,x0,xdata,ydata,options);

(3) x = lsqcurvefit (‘fun’,x0,xdata,ydata,options,’grad’);

(4) [x, options] = lsqcurvefit (‘fun’,x0,xdata,ydata,?);

(5) [x, options,funval] = lsqcurvefit (‘fun’,x0,xdata,ydata,?);

(6) [x, options,funval, Jacob] = lsqcurvefit (‘fun’,x0,xdata,ydata,?);

x = lsqcurvefit (‘fun’,x0,xdata,ydata,options);

其中,fun是一个事先建立的定义函数F(x,xdata)的M-文件, 自变量为x和xdata,x0 为最优化的初始值,xdata、ydata 是原始输入输出数据向量;返回值p 为拟合输出的未知参数。

lsqnonlin()函数的用法及调用格式为:

lsqnonlin用以求含参量x(向量)的向量值函数f(x)?(f1(x),f2(x),....fn(x))T 中的参量x,使得fT(x)f(x)?f1(x)2?f2(x)2?...?fn(x)2最小。调用格式为:

‘fun’,x0); 1) x=lsqnonlin(

‘fun’,x0,options); 2) x= lsqnonlin (

‘fun’,x0,options,‘grad’); 3) x= lsqnonlin (

‘fun’,x0,?); 4) [x,options]= lsqnonlin (

‘fun’,x0,?); 5) [x,options,funval]= lsqnonlin (

‘fun’,x0,options); x= lsqnonlin (

fun是一个事先建立的定义函数f(x)的M-文件,自变量为x,x0为迭代初值,options为选项见无约束优化

例4:调用lsqcurvefit()函数进行最小二乘拟合求解例3:已知

v(t)?V?(V?V0)e 解:输入:

t=[0.5 ,1,2,3,4,5,7,9];

v=[6.36,6.48,7.26,8.22,8.66,8.99,9.43,9.63];

f=@(b,t) 10-(10-b(1))*exp(-t/b(2)); %定义拟合函数模型

b=lsqcurvefit(f,[2,7.26,0],t,v) %调用lsqcurvefit()函数进行最小二乘拟合求解 vFit=f(x,t);

plot(t,v,'ko',t,vFit) %绘制图形 legend('原始数据点','拟合曲线')

?t?

得到结果:

b = 5.5577 3.5002 0

8 / 16

得到图像为:

可知拟合效果不错,故拟合方程表达式为:v(t)?V?(V?5.5577)e?t3.5002

2.3多元拟合

我们在有些实际问题中自变量的数量可能会有两个或者多个,这时候问题就变成了多元拟合。多元拟合同样存在线性拟合和非线性拟合的情形。对于多元线性拟合,Matlab 最优化工具箱中提供了lsqlin()来求解这类问题。对于多元非线性拟合,Matlab 拟合工具箱中没有提供函数来解决,有兴趣的学生可以根据最小二乘的原理自己来编写程序实现,另外一种替代的方法是使用Matlab统计工具箱中提供的求解多元非线性回归的函数nlinfit()来解决这类问题。下面我们就分别结合实例来介绍这两个函数的用法。

例5: 电影院调查分别投放电视广告费用和报纸广告费用对每周电影院收入的影响,得到下面的数据,建立回归模型并进行检验,诊断是否有异常点。并预测电视广告费用和报纸广告费用分别为2和4时的电影院收入。 每周收入 96 90 95 92 95 95 94 94 电视广告费用 1.5 2.0 1.5 2.5 3.3 2.3 4.2 2.5 报纸广告费用 5.0 2.0 4.0 2.5 3.0 3.5 2.5 3.0

9 / 16

解:编写下面的程序,调用lsqlin()函数来解决该问题。

x1=[1.5,2.0,1.5,2.5,3.3,2.3,4.2,2.5]';

x2=[5.0,2.0,4.0,2.5,3.0,3.5,2.5,3.0]'; y=[96,90,95,92,95,95,94,94]';

M=[x1,x2,ones(size(x1))]; %构造调用lsqlin 函数所需的M 矩阵

X=lsqlin(M,y)%调用lsqlin()函数求解二元线性拟合问题

[x1grid x2grid]=meshgrid(x1,x2);

y1=X(1)*x1grid+X(2)*x2grid+X(3);

mesh(x1grid,x2grid,y1) %绘制网格曲面图

hold on;

plot3(x1,x2,y,'kd') %绘制原始数据点

alpha(0.5) %设置透明程度

hold off;

得到结果为:

X = 1.2985 2.3372 83.2116

得到的图形为:

可见点基本在拟合面上,所以拟合结果为y?83.2116?1.2985x1?2.3372x2 例6:用函数nlinfit()来解决这类问题,反应动力学中的Hougen‐Waston 模型是非线性模型的一个经典例子,其模型如下:y??1x2?x3/?5 y 为反应

1??2x1??3x2??4x3速率,其三个决定因素分别为x1(氢气),x2(n‐戊烷),x3(异戊烷) ,以下是一组实验数据,试建立回归模型,求出未知参数?i

10 / 16

氢气470 285 470 470 470 100 100 470 100 100 100 285 285 -戊烷300 80 300 80 80 190 80 190 300 300 80 300 190 戊烷10 10 120 120 10 10 65 65 54 120 120 10 120 反应速率8.55 3.79 4.82 0.02 2.75 14.39 2.54 4.35 13 8.5 0.05 11.32 3.13

解:输入:

data=[470 285 470 470 470 100 100 470 100 100 100 285 285;

300 80 300 80 80 190 80 190 300 300 80 300 190;

10 10 120 120 10 10 65 65 54 120 120 10 120]';%反应物数据

rate=[8.55 3.79 4.82 0.02 2.75 14.39 2.54 4.35 13 8.5 0.05 11.32 3.13]'; %反应速率数据

f=@(b,x)( b(1)*x(:,2)-x(:,3)/b(5))./(1+b(2)*x(:,1)+b(3)*x(:,2)+b(4)*x(:,3)); %定义拟合函数

b0=[1;0.1;0.2;0.1;2]; %参数求解的初始值

betafit=nlinfit(data,rate,f,b0) %调用nlinfit 函数求解

得到结果为:

betafit = 1.2526 0.0628 0.0400 0.1124 1.1914 所以原模型为:y?1.2526x2?x3/1.1914

1?0.0628x1?0.0400x2?0.1124x33、拟合工具箱的使用

为了使用户更方便地进行曲线拟合,Matlab 还提供了一个功能强大的曲线拟合工具箱——Curve Fitting Toolbox,它是以图形用户界面的互动操作展示给用户的,而且最后还可以将该图形界面操作生成的M 函数文件保存以备后用。下面我们就以例7为例说明该拟合工具箱的用法。

1例7: 在一次传染病总,已知t时刻的染病人数I(t)满足如下模型I(t)?,

a?bect公共部门每隔5天记录一次传染者的人数,具体见下表,试利用拟合方法确定a,b,c值。 天数 0 5 10 15 20 25 30 35 40 45 50 55 60 传染者 0.2 0.4 0.5 0.9 1.5 2.4 3.1 3.8 4.1 4.2 4.5 4.4 4.5 第一步:输入观测点数据

在Matlab 命令窗口中输入如下语句,将观测点数据输入: t=0:5:60;

y=[0.2 0.4 0.5 0.9 1.5 2.4 3.1 3.8 4.1 4.2 4.5 4.4 4.5];

第二步:启动曲线拟合工具箱

直接在命令窗口输入cftool或者单击Matlab 界面左下角的按钮,再执

Toolboxes‐>Curve Fitting‐>cftool即可。进入拟合工具箱初始界面,如图(1)。

11 / 16

图(1) 图(2)

第三步:数据导入与拟合

单击\按钮,弹出“Data”对话框,分别由Xdata 和Ydata 的下拉菜单导入数据t,y,修改数据集名”Data set name”为“初始数据点”,然后单击按钮,创建一个新数据集,然后单击按钮”Close”退出“Data”对话框,这时会在初始界面中绘制出数据的散点图,如图(2)。

单击

按钮,弹出“Fitting”对话框,该对话框分为两部分,上

面为“Fit Editor”,下面为“Table of Fits”。

图(3)

单击按钮并将“Fit Name”该为“拟合曲线”,然后通过下拉菜单“Type ofFit”选择拟合曲线的类型,该工具箱提供的拟合曲线的类型有以下几种。

12 / 16

Custom Equations:用户自定义的函数类型。 Exponential: e 指数函数。 ourier: 傅里叶函数。 Gaussian: 高斯函数。 Interpolant: 插值函数。 Polynonmial: 多项式函数。 Power: 幂函数。 Rational: 有理函数。 Smoothing Spline: 平滑样条拟合函数。 Sun of Sin Functions: 正弦函数类。 Weibull: 威布尔函数。

我们可根据各点的分布大概看出其函数,例如该题如果选择Gaussian: 高斯函数。选择Gaussian内相应的方程,单击残差的大小,如图(4)选择方程

余残差为0.06578,得到的拟合图形为图(5):

,观察比较各个方程下剩余

时的剩

图(4) 图(5)

Result菜单中(如图(6))的顶端有所求方程的各项系数。从而可以读写出相应方程。

图(6)

另外,也可以通过使用Custom Equations:用户自定义的函数类型。单击

13 / 16

,得到如图(7)。

图(7) 输入你要拟合的拟合函数表达式,按

按钮,便可得到相应的未知系

,同样观察其剩余残

数,从而得到相应方程。结束后选择该函数,单击差,及拟合图像。

第四步:数据分析与预测

单击

按钮,可以进入“Analysis”界面,输入Xi 的值并在

“Evalute fit at Xi”选项前打钩,在“Plot results”选项前打钩,单击“Apply”按钮即可在右边的区域显示详细的数据,并绘制修改数据后的图形。

Analysis of fit \s. t\4.5fit 143.532.5Fit21.510.500102030405060

14 / 16

第五步:生成函数M 文件

执行操作“File‐>Generate M‐file?”,即可生成函数M文件,这样在以后的调用中就会非常方便。对于本例,将得到的代码保存为createFit.m,在下次要进行这类函数的拟合时,直接调用函数createFit()就可以了,例如:

t=0:5:60; y=[0.2 0.4 0.5 0.9 1.5 2.4 3.1 3.8 4.1 4.2 4.5 4.4 4.5]; createFit(t,y)

要进行曲面的拟合,也可使用Matlab提供的曲面拟合工具箱sftool,其使用方法和cftool大同小异。

4、经典综合实验任务

(1)人口预测问题

以下是美国人口两个世纪以来的统计数据,试以此预测2010年,2020年的美国人口。人口单位(百万)

年份 人口 年份 人口 1800 5.3 1910 92.0 1810 7.2 1920 1820 9.6 1930 1830 12.9 1940 1840 17.1 1950 1850 23.2 1960 1860 31.4 1970 1870 38.6 1980 1880 50.2 1990 1890 62.9 2000 1900 76.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4 275.0 (2)估计水塔的流量

某居民区有一供居民用水的圆柱形水塔,一般可以通过测量其水位来估计

水的流量,但面临的困难是,当水塔水位下降到设定的最低水位时,水泵自动启动向水塔供水,到设定的最高水位时停止供水,这段时间无法测量水塔的水位和水泵的供水量。通常水泵每天供水一两次,每次约两小时。

水塔是一个高12.2米,直径17.4米的正圆柱。按照设计,水塔水位降至约8.2米时,水泵自动启动,水位升到约10.8米时水泵停止工作。

表1 是某一天的水位测量记录,试估计任何时刻(包括水泵正供水时)从水塔流出的水流量,及一天的总用水量。(符号//表示水泵启动)

0 0.92 1.84 2.95 3.87 4.98 5.90 7.01 7.93 8.97 时刻(h) 水位(cm) 968 948 931 913 898 881 869 852 839 822 9.98 10.92 10.95 12.03 12.95 13.88 14.98 15.90 16.83 17.93 时刻(h) 水位(cm) // // 1082 1050 1021 994 965 941 918 892 19.04 19.96 20.84 22.01 22.96 23.88 24.99 25.91 时刻(h) 水位(cm) 866 843 822 // // 1059 1035 1018

15 / 16

5、本文总结

通过本文的学习,估计大家对数据拟合便不再陌生了吧,面对着分散的数据点,只要运用某种你和方法生成一条连续的曲线,这个过程称为曲线拟合。也懂得了怎样从给定的一组实验数据出发,寻求已知函数的一个逼近函数s(x),使得逼近函数从总体上来说与已知函数的偏差按某种方法度量能达到最小而又不一定过全部的点(xi,yi),学了数据拟合,再多的数据我们也不再畏惧,而Matlab中数据拟合的应用也是非常重要的,很多数学建模的实现都离不开数学拟合,所以如果你能熟悉掌握数据拟合这一块,这对你在数学建模方面会有很多帮助。 本文已经相当详细、系统地介绍了数据拟合的知识,包括拟合准则、各种拟合方法及曲线拟合工具箱的使用,但本文涉及的曲线拟合工具的功能还相对基础,读者若有兴趣的话,还可自行深入研究曲线拟合工具箱的其他功能及曲面拟合工具箱的使用,其使用方法跟曲线拟合工具相似。 希望通过本文的学习,你能有所进步、收获。

6、参考文献

[1] 韩明 王家宝 李林,数学实验(MATLAB),同济大学出版社,2012年出版 [2] 陈育宁,MATLAB数学实验教程,宁夏人民教育出版社,2007年出版 [3] 李明,MATLAB在最优化计算中的应用,电子工业出版社,2012年出版 [4] 何正风,Matlab在数学方面的应用,北京:清华大学出版社,2012.1 [5] 数模网论坛http://www.shumo.com/forum/forumdisplay.php?fid=116

16 / 16

5、本文总结

通过本文的学习,估计大家对数据拟合便不再陌生了吧,面对着分散的数据点,只要运用某种你和方法生成一条连续的曲线,这个过程称为曲线拟合。也懂得了怎样从给定的一组实验数据出发,寻求已知函数的一个逼近函数s(x),使得逼近函数从总体上来说与已知函数的偏差按某种方法度量能达到最小而又不一定过全部的点(xi,yi),学了数据拟合,再多的数据我们也不再畏惧,而Matlab中数据拟合的应用也是非常重要的,很多数学建模的实现都离不开数学拟合,所以如果你能熟悉掌握数据拟合这一块,这对你在数学建模方面会有很多帮助。 本文已经相当详细、系统地介绍了数据拟合的知识,包括拟合准则、各种拟合方法及曲线拟合工具箱的使用,但本文涉及的曲线拟合工具的功能还相对基础,读者若有兴趣的话,还可自行深入研究曲线拟合工具箱的其他功能及曲面拟合工具箱的使用,其使用方法跟曲线拟合工具相似。 希望通过本文的学习,你能有所进步、收获。

6、参考文献

[1] 韩明 王家宝 李林,数学实验(MATLAB),同济大学出版社,2012年出版 [2] 陈育宁,MATLAB数学实验教程,宁夏人民教育出版社,2007年出版 [3] 李明,MATLAB在最优化计算中的应用,电子工业出版社,2012年出版 [4] 何正风,Matlab在数学方面的应用,北京:清华大学出版社,2012.1 [5] 数模网论坛http://www.shumo.com/forum/forumdisplay.php?fid=116

16 / 16

本文来源:https://www.bwwdw.com/article/cib.html

Top