MATLAB的最优化工具箱中提供了lsqcurvefit()函数,可以解决最小二乘曲线拟合的问题,改函数的调用格式为:
[a,J]=lsqcurvefit(Fun,a0,x,y)
其中,Fun未原型函数的MATLAB表示,a0未最优化的初值,x,y为原始输入输出数据向量,调用该函数将可以返回待定系数向量a以及在此待定系数下的目标函数的值J.(详细可以输入 help lsqcurvefit)
具体做法是:
>>U1=inline('f(a,w)','a','w') %用a(i)分别代替六个未知数,i=1~6.
>>[xx,res]=lsqcurvefit(U1,[1 1 1 1 1 1],w,U); xx' % w和U是你试验得出来的数据向量。
结果应该会出现一个ans 向量(6维),分别就是你所要待定的系数a(i)了