QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3636|回复: 0
打印 上一主题 下一主题

复合形法求解约束最优化Fortran代码

[复制链接]
字体大小: 正常 放大

2620

主题

162

听众

1万

积分

升级  0%

  • TA的每日心情
    开心
    2015-3-12 15:35
  • 签到天数: 207 天

    [LV.7]常住居民III

    社区QQ达人 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组第六届国赛赛前冲刺培

    群组国赛讨论

    群组2014美赛讨论

    群组2014研究生数学建模竞

    群组数学中国试看培训视频

    跳转到指定楼层
    1#
    发表于 2015-1-12 11:16 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    !* 说明: 1.本程序为复合形法                                                                          *% B% R' E! T  `$ O
    !*                                                                                                        *
    6 W6 I6 D+ D$ i( t!*       2.程序功能是求解约束最优化问题                                                              *
    # ]: R" i4 h# M3 ~/ b!*   max F(x1,x2,…,xn)                                                               *
    . R: W; G# n+ I$ j9 a!*        s.t.        Gi≤xi≤Hi                                                              *
    0 {1 z: F& x7 g- ?!*      其中 x1,x2,…,xn为独立自变量,                                                              *( v$ S8 d, H0 t" \! `$ {
    !*       xn+1~xm为隐式变量,是x1,x2,…,xn的函数,Gi,Hi为下界和上界,它们可以是常数(显式约束),*
    - P1 f! B3 e2 _, g2 M!*  也可以是自变量的函数(隐式约束)                                                            *3 P' V( X* c. q  @. c% m  i
    !* 主程序中提供自变量的初始值,输入已知参数及打印最后结果                                            *
    7 y* S+ y3 y3 y* `!*                                                                                                        *6 Y: k0 }  p% l6 ?  T& h" R, l
    !*       3.输入变量说明                                                                              *
    - x+ j9 {4 j( q2 `5 G!*  N--显式自变量数                                                                           *$ ~! E' W3 e& ]
    !*  M--约束组数                                                                               *+ @" C! Z; n6 K) P3 J: @4 G
    !*  K--构成复合形的顶点数,常用N+1,可多取                                                      *4 @6 j+ Y! V: Y* ?7 |# X) b9 W1 H* w
    !*  ITMAX--允许最多迭代次数                                                                   *
    # S5 j7 c3 k2 \0 k! U3 C. T2 v!*  IPRINT--打印控制参数,IPRINT=1,打印中间结果,IPRINT=0,不打印中间结果                        *
    ) O- p6 l, |) N: I2 N!*  ALPHA--反射因子,常用1.3                                                                   *: ?% O& r& u* o
    !*  BETA--收敛参数,例如函数的幅值乘1E-4                                                       *
    ' N6 I8 U5 E3 _# A1 q. R!*  GAMMA--收敛参数,整数,常用值为5                                                            *
    9 J2 c8 A! o, m) R" E3 {$ Z!*  DELTA--显式约束违反校正,小正数,如X向量幅值乘1E-4                                          *9 }. n9 ?& B: o/ k
    !*  X(1,J)--自变量初始可行点,=1,N                                                             *2 v, w! Q6 e$ v3 |6 c
    !*                                                                                                      *
    6 n5 u: k5 A0 Z2 a+ g5 P!*      4.输出变量说明                                                                               *
    1 F1 z3 |# m: I. w$ ]% u' ?+ b# s!*  F--目标函数最大值勤                                                                       *
    - K) U6 B' y- g0 U!*  X(I)--自变量最优值,I=1,N                                                                  ** d2 [: @) G! Q8 Z# f5 @2 U
    !*                                                                                                      *
    / s. T& C5 Q3 [( @5 ^!*      5.使用方法                                                                                   *
    / b  c0 ~+ F' U!*  1)用户按照待解问题修改主程序PARAMETER的N,M,K值                                            *
    - ]1 |& B% [0 Q  a!*  2)在子程序FUNC中给定目标函数                                                              */ k1 `% t4 G* K2 k
    !*  3)在子程序CONST中给定Hi和Gi,显式约束必须放在隐式约束前面                                  *, u% b- m9 k4 j5 q, [- R
    !*  4)编写一个数据文件COMPDAT,文件中的数据依次为下列变量的值,每个数之间用逗号分开             *   ) ^; p: ]0 R; W" y
    !*      ITMAX,IPRINT,ALPHA,BETA,GAMMA,DELTA,X(1,1),X(1,2),…,X(1,N)                          *
    5 W) A  D; ?8 P( B: ^# Z!*      6.程序内容                                                                                   *
    8 R8 ^6 x' K+ h0 J!*  1)本程序由一个主程序和六个子程序组成,主程序首先给定N,M,K值,然后定义数组维数             *5 L6 T( p6 H$ |2 k' c. L
    !*   PARAMETER(N=,M=,K=)                                                               *+ H8 ~# Y' F6 _
    !*   DIMENSION X(K,M),R(K,N),F(K),G(M),H(M),XC(N)                                      *+ c' A& g7 [. q. u1 X9 g% O
    !*  主程序中提供自变量的初始值,输入已知参数及打印最后结果面                                  ** Q! ~) N: m5 U3 h. Y* I
    !*  2)各子程序的作用分别为了                                                                  *   
    0 g" e: [- v4 b% C!*      CONSX—这是一个主要子程序,调用其它于程序及输出中间结果                               *
    # _) g( `( T1 ~6 C  N- v. O1 v!*      CHECK—检查所有的点是否满足约束条件,对违背约束的点进行校正                            */ Z7 h; i" u" H
    !*      CENTR—计算中心点                                                                     */ t7 }; a$ E! x6 M. k3 Q
    !*      FUNC —目标函数,由用户提供                                                           *
    7 w/ s( J$ O% q6 ~8 J!*      CONST—规定显式和隐式约束                                                             *
    * |# o$ S3 ]! T7 w" |!*      RANDU—产生随机数                                                                     *
    : @% i( X" O/ m7 i!*************************************************************************************************$ Q/ V0 _* G: M4 A9 V! Q
    * E$ d1 D! T1 N: X
    游客,如果您要查看本帖隐藏内容请回复
    % J- `6 ^2 E; v5 l$ F6 Z! p- w

    9 ~& H/ t) Y- h+ O0 b
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-1-10 14:00 , Processed in 0.848879 second(s), 53 queries .

    回顶部