还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
曲线拟合(curve-fitting)工程实践中,用测量到的一些离散的数据求一个近似的函数来拟合这组数据,要求所得的拟合曲线能最好的反映数据的基本趋势(即使最好地逼近,而不必满足插值原则因此没必要取=,只要使尽可能地小)原理给定数据点求近似曲线并且使得近似曲线与的偏差最小近似曲线在该点处的偏差,i=
12...m常见的曲线拟合方法:
1.使偏差绝对值之和最小
2.使偏差绝对值最大的最小
3.使偏差平方和最小最小二乘法按偏差平方和最小的原则选取拟合曲线,并且采取二项式方程为拟合曲线的方法称为最小二乘法推导过程
1.设拟合多项式为
2.各点到这条曲线的距离之和,即偏差平方和如下
3.问题转化为求待定系数...对等式右边求偏导数,因而我们得到了.......
4、把这些等式化简并表示成矩阵的形式,就可以得到下面的矩阵
5.将这个范德蒙得矩阵化简后可得到:
6.也就是说X*A=Y,那么A=X*X-1*X*Y,便得到了系数矩阵A,同时,我们也就得到了拟合曲线__TLAB实现__TLAB提供了polyfit()函数命令进行最小二乘曲线拟合调用格式p=polyfitxyn[ps]=polyfitxyn[psmu]=polyfitxynxy为数据点,n为多项式阶数,返回p为幂次从高到低的多项式系数向量px必须是单调的矩阵s包括R(对x进行QR分解的三角元素)、df自由度)、normr残差)用于生成预测值的误差估计[psmu]=polyfitxyn在拟合过程中,首先对x进行数据标准化处理,以在拟合中消除量纲等影响,mu包含标准化处理过程中使用的x的均值和标准差polyval为多项式曲线求值函数,调用格式y=polyvalpx[yDELTA]=polyvalpxsy=polyvalpx为返回对应自变量x在给定系数P的多项式的值[yDELTA]=polyvalpxs使用polyfit函数的选项输出s得出误差估计YDELTA它假设polyfit函数数据输入的误差是__正态的,并且方差为常数则YDELTA将至少包含50%的预测值如下给定数据的拟合曲线x=[
0.
51.
01.
52.
02.
53.0],y=[
1.
752.
453.
814.
807.
008.60]解__TLAB程序如下x=[
0.
51.
01.
52.
02.
53.0];y=[
1.
752.
453.
814.
807.
008.60];p=polyfitxy2x1=
0.5:
0.05:
3.0;y1=polyvalpx1;plotxy*rx1y1-b运行结果如图1计算结果为p=
0.
56140.
82871.1560即所得多项式为y=
0.5614x^2+
0.08287x+
1.15560图1最小二乘法曲线拟合示例对比检验拟合的有效性例在[0π]区间上对正弦函数进行拟合,然后在[02π]区间画出图形,比较拟合区间和非拟合区间的图形,考察拟合的有效性在__TLAB中输入如下代码clearx=0:
0.1:pi;y=sinx;[pmu]=polyfitxy9x1=0:
0.1:2*pi;y1=sinx1;%实际曲线y2=polyvalpx1;%根据由区间0到pi上进行拟合得到的多项式计算0到2pi上的函数值,%需要注意的是polyval()返回的函数值在pi到2pi上并没有进行拟合plotx1y2k*x1y1k-运行结果p=
0.
00000.0000-
0.
00030.
00020.
00800.0002-
0.
16680.
00001.
00000.0000mu=R:[10x10double]df:22normr:
1.6178e-07__TLAB的最优化工具箱还提供了lsqcurvefit()函数命令进行最小二乘曲线拟合Solvenonlinearcurve-fittingdata-fittingproblemsinleast-squaressense调用格式x=lsqcurvefitfunx0xdataydatax=lsqcurvefitfunx0xdataydatalbubx=lsqcurvefitfunx0xdataydatalbuboptionsx=lsqcurvefitproblem[xresnorm]=lsqcurvefit...[xresnormresidual]=lsqcurvefit...[xresnormresidualexitflag]=lsqcurvefit...[xresnormresidualexitflagoutput]=lsqcurvefit...[xresnormresidualexitflagoutputlambda]=lsqcurvefit...[xresnormresidualexitflagoutputlambdajacobian]=x0为初始解向量;xdata,ydata为满足关系ydata=Fxxdata的数据;lb、ub为解向量的下界和上界,若没有指定界,则lb=[],ub=[];options为指定的优化参数;fun为拟合函数,其定义方式为:x=lsqcurvefit@myfunx0xdataydata,其中myfun已定义为functionF=myfunxxdataF=…%计算x处拟合函数值fun的用法与前面相同;resnorm=sumfunxxdata-ydata.^2,即在x处残差的平方和;residual=funxxdata-ydata,即在x处的残差;exitflag为终止迭代的条件;output为输出的优化信息;lambda为解x处的Lagrange乘子;jacobian为解x处拟合函数fun的jacobian矩阵例lsqcurvefit优化程序Data=...[
0.
00005.__
550.
10003.
56390.
20002.
51730.
30001.
97900.
40001.__
900.
50001.
39380.
60001.
13590.
70001.
00960.
80001.
03430.
90000.
84351.
00000.
68561.
10000.
61001.
20000.
53921.
30000.
39461.
40000.
39031.
50000.
54741.
60000.
34591.
70000.
13701.
80000.
22111.
90000.
17042.
00000.2636];t=Data:1;y=Data:2;%axis[02-
0.56]plottyrotitleDatapoints%Wewouldliketofitthefunctiony=c1*exp-lam1*t+c2*exp-lam2*ttothedata%Thelsqcurvefitfunctionsolvesthistypeofproblemeasily.%Tobegindefinetheparametersintermsofonevariablex:%x1=c1%x2=lam1%x3=c2%x4=lam2%Thendefinethecurveasafunctionoftheparametersxandthedatat:F=@xxdatax1*exp-x2*xdata+x3*exp-x4*xdata;x0=
[1110];[xresnorm~exitflagoutput]=lsqcurvefitFx0tyholdonplottFxtholdoffFsumsquares=@xsumFxt-y.^2;opts=optimsetLargeScaleoff;[xuncressquaredeflagoutputu]=...fminuncFsumsquaresx0optsfprintf[Therewere%diterationsusingfminunc...and%dusinglsqcurvefit.\n]...outputu.iterationsoutput.iterationsfprintf[Therewere%dfunctionevaluationsusingfminunc...and%dusinglsqcurvefit.]...outputu.funcCountoutput.funcCounttypefitvectorx02=
[10];F2=@xtfitvectorxty;[x2resnorm2~exitflag2output2]=lsqcurvefitF2x02tyfprintf[Therewere%dfunctionevaluationsusingthe2-d...formulationand%dusingthe4-dformulation.]...output
2.funcCountoutput.funcCountx0bad=
[5110];[xbadresnormbad~exitflagbadoutputbad]=...lsqcurvefitFx0badtyholdonplottFxbadtglegendDataGlobalfitBadlocalfitLocationNEholdofffprintf[Theresidualnormatthegoodendingpointis%f...andtheresidualnormatthebadendingpointis%f.]...resnormresnormbaddisplayEndOfDemoMessagemfilename拟合效果如下直线的最小二乘拟合y=a+bx式中有两个待定参数,a代表截距,b代表斜率对于等精度测量所得到的N组数据(xi,yi),i=1,2……,N,xi值被认为是准确的,所有的误差只__着yi下面利用最小二乘法把观测数据拟合为直线用最小二乘法估计参数时,要求观测值yi的偏差的加权平方和为最小对于等精度观测值的直线拟合来说,可使下式的值最小上式分别对a、b求偏导得整理后得到方程组解上述方程组便可求得直线参数a和b的最佳估计值
1、可看成是一阶多项式拟合,跟前面曲线拟合方法一样
2、利用linefit函数进行最小二乘的直线拟合使用clearx=[
0.
511.
522.53];y=[
1.
752.
453.
814.
888.6];[kb]=linefitxy%得到斜率k和常数by1=polyval[kb]x;plotxy1’k-’xy’k*’__TLAB一元到多元线性回归方程的计算和检验_百度文库研究生数理统计多元线性回归及显著性检验__tlab程序__版_百度文库。