无约束最优化问题求解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目的:加快计算速度,改进搜索精度。 例6-16 [x,y]=meshgrid(0.5:0.01:1.5);z=100*(y.^2-x).^2+(1-x).^2; contour3(x,y,z,100),zlim([0,310]) f=@(x)100*(x(2)-x(1)^2)^2+(1-x(1))^2; ff=optimset;ff.TolX=1e-10;ff.TolFun=1e-20;x=fminunc(f,[0;0],ff) syms x1 x2;f=100*(x2-x1^2)^2+(1-x1)^2;J=jacobian(f,[x1,x2]) function [y,Gy]=c6fun3(x) y=100*(x(2)-x(1)^2)^2+(1-x(1))^2; Gy=[-400*(x(2)-x(1)^2)*x(1)-2+2*x(1);200*x(2)-200*x(1)^2]; ff.GradObj='on';x=fminunc(@c6fun3,[0;0],ff)
陈 刚
解析解法:适合单变量的最优化问题,解决方法为求导。 多变量解析解法非常复杂,一般不采用解析接法。 图解法:适合一元及二元函数的最优化问题,比较直观。 例6-13 syms t; y=exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5; y1=diff(y,t); ezplot(y1,[0,4]) hold on;x=[0:0.01:4];y=0;plot(x,y) t0=solve(y1),ezplot(y,[0,4]) y2=diff(y1);b=subs(y2,t,t0)
X=fminsearchbnd(Fun,x0,xm,xM)
%最简求解语句
[x, f, flag, out]=fminsearchbnd(Fun, x0, xm, Xm, opt, p1, p2,· · · )
例6-17
f=@(x)100*(x(2)-x(1)^2)^2+(1-x(1))^2;;xm=[2,3];xM=[4,6]; [x,f,flag,out]=fminsearchbnd(f,[0,0],xm,xM)
来自百度文库
现在还没有哪种算法能保证得出的解是真正的全局最优解。 只有多试几个初值,然后比较。 例6-15 f=@(t)exp(-2*t).*cos(10*t)+exp(-3*(t+2).*sin(2*t)); t0=1;[t1,f1]=fminsearch(f,t0) t0=0.1;[t2,f2]=fminsearch(f,t0) syms t; y=exp(-2*t).*cos(10*t)+exp(-3*(t+2).*sin(2*t)); ezplot(y,[0,2.5]);ylim([-0.6,1]) ezplot(y,[-0.5,2.5]);ylim([-2,1.2]),t0=0.2;[t2,f2]=fminsearch(f,t0)
MATLAB语言中提供了求解无约束最优化的函数: fminsearch()、fminunc(),二者的调用格式完全一致。 X=fminunc(Fun,x0) %最简求解语句
[x, f, flag, out]=fminunc(Fun, x0, opt, p1, p2,· · · ) %一般求解格式 例6-14 f=@(x)(x(1)^2-2*x(1))*exp(-x(1)^2-x(2)^2-x(1)*x(2)); x0=[2;1]; [x,f,flag,out]=fminsearch(f,x0) [x,f,flag,out]=fminunc(f,x0)