Matlab曲线拟合(3)(自用笔记)

一、利用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('拟合图像')


版权声明:本文为ZJS_156原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。