最小二乘法非线性曲线参数拟合-最小二乘法原理及其MATLAB实现.pdf
(初学者--我)最近正在研究matlab最小二乘法非线性拟合问题,昨天在论坛里求教,但没有人给予解答。只好自己查找相关文献,觉得其中最有用的一篇论文《最小二乘法原理及其MATLAB实现》(见附件),该文可读性强,初学者容易看懂和模仿。这里,我再补充一些,就是对于多个自变量,lsqcurvefit函数的使用方法,同样采用该文献的待拟合函数,将函数的一个自变量变为多个自变量,即y=a1*x1^2 a2*sin a3*x3^3.
建立脚本文件inputdata.m
%inputdata
x=[3.6,7.7,9.3,4.1,8.6,2.8,1.3,7.9,10.0,5.4;...
3.6,7.7,9.3,4.1,8.6,2.8,1.3,7.9,10.0,5.4;...
3.6,7.7,9.3,4.1,8.6,2.8,1.3,7.9,10.0,5.4];
y=[16.5,150.6,263.1,24.7,208.5,9.9,2.7,163.9,325.0,54.3];
a0=[0 0 0];
lup=[1 1 1]; % 这里可以不用
ldown=[0 0 0];
建立函数文件myfun.m
function F=myfun
x1=x;
x2=x;
x3=x;
F=a*x1.^2 a*sin a*x3.^3;
在GUI输入
>> inputdata
>> a=lsqcurvefit
Optimization terminated: relative function value
changing by less than OPTIONS.TolFun.
a =
0.2269 0.3385 0.3021