无约束优化算法:单纯形法

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

单纯形法

1. 算法原理

单纯形法的基本思想是:

设(0)(1)(),,...,n x x x 是n R 中的1n +个点,构成一个当前的单纯形,max min ,x x 定义如下:

{}(0)(1)()max ()max (),(),...,()n f x f x f x f x =

{}(0)(1)()min ()min (),(),...,()n f x f x f x f x = 记x 为这个单纯形除去max x 外的所有顶点的形心,

()max 01n i i x x x n =⎛⎫=- ⎪⎝⎭

∑ 取max x 关于x 的反射点(1)n x +,(1)max ()n x x x x +=+-构成新的单纯形,反复上述过程,直到达到停止条件。

2. 函数min f search

1) 函数语法

min (,0)x f search fun x =

min (,0,)

[,]min (...)

[,,]min (...)

[,,,]min (...)

x f search fun x options x fval f search x fval exitflag f search x fval exitflag output f search ====

函数输入: fun :目标函数

0x :迭代初始点

options :函数参数设置

函数输出:

x :最优点

fval :最优点对应的函数值

exitflag :函数停止信息

1:函数收敛正常停止

0:迭代次数,目标函数计算次数达到最大数

-1:算法被输出函数停止

output :函数运算信息

2)函数使用

BanaFun m

(1)目标函数程序.

function f BanaFun x

=不含导数解析式

()()

f x x x

=-+-

100*((2)(1)^2)^2(1(1))^2

-函数不需要导数信息。

Nelder Mead Simplex

SimplexUnc m

(2)算法参数设置:.

('arg','','','','',250,'','') =

options optimset L eScale off gradobj off MaxFunEvals display iter

SimplexUnc m

(3)函数调用运算:.

=

('arg','','','','',250,'','') options optimset L eScale off gradobj on MaxFunEvals display iter

x=-

[ 1.9,2]

x fval exitflag output f search BanaFun x options

=

[,,,]min(@,,)

3)计算结果

Iteration Func-count min f(x) Procedure

0 1 267.62

1 3 236.4

2 initial simplex

2 5 67.2672 expand

3 7 12.2776 expand

4 8 12.2776 reflect

5 10 12.277

6 contract inside

6 12 6.76772 contract inside

7 13 6.76772 reflect

8 15 6.76772 contract inside

9 17 6.76772 contract outside

10 19 6.62983 contract inside

11 21 6.55249 contract inside

12 23 6.46084 contract inside

13 24 6.46084 reflect

14 26 6.46084 contract inside

15 28 6.45544 contract outside

16 30 6.42801 expand

17 32 6.40994 expand

18 34 6.32449 expand

19 36 6.28548 expand

20 38 6.00458 expand

21 39 6.00458 reflect

22 41 5.43287 expand

24 44 4.63434 expand

25 45 4.63434 reflect

26 47 4.63434 contract inside

27 49 4.63434 contract outside

28 51 4.31027 expand

29 53 4.31027 contract inside

30 55 4.00991 expand

31 56 4.00991 reflect

32 58 3.55664 expand

33 59 3.55664 reflect

34 61 3.23438 reflect

35 63 3.23438 contract inside

36 65 2.9515 expand

37 67 2.82878 reflect

38 69 2.56426 reflect

39 71 2.54453 contract outside

40 73 2.43615 reflect

41 75 2.34358 reflect

42 77 2.28129 reflect

43 79 2.21473 reflect

44 81 2.08627 reflect

45 82 2.08627 reflect

46 84 1.86677 reflect

47 86 1.86677 contract inside

48 88 1.80424 reflect

49 90 1.58432 expand

50 91 1.58432 reflect

51 93 1.27128 expand

52 94 1.27128 reflect

53 96 1.05673 reflect

54 98 1.05673 contract inside

55 100 0.816708 expand

56 102 0.816708 contract inside

57 104 0.816708 contract inside

58 106 0.760575 reflect

59 108 0.601009 expand

60 110 0.601009 contract inside

61 112 0.516477 reflect

62 114 0.516477 contract inside

63 115 0.516477 reflect

64 117 0.416316 expand

65 119 0.416316 contract inside

66 120 0.416316 reflect

相关文档
最新文档