数学建模——曲线拟合

一、曲线拟合简介

1、曲线拟合问题的提法

 已知一组数据(二维),即平面上n个点       (xi,yi)(i=1,2,…,n), xi互不相同。寻求一个函数y=f(x),使得f(x)在某种准则下与所有的数据点最为接近,即拟合得最好。

2、线性最小二乘法

线性最小二乘法是解决曲线拟合最常用的方法,基本思路是,令

                      

 其中,r1(x),…,rm(x)是一组预先选定得一组线性无关的函数,a1,a2,…,am是待定系数.

涉及到的问题有二,一是系数确定;二是函数选取

2.1 系数确定

拟合准则:使得yi与f(xi)距离(称为残差)平方和最小,称为最小二乘法。,即

 即求a1,…,am,转化为求J函数的最小值。

2.2 拟合函数的选取

 拟合的前提是:

(1)通过机理分析,得到y和x的函数关系,这是r1(x),…, rm(x)也就好选取;

(2)若无法判断y和x的机理关系,绘制(xi,yi)的散点图,直观判断用什么曲线取拟合。

常用的曲线有

(1)线性

 (2)多项式(一般m=2,3)

 (3)双曲函数(一支)

 (4)指数曲线

 一般需要几种曲线分别拟合,选最好的那个!

二、曲线拟合Matlab工具箱

1、多项式拟合

调用格式:a=polyfit(x0,y0,m)

x0,y0是数据向量,m表示多项式的阶数,返回的是多项式的降幂系数a=[a1,a2,…,am,am+1]。

 要计算x处对应的多项式取值,需调用y=polyval(a,x)

 例如:

x0=1990:1:1996;
x1=x0-1989;
y0=[70,122,144,152,174,196,202];
a=polyfit(x1,y0,3)
0.7778  -11.7381   71.6270   12.5714

 2、最小二乘曲线拟合

调用格式:x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)

其中, fun  为待拟合的函数,一般定义为F(x,xdata)的M文件; x0   参数初值值,一般用行向量给出; xdata,ydata  为观测值,列向量表示; lb   为参数的下界; ub   为参数的上届; options   为选项:  

猜你喜欢

转载自blog.csdn.net/m0_63024355/article/details/131537813