基本上只要你知道函数形式都可以拟合的。matlab有一个cftool工具箱,很方便。当然用函数也比较不错。例如用lsqcurvefit。
x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)
例如:拟合y=a*e^(b*x)。拟合a,b
定义拟合函数
function F = myfun(x,xdata)
F = x(1)*exp(x(2)*xdata);
在命令窗口输入:
xdata = [0.9 1.5 13.8 19.8 24.1 28.2 35.2 60.3 74.6 81.3];
ydata = [455.2 428.6 124.1 67.3 43.2 28.1 13.1 -0.4 -1.3 -1.5];
x0 = [100; -1] % 初始点
[x,resnorm] = lsqcurvefit(@myfun,x0,xdata,ydata);
得:
x =
498.8309 -0.1013%即a,b的值
resnorm =
9.5049