最优化实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《最优化方法及其应用》

课 程 实 验 报 告

一、 实验内容

项目一 一维搜索算法(一) [实验目的]

编写加步探索法、对分法、Newton 法的程序。

[实验学时]

2学时

[实验准备]

1.掌握一维收搜索中搜索区间的加步探索法的思想及迭代步骤;

2.掌握对分法的思想及迭代步骤;

3.掌握Newton 法的思想及迭代步骤。

[实验内容及步骤]

编程解决以下问题:

1.用加步探索法确定一维最优化问题

12)(min 30+-=≥t t t t ϕ

的搜索区间,要求选取2,1,000===αh t .

2.用对分法求解

)2()(min +=t t t ϕ,

已知初始单谷区间]5,3[],[-=b a ,要求按精度3.0=ε,001.0=ε分别计算.

3.用Newton 法求解

12)(min 3+-=t t t ϕ,

已知初始单谷区间]1,0[],[=b a ,要求精度01.0=ε.

项目二 一维搜索算法(二)

[实验目的]

编写黄金分割法、抛物线插值法的程序。

[实验学时]

2学时

[实验准备]

1.掌握黄金分割法的思想及迭代步骤;

2.掌握抛物线插值法的思想及迭代步骤。

[实验内容及步骤]

编程解决以下问题:

1.用黄金分割法求解

)2()(min +=t t t ϕ,

已知初始单谷区间]5,3[],[-=b a ,要求精度001.0=ε.

2.用抛物线插值法求解

3728)(min 23+--=x x x x f ,

已知初始单谷区间001.0]20[][==ε,,,

b a .

项目三 常用无约束最优化方法(一)

[实验目的]

编写最速下降法、Newton 法(修正Newton 法)的程序。

[实验学时]

2学时

[实验准备]

1.掌握最速下降法的思想及迭代步骤。

2.掌握Newton 法的思想及迭代步骤;

3.掌握修正Newton 法的思想及迭代步骤。

[实验内容及步骤]

编程解决以下问题:

1.用最速下降法求

22120min ()25[22]0.01T f X x x X ε=+==,,,.

2.用Newton 法求

22121212min ()60104f X x x x x x x =--++-,

初始点

0[00]0.01T X ε==,,. 3.用修正Newton 求

221212min ()4(1)2(1)10f X x x x x =++-+++,

初始点

0[00]0.01T X ε==,,.

项目四 常用无约束最优化方法(二)

[实验目的]

编写共轭梯度法、变尺度法(DFP 法和BFGS 法)程序。

[实验学时] 2学时

[实验准备]

1.掌握共轭方向法的思路及迭代过程;

2.掌握共轭梯度法的思想及迭代步骤;

3.掌握DFP 法和BFGS 法的思想及迭代步骤。

[实验内容及步骤]

编程解决以下问题:

1.用共轭梯度法求得)4min(2221x x +,取初始点T X ]11[0,=,01.0=ε.

2.用共轭梯度法求

221212min ()2f X x x x x =+-,自定初始点,01.0=ε. 3.用DFP 法求2212min ()4(5)(6)f X x x =-+-,初始点

01.0]98[0==ε,,T X . 项目五 常用约束最优化方法

[实验目的]

编写外点罚函数法、外点罚函数法的程序。

[实验学时]

2学时

[实验准备]

1.掌握外点罚函数法的思想及迭代步骤;

2.掌握内点罚函数法的思想及迭代步骤。

[实验内容及步骤]

编程解决以下问题:

1.用外点罚函数法编程计算

⎩⎨⎧=-+=≥=+-=,,,

01)(0ln )(..)(min 2112121x x X h x X g t s x x X f

精度5

10-=ε.

2.用内点罚函数法编程计算 ⎩⎨⎧≥≥-⎥⎦

⎤⎢⎣⎡++.,,001..)1(31min 21231x x t s x x

初始点取为T X ]43[0,=,初始障碍因子取101=u ,缩小系数取1.0=c .

二、 实验主要步骤

首先用VC 为每一个项目新建一个工程,再新建一个c++源文件 再把有关头文件包含进去,有关头文件的定义 :

#include

#include

#include

三、程序清单

项目一

(1)//函数f(t)=t^3-2t+1

double f1(double t){

double y;

y=t*t*t-2*t+1;

return y;

}

//加步探索法

double jiabu(double t,double h,double e){

double t0,

t1,y;t0=t;

do{

t1=t0+h;

if(f1(t1)

h=2*h;}

else{

if(fabs(h)

{ y=t0;break;}

相关文档
最新文档