实用最优化方法Matlab程序设计.doc

实用最优化方法Matlab程序设计.doc

ID:55768700

大小:405.00 KB

页数:25页

时间:2020-06-06

实用最优化方法Matlab程序设计.doc_第1页
实用最优化方法Matlab程序设计.doc_第2页
实用最优化方法Matlab程序设计.doc_第3页
实用最优化方法Matlab程序设计.doc_第4页
实用最优化方法Matlab程序设计.doc_第5页
资源描述:

《实用最优化方法Matlab程序设计.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用最优化方法Matlab程序设计程序如下:functionlambda=nonexact(x0,s0)g0=grad(x0);f0=f(x0);a=0;c1=0.1;c2=0.5;lambdak=1;sk=s0;d=-c1*lambdak*g0'*sk;xk=x0+lambdak*sk;f1=f(xk);e=f0-f1;whiled>elambdak=(lambdak+a)/2;xk=x0+lambdak*sk;fk=f(xk);e=f0-fk;d=-c1*lambdak*g0'*sk;endlambdakfunctiong=grad(x)g=zeros(2,1);

2、g(1)=-4*x(1)*(x(2)-x(1)^2)-2*(1-x(1));g(2)=2*(x(2)-x(1)^2);functionfa=f(x)fa=(x(2)-x(1)^2)^2+(1-x(1))^2;在命令窗口中输入x0=[0;1];s0=[-1;1];nonexact(x0,s0)输出结果为:程序如下:functionx_star=cong(x0,eps)g0=grad(x0);res0=norm(g0);resk=res0;k=0;xk=x0;whileresk>epsk=k+1;ifk==1sk=-grad(xk);elsesk=-grad(xk)+re

3、sk^2/res0^2*s0;endlambdak=step(xk,sk);x0=xk;xk=x0+lambdak*sk;res0=resk;resk=norm(grad(xk));s0=sk;fprintf('------the%d-thiteration,theresidualis%f,thelambdakis%f',k,resk,lambdak);endx_star=xk;disp('theoptimalsolutionis');x_star%subfunctionsfunctiong=grad(x)g=zeros(4,1);g(1)=2*x(1)-2*

4、x(2)+2;g(2)=4*x(2)-2*x(1)-x(3)+3;g(3)=2*x(3)-x(2)-1;g(4)=2*x(4);functionlambda=step(x,s)a=2*x(1)*s(1)-2*x(2)*s(1)-2*x(1)*s(2)+4*x(2)*s(2)+2*s(3)*x(3)+2*x(4)*s(4)-s(2)*x(3)-s(3)*x(2)+2*s(1)+3*s(2)-s(3);b=2*s(1)^2+4*s(2)^2-4*s(1)*s(2)+2*s(3)^2+2*s(4)^2-2*s(2)*s(3);lambda=-a/b;在命令窗口中输入x0=[

5、0;0;0;0];eps=1e-6;cong(x0,eps)输出结果为-当=时程序如下:functionx_star=dfph(x0,eps)g0=grad(x0);res0=norm(g0);res=res0;k=0;xk=x0;whileres>epsk=k+1;H=eye(length(x0));sk=-H*grad(xk);lambdak=nonexact(xk,sk);x0=xk;xk=x0+lambdak*sk;res=norm(grad(xk));fprintf('------the%d-thiteration,theresidualis%f,thela

6、mbdakis%f',k,res,lambdak);endx_star=xk;disp('theoptimalsolutionis');x_starfunctionlambda=nonexact(x0,s0)g0=grad(x0);f0=f(x0);a=0;c1=0.1;c2=0.5;lambdak=1;d=-c1*lambdak*g0'*s0;xk=x0+lambdak*s0;f1=f(xk);e=f0-f1;whiled>elambdak=(lambdak+a)/2;xk=x0+lambdak*s0;fk=f(xk);e=f0-fk;d=-c1*lambd

7、ak*g0'*s0;endlambda=lambdak;functiong=grad(x)g=zeros(2,1);g(1)=2*x(1)*exp(x(1)^2+x(2)^2)+1;g(2)=4*x(2)+2*x(2)*exp(x(1)^2+x(2)^2);functionfa=f(x)fa=x(1)+2*x(2)^2+exp(x(1)^2+x(2)^2);在命令窗口中输入x0=[0;1];eps=1e-3;dfph(x0,eps)输出结果为:当时程序如下:functionx_star=newton1(x0,eps)g0=grad(x0);res0=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。