常用无约束最优化方法(一).doc

常用无约束最优化方法(一).doc

ID:55582529

大小:20.50 KB

页数:3页

时间:2020-05-18

常用无约束最优化方法(一).doc_第1页
常用无约束最优化方法(一).doc_第2页
常用无约束最优化方法(一).doc_第3页
资源描述:

《常用无约束最优化方法(一).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、项目三常用无约束最优化方法(一)[实验目的]编写最速下降法、Newton法(修正Newton法)的程序。[实验学时]2学时[实验准备]1.掌握最速下降法的思想及迭代步骤。2.掌握Newton法的思想及迭代步骤;3.掌握修正Newton法的思想及迭代步骤。[实验内容及步骤]编程解决以下问题:【选作一个】1.用最速下降法求.2.用Newton法求,初始点.最速下降法Matlab程序:clc;clear;symsx1x2;X=[x1,x2];fx=X(1)^2+X(2)^2-4*X(1)-6*X(2)+17;fxd1=[diff(

2、fx,x1)diff(fx,x2)];x=[23];g=0;e=0.0005;a=1;fan=subs(fxd1,[x1x2],[x(1)x(2)]);g=0;fori=1:length(fan)g=g+fan(i)^2;endg=sqrt(g);step=0;whileg>e    step=step+1;   dk=-fan;    %点x(k)处的搜索步长   ak=((2*x(1)-4)*dk(1)+(2*x(2)-6)*dk(2))/(dk(1)*dk(2)-2*dk(1)^2-2*dk(2)^2);   xu=x

3、+ak*dk;   x=xu;      %输出结果   optim_fx=subs(fx,[x1x2],[x(1)x(2)]);   fprintf(' x=[%d%d]optim_fx=%d',x(1),x(2),optim_fx);      %计算目标函数点x(k+1)处一阶导数值   fan=subs(fxd1,[x1x2],[x(1)x(2)]);     g=0;   fori=1:length(fan)       g=g+fan(i)^2;   end   g=sqrt(g);   end%输出结果op

4、tim_fx=subs(fx,[x1x2],[x(1)x(2)]);fprintf('最速下降法结果: x=[%d%d]optim_fx=%d',x(1),x(2),optim_fx);c++程序#include#include#include#includefloatgoldena(floatx[2],floatp[2]){floata;a=-1*(x[0]*p[0]+4*x[1]*p[1])/(p[0]*p[0]+4*p[1]

5、*p[1]);returna;}voidmain(){floata=0,x[2],p[2],g[2]={0,0},e=0.001,t;inti=0;x[0]=1.0;x[1]=1.0;p[0]=2*x[0];p[1]=8*x[1];g[0]=-p[0];g[1]=-p[1];printf("");while(sqrt(g[0]*g[0]+g[1]*g[1])>e&&i<=100){i=i+1;a=goldena(x,g);x[0]=x[0]+a*g[0];x[1]=x[1]+a*g[1];p[0]=2*x[0];p[

6、1]=8*x[1];g[0]=-p[0];g[1]=-p[1];t=float(sqrt(g[0]*g[0]+g[1]*g[1]));printf("第%d次t=%fx1=%ftx2=%fta=%f",i,sqrt(g[0]*g[0]+g[1]*g[1]),x[0],x[1],a);}printf("最优解为:x1=%f,x2=%f最优值为y=%f",x[0],x[1],x[0]*x[0]+4*x[1]*x[1]);}

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

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

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