matlab的lsqnonlin()函数主要用于拟合非线性函数的系数,其处理方法是利用最小二乘法原理,使得函数的均方误差最小。lsqnonlin()函数基本使用格式:x = lsqnonlin(fun,x0,lb,ub,options) x——使用迭代法搜索最优参数,x可以是一个变量,也可以是多个变量fun——自定义函数,即非线性函数x0——x变量的迭代初值lb,ub——x值的上下限制值,即x值的范围设定,也可以是空矩阵【】options—— 使用optimoptions设置选项,可以参照matlab的使用手册使用实例: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]; fun = @(x)x(1)*exp(x(2)*xdata)-ydata;x0 = [100,-1];options = optimoptions(@lsqnonlin,'algorithm','trust-region-reflective');x = lsqnonlin(fun,x0,[],[],options)运行结果x = 498.8309 -0.1013 %即x1=498.8309,x2=-0.1013 ![](https://img.sogoucdn.com/v2/thumb/?appid=200698&url=https%3A%2F%2Fpic.wenwen.soso.com%2Fp%2F20180827%2F20180827060532-1258838780_jpeg_600_543_58695.jpg)
|