线性最小二乘法是解决曲线拟合最常用的方法。基本思路是:
拟合的准则称为最小二乘准则,它是使 y i ( i = 1 , 2 , . . . , n ) y_i(i=1,2,...,n) yi(i=1,2,...,n)与 f ( x i ) f(x_i) f(xi)的距离差值的平方和最小。
1、系数 a k a_k ak的确定。
经过推演得到:
其中:
2、函数 r k ( x ) r_k(x) rk(x)的选取
面对已知的数据进行最小二乘拟合时,函数关系的选取很重要。确定两个变量之间的函数关系最常用的方法是:(1)通过机理分析,得到函数关系;(2)将已知的数据作图,通过图像直观判断。
常见的有:
最为稳妥的方法,也是最能够给论文添彩的方法,就是选择几种曲线分别拟合,然后比较,看哪条曲线的最小二乘指标 J J J最小。
1、解方程法
则编程的命令为: A = R / Y A=R/Y A=R/Y。
例题:已知 y = a + b ∗ x 2 y=a+b*x^2 y=a+b∗x2的经验公式,求对应的参数
//下面的数据是已知的
x=[19,25,31,38,44]';
y=[19.0,32.3,49.0,73.3,97.8]';
r=[ones(5,1),x.^2];
ab=r\y;
x0=19:0.1:44;
y0=ab(1)+ab(2)*x0.^2;
plot(x,y,'o',x0,y0,'r');
2、多项式拟合函数
如果取 [ r 1 ( x ) , r 2 ( x ) , . . . r m + 1 ( x ) ] = [ 1 , x , . . . , x m ] [r_1(x),r_2(x),...r_m+_1(x)]=[1,x,...,x^m] [r1(x),r2(x),...rm+1(x)]=[1,x,...,xm],即可以用如下的命令来拟合:
a=polyfit(x0,y0,m);//m为拟合多项式的次数
y=polyval(a,x);//计算多项式在x处的函数值
在无约束最优化问题中,目标函数由若干个函数的平方和构成,这类函数可以写成:
其中, [ x 1 , . . . x n ] T [x_1,...x_n]^T [x1,...xn]T,一般假设 m > = n m>=n m>=n,把极小化这类函数的问题称为最小二乘优化问题。
1、 l s q l i n lsqlin lsqlin函数
基础模型:
x=lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0);
例题:
x=[19,25,31,38,44]';
y=[19.0,32.3,49.0,73.3,97.8]';
r=[ones(5,1),x.^2];
ab=lsqlin(r,y);
x0=19:0.1:44;
y0=ab(1)+ab(2)*x0.^2;
plot(x,y,'o',x0,y0,'r');
2、 l s q c u r v e f i t lsqcurvefit lsqcurvefit函数
x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options);
//fun是定义函数F(x,xdata)的.m文件
3、 l s q n o n l i n lsqnonlin lsqnonlin函数
x=lsqnonlin(fun,x0,lb,ub,options);
//其中fun是定义向量函数F(x)的.m文件
4、 l s q n o n n e g lsqnonneg lsqnonneg函数
x=lsqnonneg(C,d,options);//求解非负的参数问题
司守奎,孙玺菁. 数学建模算法与应用. 北京:国防工业出版社,2011.