matlab非线性拟合汇总_第1页
matlab非线性拟合汇总_第2页
matlab非线性拟合汇总_第3页
matlab非线性拟合汇总_第4页
matlab非线性拟合汇总_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、非线性曲线拟合非线性曲线拟合回归的操作步骤:回归的操作步骤:(1)根据图形(实际点),根据图形(实际点),选配一条恰当的函数形选配一条恰当的函数形式式(类型)(类型)-需要数学理论与基础和经验。(并需要数学理论与基础和经验。(并写出该函数表达式的一般形式,含待定系数)写出该函数表达式的一般形式,含待定系数)(2)选用某条回归命令求出所有的待定系数选用某条回归命令求出所有的待定系数所以可以说,回归就是所以可以说,回归就是求待定系数求待定系数的过程(需的过程(需确定函数的形式)确定函数的形式)非线性曲线拟合非线性曲线拟合配曲线的一般方法是:配曲线的一般方法是:(一)先对两个变量(一)先对两个变量x

2、和和y 作作n次试验观察得次试验观察得(xi,yi),i=1,2,n画出散点图。画出散点图。(二)根据散点图确定须配曲线的类型。(二)根据散点图确定须配曲线的类型。通常选择的六类曲线如下:通常选择的六类曲线如下:(1)双曲线)双曲线 1/y=a+b/x(2)幂函数曲线)幂函数曲线y=axb , 其中其中x0,a0(3)指数曲线)指数曲线y=aebx其中参数其中参数a0.(4)倒指数曲线)倒指数曲线y=aeb/x 其中其中a0,(5)对数曲线)对数曲线y=a+blogx,x0(6)S型曲线型曲线 y=1/(a+be-x)(三)然后由(三)然后由n对试验数据确定每一类曲线的未知参数对试验数据确定每

3、一类曲线的未知参数a和和b。非线性曲线拟合非线性曲线拟合一、一元多次拟合:一、一元多次拟合: polyfit(x,y,n)二、多元非线性回归二、多元非线性回归 regress、 nlinfit、 lsqcurvefitlsqcurvefit、 fminsearch fminsearch lsqnonlinlsqnonlin、求解线性方程组、求解线性方程组/格式为格式为:p=polyfit(x,y,n)p=polyfit(x,y,n)其中其中 x x和和y y为原始的样本点构成的向量为原始的样本点构成的向量 n n为选定的多项式阶次为选定的多项式阶次 p p为多项式系数按降幂排列得出的行向量为多

