正在加载图片...
非线性最小二乘法(x)=y.-f(,x) min R(x)=r(xr(x) r(x)=(r(x),r(x)) 非线性最小二乘法minR(x)=r(x)r(x) [x, resnorm, res, exit, out, lambda, jacob] 例3用下面一组数据拟合系数rk c(t=re- [x, resnorm, res, exitf, out, lambda, jacob] P1,P2 输入的用法与 Eminunc类似,但注意 1921115314101284937415241301 f.m~f(x)的m文件名:func fun,m~x(x)的m文件名; function r=fun(x,t,y) 输出 reson=(x)T*x(x),xes=r(x)(误差向量) 控制精度,观察中间结果,控制选代次数等 主要控制参数(对大规模/中等规模算法均有效) options控制参敷设定/莪取: optinet; optimget Diagnostics'on’I('off'}//是否显示诊断信惠 //显示控制参数 off I 'iter fina1’| notify、//显示信的级 optimset optfun//显示 optfun的控制参数 Grado] on’t'off}//是否用分析度 opt=optimise //挫制参敷设为[(即缺省值 on’|【。ff pt= optinet( optfun)// optfun拉制李数设缺省值 //乘用分析Jacb阵(用子约来优化中) Opt-optimset('parl', vall,'par2, val2,.) off//是否采用大规模算法 Opt=optimset(oldopts,'parl, vall,.) axFunEva1s最大画数调用次舭 最大速代次数 约的控制精度(用于约乘优化中 val=optimget(opt, 'par1,'par2,) T。1Eun 函敷值的控制精度 val=optimget(opt,'parl,'par2 default) Tol 解的控制精度 (学学奖 (学学 更多输出:最优值等 最一般的输出形式 4 min a=10.b=1 [x, f, exitflag, out ]=fminu 目标函数值 用。 ptimset控制参教选择 exits1ag>0收做,0达到函敷成选代次敷,<0不收做 Output iterations实际选代次敷 实际函训用次敷 gorithm 实际采用的其法 cgiterations实际Pc选代次数(大规模算法用) firstorderopt一阶最优条件(梯度的范数) grad目标画数的梯度 hess标函教的 Hessian矩阵5 非线性最小二乘法 min R(x) r (x)r(x) T lb x ub = ≤ ≤ r ( x) y f (t , x) i = i − i T n r(x) (r (x), r (x)) = 1 L [x,resnorm,res,exitf,out,lambda,jacob]= lsqnonlin(@fun,x0,lb,ub,options,P1,P2,…) 输入的用法与fminunc类似,但注意: f.m~f(x)的m文件名: function y=f(x,t) fun.m~r(x)的m文件名: function r=fun(x,t,y) 输出 resnom=r(x)T*r(x), res=r(x)(误差向量) [x,resnorm,res,exitf,out,lambda,jacob]= lsqcurvefit(@f,x0,t,y,lb,ub,options,P1,P2,…) 非线性最小二乘法 min R(x) r (x)r(x) T lb x ub = ≤ ≤ c 19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01 t 0.25 0.5 1 1.5 2 3 4 6 8 kt c t re − ( ) = 例3 用下面一组数据拟合系数r, k : exam0703fit.m exam0703lsq.m 控制精度,观察中间结果,控制迭代次数等 Optimset //显示控制参数 optimset optfun //显示optfun的控制参数 opt=optimset //控制参数设为[](即缺省值) opt=optimset(optfun)//optfun控制参数设缺省值 Opt=optimset('par1',val1,'par2',val2,...) Opt=optimset(oldopts,'par1',val1,...) opt=optimset(oldopts,newopts) val=optimget(opt,'par1','par2',…) val=optimget(opt,'par1','par2',…, default) Options 控制参数设定/获取: optimset; optimget Diagnostics ‘on’ | {‘off’} //是否显示诊断信息 Display 'off' | 'iter' | ‘final’ | ‘notify‘ //显示信息的级别 GradObj ‘on’ | {‘off’}//是否采用分析梯度 Jacobian ‘on’ | {‘off’} //采用分析Jacob阵(用于约束优化中) LargeScale ‘on’ | {‘off’}//是否采用大规模算法 MaxFunEvals 最大函数调用次数 MaxIter 最大迭代次数 TolCon 约束的控制精度(用于约束优化中) TolFun 函数值的控制精度 TolX 解的控制精度 主要控制参数(对大规模/中等规模算法均有效) 最一般的输出形式 [x,f,exitflag,out,grad,hess]=fminunc(...) 更多输出:最优值等 f 目标函数值 exitflag >0收敛,0达到函数或迭代次数, <0不收敛 Output iterations 实际迭代次数 funcCount 实际函数调用次数 algorithm 实际采用的算法 cgiterations 实际PCG迭代次数(大规模算法用) stepsize 最后迭代步长(中等规模算法用) firstorderopt 一阶最优条件(梯度的范数) grad 目标函数的梯度 hess 目标函数的Hessian矩阵 例 4 min , 10, 1 2 2 2 1 + a = b = b x a x Exam0704.m 用optimset控制参数选择
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有