matlab入门第三讲.ppt

例2 用下面一组数据拟合 中的参数a,b,k 该问题即解最优化问题: 1)编写M文件 curvefun1.m function f=curvefun1(x,tdata) f=x(1)+x(2)*exp(-0.02*x(3)*tdata) %其中 x(1)=a; x(2)=b;x(3)=k; 2)输入命令 tdata=100:100:1000; cdata=1e+03*[4.54,4.99,5.35,5.65,5.90,6.10, 6.26,6.39,6.50,6.59]; x0=[0.2,0.05,0.05]; x=lsqcurvefit (curvefun1,x0,tdata,cdata) f= curvefun1(x,tdata) F(x,tdata)= ,x=(a,b,k) 解法1. 用命令lsqcurvefit 3)运算结果为: f =0.0043 0.0051 0.0056 0.0059 0.0061 0.0062 0.0062 0.0063 0.0063 0.0063 x = 0.0063 -0.0034 0.2542 4)结论:a=0.0063, b=-0.0034, k=0.2542 2.优化函数的输入变量 使用优化函数或优化工具箱中其他优化函数时, 输入变量见下表: 用MATLAB解无约束优化问题 其中等式(3)、(4)、(5)的右边可选用(1)或(2)的等式右边. 函数fminbnd的算法基于黄金分割法和二次插值法,它要求目标函数必须是连续函数,并可能只给出局部最优解. 常用格式如下: (1)x= fminbnd (fun,x1,x2) (2)x= fminbnd (fun,x1,x2 ,options) (3)[x,fval]= fminbnd(…) (4)[x,fval,exitflag]= fminbnd(…) (5)[x,fval,exitflag,output]= fminbnd(…) 主程序为wliti1.m: f=2*exp(-x)*sin(x); fplot(f,[0,8]); %作图语句 [xmin,ymin]=fminbnd (f, 0,8) f1=-2*exp(-x)*sin (x); [xmax,ymax]=fminbnd (f1, 0,8) 要注意函数取了原来的相反符号形式 例2 有边长为3m的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大? 解 先编写M文件fun0.m如下: function f=fun0(x) f=-(3-2*x)^2*x; 主程序为wliti2.m: [x,fval]=fminbnd(fun0,0,1.5); xmax=x fmax=-fval 运算结果为: xmax = 0.5000,fmax =2.0000.即剪掉的正方形的边长为0.5m时水槽的容积最大,最大容积为2m3. 命令格式为: (1)x= fminunc(fun,X0 );或x=fminsearch(fun,X0 ) (2)x= fminunc(fun,X0 ,options); 或x=fminsearch(fun,X0 ,options) (3)[x,fval]= fminunc(...); 或[x,fval]= fminsearch(...) (4)[x,fval,exitflag]= fminunc(...); 或[x,fval,exitflag]= fminsearch (5)[x,fval,exitflag,output]= fminunc(...); 或[x,fval,exitflag,output]= fminsearch(...) 2.多元函数无约束优化问题 标准型为:min [3] fminunc为中型优化算法的步长一维搜索提供了两种算法,由选项中参数LineSearchType控制: LineSearchType=‘quadcubic’ (缺省值),混合的二次和三次多项式插值; LineSearchType=cubicpoly,三次多项式插 使用fmin

文档评论(0)

1亿VIP精品文档

相关文档