4、项式系数按降幂排列得出的行向量 Y=polyval(p,x)Y=polyval(p,x) 求求polyfitpolyfit所得的回归多项式在所得的回归多项式在x x处的预测值处的预测值Y Y非线性曲线拟合非线性曲线拟合 命令命令已知某函数的线性组合为:已知某函数的线性组合为:g(x)=c1f1(x)+c2f2(x)+c3f3(x)+cnfn(x)其中其中f1(x),f2(x),fn(x) 为已知函数,为已知函数,c1,c2,cn为待定系数。假为待定系数。假设已经测出(设已经测出(x1,y1),(x2,y2),.,(xm,ym)则可以建立如下线性则可以建立如下线性方程。方程。其中其中)()()(

5、)()()()(.)()(212222111211MnMMnnxfxfxfxfxfxfxfxfxfAMyyyy21Tncccc21该方程的最小二乘解为该方程的最小二乘解为 c=Ay非线性曲线拟合非线性曲线拟合x xi i0 00.20.20.40.40.70.70.90.90.920.920.990.991.21.21.41.41.481.481.51.5y yi i2.882.882.262.261.971.971.931.932.092.092.112.112.22.22.542.542.962.963.163.163.213.21例:例:假设测出一组(假设测出一组(xi,yi),已知函数

6、原型为已知函数原型为y(x)=c1+c2e-3x+c3cos(-2x)e-4x+c4x2用已知数据求出待定系数用已知数据求出待定系数ci的值。的值。 程序运行过程:程序运行过程: x=0 0.2 0.4 0.7 0.9 0.92 0.99 1.2 1.4 1.48 1.5; y=2.88 2.26 1.97 1.93 2.09 2.11 2.2 2.54 2.96 3.16 3.21; A=ones(size(x),exp(-3*x),cos(-2*x).*(-4*x),x.2; c=Ay; c1=cc1 = 1.2686 1.6356 -0.0289 0.9268非线性曲线拟合非线性曲线拟合

7、使用格式:使用格式: b=或或b, bint, r, rint, stats=regress(y, x)或或regress(y, x, alpha) -命令中是先命令中是先y后后x, -须构造好矩阵须构造好矩阵x(x中的每列与目标函数的一项对应中的每列与目标函数的一项对应)-并且并且x要在最前面额外添加全要在最前面额外添加全1列列/对应于常数项对应于常数项-y必须是列向量必须是列向量-结果是从常数项开始结果是从常数项开始-与与polyfit的不同。)的不同。)b为回归系数为回归系数 的估计值的估计值(第一个为常数项第一个为常数项)bint为回归系数的区间估计为回归系数的区间估计r: 残差残差

8、rint: 残差的置信区间残差的置信区间stats: 用于检验回归模型的统计量,有四个数值:相关系数用于检验回归模型的统计量,有四个数值:相关系数r2、F值、与值、与F对应的概率对应的概率p和残差的方差(前两个越大越好,和残差的方差(前两个越大越好,后两个越小越好)后两个越小越好)alpha: 显著性水平(缺省时为显著性水平(缺省时为0.05,即置信水平为,即置信水平为95%)其中:其中:显著性显著性(Significance)首次由首次由Fisher在在 假设性实验中提出假设性实验中提出.假假设检验中有两种错误设检验中有两种错误: 拒真和纳伪拒真和纳伪.显著性检验仅考虑显著性检验仅考虑发生拒

9、发生拒真错误的概率真错误的概率,也就是考虑原假设的也就是考虑原假设的Significance的程度,的程度,把把拒真的概率控制在提前所给定的阈值拒真的概率控制在提前所给定的阈值alpha之下之下,来考虑检,来考虑检验原假设是否正确验原假设是否正确非线性曲线拟合非线性曲线拟合1)相关系数)相关系数r2越接近越接近1,说明回归方程越显著;,说明回归方程越显著;(r2越越大越接近大越接近1越好越好)2)F越大,说明回归方程越显著;(越大,说明回归方程越显著;(F越大越好)越大越好)与与F对应的概率对应的概率p越小越好,一定要越小越好,一定要P x=0 0.2 0.4 0.7 0.9 0.92 0.9

