一、利用lsqcurvefit函数进行自定义拟合
函数一般形式 f = lsqcurvefit(fun, x0, xdata, ydata, lb, ub)
fun: 符号函数
x0: 初始解向量,即要拟合参数的初始值
xdata: 输入的x数据
ydata: 输入的y数据
lb,ub:解向量的上下界限,lb <= x0 <= ub,若没有要求,就设为空lb=[ ],ub=[ ]
二、函数的返回值
[x , resnorm, residual, exitflag, output] = lsqcurvefit()
x: 求解得到的拟合参数解向量
resnorm: 残差的平方和 sum((fun(x0, xdata)-ydata)^2)
residual: 残差 fun(x0, xdata)-ydata
exitflag: 迭代停止条件
output: 输出的优化信息
三、代码举例与图像绘制展示
clc;
xdata = 0:10:100;
ydata =[100.0 81.9 67.0 54.8 44.9 36.8 30.1 24.7 20.2 16.5 13.5];
fun = @(x,xdata)x(1)*exp(-x(2)*xdata);
x0 = [100,0];
[x,resnorm,residual,exitflag,output] = lsqcurvefit(fun,x0,xdata,ydata);
xi = 0:2:100;
yi = fun(x, xi);
plot(xdata,ydata,'r*',xi,yi,'b-');
xlabel('x轴数据'); ylabel('y轴数据')
title('拟合图像')