10、9 1.2 1.4 1.48 1.5; y=2.88 2.26 1.97 1.93 2.09 2.11 2.2 2.54 2.96 3.16 3.21; A=ones(size(x),exp(-3*x),cos(-2*x).*(-4*x),x.2; b,brint,r,rint,stats=regress(y,A);程序程序非线性曲线拟合非线性曲线拟合运行结果运行结果b = 1.2686 1.6356 -0.0289 0.9268brint = 1.0534 1.4838 1.4082 1.8631 -0.1182 0.0605 0.5877 1.2659r = -0.0242 0.0354

11、0.0283 -0.0068 -0.0156 -0.0183 -0.0154 -0.0057 0.0027 0.0102 0.0094rint = -0.0329 -0.0156 0.0001 0.0707 -0.0150 0.0716 -0.0513 0.0378 -0.0670 0.0357 -0.0692 0.0326 -0.0670 0.0362 -0.0461 0.0347 -0.0460 0.0513 -0.0359 0.0562 -0.0315 0.0503stats = 1.0e+03 * 0.0010 1.4774 0.0000 0.0000非线性曲线拟合非线性曲线拟合使用格

12、式:使用格式: beta = nlinfit(x,y, 程序名程序名,beta0) beta,r,J = nlinfit(X,y,fun,beta0)X给定的自变量数据给定的自变量数据,Y给定的因变量数据给定的因变量数据,fun要拟合的函数模型要拟合的函数模型(句柄函数或者内联函数形式句柄函数或者内联函数形式), beta0函数模型中待定系数估计初值(即程序的初始函数模型中待定系数估计初值(即程序的初始实参)实参)beta返回拟合后的待定系数返回拟合后的待定系数 其中其中beta为估计出的回归系数;为估计出的回归系数; r为残差;为残差; J为为Jacobian矩阵矩阵可以拟合成任意函数可以拟

13、合成任意函数,最通用的,万能的命令最通用的,万能的命令.非线性曲线拟合非线性曲线拟合结果要看残差的大小和是否有警告信息,如有警告则换一结果要看残差的大小和是否有警告信息,如有警告则换一个个b0初始向量再重新计算初始向量再重新计算例题同前例例题同前例假设测出一组(假设测出一组(xi,yi),已知函数原型为已知函数原型为y(x)=c1+c2e-3x+c3cos(-2x)e-4x+c4x2用已知数据求出待定系数用已知数据求出待定系数ci的值。的值。 x=0 0.2 0.4 0.7 0.9 0.92 0.99 1.2 1.4 1.48 1.5;y=2.88 2.26 1.97 1.93 2.09 2.

14、11 2.2 2.54 2.96 3.16 3.21;myfunc=inline(beta(1)+beta(2)*exp(-3*x)+beta(3)*cos(-2*x).*exp(-4*x)+beta(4)*x.2,beta,x); beta0=0.2,0.2,0.2,0.2; beta = nlinfit(x,y,myfunc,beta0)beta = 1.2186 2.3652 -0.7040 0.8716非线性曲线拟合非线性曲线拟合function yy= myfun( beta,x)yy=beta(1)+beta(2)*exp(-3*x)+beta(3)*cos(-2*x).*exp(

15、-4*x)+beta(4)*x.2 end法二、法二、 x=0 0.2 0.4 0.7 0.9 0.92 0.99 1.2 1.4 1.48 1.5; y=2.88 2.26 1.97 1.93 2.09 2.11 2.2 2.54 2.96 3.16 3.21; beta0=1,1,1,1; beta= nlinfit(x,y,myfun,beta0)beta = 1.2186 2.3652 -0.7040 0.8716非线性曲线拟合非线性曲线拟合lsqcurvefitlsqcurvefit和和lsqnonlinlsqnonlin为两个求非线性最小二乘拟合的为两个求非线性最小二乘拟合的函数两

16、个命令都要先建立函数两个命令都要先建立M-M-文件文件fun.mfun.m,在其中定义函数,在其中定义函数f(x)f(x),但两者定义,但两者定义f(x)f(x)的方式是不同的的方式是不同的1. lsqcurvefit1. lsqcurvefit已知数据点:已知数据点: xdata=xdata=(xdata1,xdata2,xdataxdatan n),), ydata=ydata=(ydataydata1 1,ydataydata2 2,ydataydatan n)lsqcurvefitlsqcurvefit用以求含参量用以求含参量x x(向量)的向量值函数(向量)的向量值函数F(x,xda

17、ta)=F(x,xdata)=(F F(x x,xdataxdata1 1),),F F(x x,xdataxdatan n)T T中的参变量中的参变量x(x(向量向量),),使得使得 最小 ),(21niiiydataxdataxF非线性曲线拟合非线性曲线拟合输入格式为输入格式为: :x = lsqcurvefit (fun,x0,xdata,ydata,options)fun是一个事先建立的是一个事先建立的定义函数定义函数F(x,xdata) 的的M-文件文件, 自变量为自变量为x和和xdata迭代初值迭代初值已知数据点已知数据点选项见无选项见无约束优化约束优化2. lsqnonlinl

18、s q n o n l i n 用 以 求 含 参 量用 以 求 含 参 量 x x ( 向 量 ) 的 向 量 值 函 数( 向 量 ) 的 向 量 值 函 数 f(x)=(ff(x)=(f1 1(x),f(x),f2 2(x),(x),f,fn n(x)(x)T T 中的参量中的参量x x,使得,使得 最小。最小。 其中其中 fi(x)=f(x,xdatai,ydatai)=F(x,xdatai)-ydatai22221)()()()()(xfxfxfxfxfnT下面是拟合的下面是拟合的option设置设置 (1)Display:结果显示方式。:结果显示方式。off不显示,不显示,iter

19、显示每次迭显示每次迭代的信息,代的信息,final为最终结果,为最终结果,notify只有当求解不收敛的时只有当求解不收敛的时候才显示结果候才显示结果(2)MaxFunEvals:允许函数计算的最大次数,取值为正允许函数计算的最大次数,取值为正整数整数(3)MaxIter:允许迭代的最大次数,正整数:允许迭代的最大次数,正整数(4)TolFun:函数值(计算结果)精度,正整数:函数值(计算结果)精度,正整数(5)TolX:自变量的精度,正整数。自变量的精度,正整数。使用方法如下使用方法如下option=optimset(MaxFunEvals,212,MaxIter,214,TolX,1e-8

20、,TolFun,1e-8);非线性曲线拟合非线性曲线拟合x= lsqnonlin lsqnonlin (fun,x0,options)fun是一个事先建是一个事先建立的定义函数立的定义函数f(x)的的M-文件,文件,自变自变量为量为x迭代初值迭代初值选项见无选项见无约束优化约束优化例例2 2 用下面一组数据拟合用下面一组数据拟合 中的参数中的参数a,b,kktbeatc2.0.0)(100200 30040050060070080090010004.54 4.99 5.35 5.65 5.90 6.10 6.26 6.39 6.50 6.59该问题即解最优化问题:该问题即解最优化问题:2101

21、02.0),(minjjktcbeakbaFjjt310jc非线性曲线拟合非线性曲线拟合1 1)编写编写M-M-文件文件 curvefun1.mcurvefun1.m function f=curvefun1(x,tdata) f=x(1)+x(2)*exp(-0.02*x(3)*tdata) %其中其中 x(1)=a; x(2)=b;x(3)=k; end2)输入命令输入命令tdata=100:100:1000;tdata=100:100:1000;cdata=cdata=1e-03* *4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,4.54,4.99,5.

22、35,5.65,5.90,6.10,6.26,6.39,6.50,6.59;6.50,6.59; x0=0.2,0.05,0.05; x0=0.2,0.05,0.05; x=lsqcurvefit (curvefun1,x0,tdata,cdata)x=lsqcurvefit (curvefun1,x0,tdata,cdata) f= f= curvefun1(x,tdata) 3 3)运算结果为)运算结果为:f =0.0043 0.0051 0.0056 0.0059 0.0061 f =0.0043 0.0051 0.0056 0.0059 0.0061 0.0062 0.0062 0.0

23、063 0.0063 0.0063 0.0062 0.0062 0.0063 0.0063 0.0063 x = 0.0063 -0.0034 0.2542 x = 0.0063 -0.0034 0.2542非线性曲线拟合非线性曲线拟合解法解法 2 用命令用命令lsqnonlin f(x)=F(x,tdata,ctada)= x=(a,b,k)Tktktcbeacbea),(102. 0102. 01011)编写)编写M-文件文件 curvefun2.m function f=curvefun2(x) tdata=100:100:1000; cdata=1e-03*4.54,4.99,5.35

24、,5.65,5.90, 6.10,6.26,6.39,6.50,6.59; f=x(1)+x(2)*exp(-0.02*x(3)*tdata)- cdata end2)输入命令)输入命令: x0=0.2,0.05,0.05;x=lsqnonlin(curvefun2,x0)f= curvefun2(x)非线性曲线拟合非线性曲线拟合3 3)运算结果为)运算结果为 f =1.0e-003 f =1.0e-003 * *(0.2322 -0.1243 -0.2495 -0.2413 (0.2322 -0.1243 -0.2495 -0.2413 -0.1668 -0.0724 0.0241 0.11

25、59 0.2030 0.2792-0.1668 -0.0724 0.0241 0.1159 0.2030 0.2792 x =0.0063 -0.0034 0.2542 x =0.0063 -0.0034 0.25424)结论)结论:即拟合得即拟合得a=0.0063 b=-0.0034 k=0.25420.0063 b=-0.0034 k=0.2542可以看出可以看出,两个命令的计算结果是相同的两个命令的计算结果是相同的.非线性曲线拟合非线性曲线拟合比较以上几种非线性拟合函数适用的条件和注意事项:1)Regress函数和函数和 命令:命令:1) 首先要确定要拟合的函数形式,然后确定待定的系数首

26、先要确定要拟合的函数形式,然后确定待定的系数从常数项开始排列,须构造矩阵从常数项开始排列,须构造矩阵(每列对应于函数中的一项,每列对应于函数中的一项,剔除待定系数剔除待定系数)2) 适用于多元(可通过变形而适用于任意函数)。适用于多元(可通过变形而适用于任意函数)。y为列向量;为列向量;x为矩阵,第一列为全为矩阵,第一列为全1列(即对应于常数项),其余每一列列(即对应于常数项),其余每一列对应于一个变量(或一个含变量的项),即对应于一个变量(或一个含变量的项),即x要配成目标函数要配成目标函数的形式(常数项在最前)的形式(常数项在最前)3) regress只能用于函数中的每一项只能有一个待定系数的情只能用于函数中的每一项只能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论