QQ登录

只需要一步,快速开始

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

[问题求助] 下载了《精通MATLAB最优化计算》书上的优化程序,用它来做杆机构的优化,我的目标函..

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

3

主题

4

听众

150

积分

升级  25%

  • TA的每日心情
    开心
    2012-11-3 11:34
  • 签到天数: 41 天

    [LV.5]常住居民I

    跳转到指定楼层
    1#
    发表于 2012-2-27 12:25 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    10体力
    想用里边的惩罚函数程序来算,我的目标函数是用for循环写的。不会导入。
    : m% ~, c& B2 h$ C  j" Q惩罚函数调用格式如下:. _/ V  q, {  _; x) D$ E) q
    function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)! C8 R1 l% H$ K' ^* o% o2 X- u
    %目标函数:f
    & U* d& ]# o2 c%不等式约束:g! l6 s2 G6 H. R# Z1 p: h
    %等式约束:h
    ; K) V. R7 W2 y. S% H; |%初始点:x0# e3 p; d; Y! k+ s) ]* e
    %罚因子:r0
    2 O0 P  H: a/ u' N0 u' X- S%缩小系数:c
      m* k7 h* M8 `" l) ^' c3 Z; z7 ?2 Q%自变量向量:var1 L6 R7 ]; p3 [) s8 ^
    %精度:eps3 a( s$ ~% }; K- d2 j
    %目标函数取最小值时的自变量的值:x
    9 n3 L$ D4 @, O+ k( r4 H; `3 T) g%目标函数的最小值:minf. s# O4 }( J/ D" ^# ~

    / j- q# S3 g' o+ _* K
    : r" r$ y, l+ H; d目标函数:" O: x+ y, ~. @! _8 K; A% u7 x- \
    function f=link_objfun1(x)* S) W7 j% {4 Q
    global L1 L5- r3 \; E) D7 J% a! R& V
    f=0;2 O3 T; {" u& s, j1 [9 d
    snti0=0;
    " ~+ f: j6 U/ Kfor i=0:5
    : t% L. ^0 c4 w) Z: _snti=snti0+pi/6*i/5;
    1 U% k) h# `; {2 a- e7 C* bfai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    7 x; h! J1 G4 T- l( i5 Vpsai=acos(2*(L1^2+x(1)^2+x(3)^2-x(2)^2-2*L1*x(1)*sin(snti+x(5)))/(x(3)*(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2));
    . L. S  e- N' }$ }% oif snti<=pi/2-x(5)  i- A( i* v. q. b) n* l4 r
       bati=fai+psai+acos(x(4)/x(3));
    - O* y. Q; m( {" R7 Celseif snti>pi/2-x(5)
    $ {8 {+ u) q* }   bati=-fai+psai+acos(x(4)/x(3));
    9 X0 r# Y' w. j" _3 }& |end
    - v: W- e: _) Q, u5 X! [f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;7 G4 j$ N9 q: Z7 k* t
    end
    $ {7 I  I2 _& q; h2 O6 Z6 r# I2 b
    % o. D  I' K6 @2 [& k! J
    请诸位帮帮忙,我的体力不多。

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    1341

    主题

    738

    听众

    2万

    积分

    数学中国总编辑

  • TA的每日心情
    衰
    2016-11-18 10:46
  • 签到天数: 206 天

    [LV.7]常住居民III

    超级版主

    社区QQ达人 邮箱绑定达人 元老勋章 发帖功臣 新人进步奖 原创写作奖 最具活力勋章 风雨历程奖

    群组: 2011年第一期数学建模

    群组: 第一期sas基础实训课堂

    群组: 第二届数模基础实训

    群组: 2012第二期MCM/ICM优秀

    群组: MCM优秀论文解析专题

    回复

    使用道具 举报

    3

    主题

    4

    听众

    150

    积分

    升级  25%

  • TA的每日心情
    开心
    2012-11-3 11:34
  • 签到天数: 41 天

    [LV.5]常住居民I

    我懂的不多,生搬硬套。书上的例题) _6 _% ]& `! x4 Q0 V' {
    运行如下:
    " W+ H. U" U4 hsyms t;: \# d$ x) g4 Y6 K7 D
    a=4;b=3;6 ^2 ~' ]- o9 {( a! I% i
    f=a*t;
    ; j) K' n8 m/ d" yg=[t-b];
    8 _$ ]  n/ s* g9 [9 E" l[x,minf]=minNF(f,[5],g,10,0.5,[t])5 T0 T" e& v! G: s& t( I
    我将目标函数写成:$ S( L3 W) W$ \$ f
    function f=link_objfun(s,t,a,m,n): K; Q( S- |9 s- \! Q* N# {( t
    global L1 L5! i2 ~& R) l- _$ o7 r
    f=0;* o+ E8 g1 J: q) ^+ [; b1 Z3 k
    snti0=0;
    0 }) r" Y. \$ [" Yfor i=0:5
    / R+ Y) I7 }" W- t8 B# m$ ksnti=snti0+pi/6*i/5; ! K# U7 X6 _* `% e- P( B" y
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    - y# G2 [, F/ spsai=acos(2*(L1^2+s^2+a^2-t^2-2*L1*s*sin(snti+n))/(a*(L1^2+s^2-2*L1*s*sin(snti+n))^1/2));
    " b; u: ^. m( }4 Y/ f% o5 A0 ?  dif snti<=pi/2-n$ E. v  X+ L9 p8 X+ `# A/ k
       bati=fai+psai+acos(m/a);
    % _1 Q: z, U. @1 jelseif snti>pi/2-n) {. D! U( `- u& v
       bati=-fai+psai+acos(m/a);, {, D3 h" z! M( }9 z6 A
    end
    5 M7 y. v6 s5 L/ [* Y0 k; |f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    3 G1 P" N! \- T/ hend
    1 g3 k  I* u2 b: p运行如下:5 P! `5 O+ A8 o+ O; K; x
    clear all;0 R9 @6 D+ B2 U2 O  S+ A
    global L1 L5$ N4 \, `9 W7 h" ?% J
    L1=3000;4 [% H) N2 v  o1 T- z
    L5=800;
    * t% W* N# d( j- b' b/ U- d$ X5 Jsyms s t a m n;% z0 n% @8 w' r7 v8 u+ F" p
    f=link_objfun;4 B2 I, v, J; e
    g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];- S# b- E, e6 y
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    . P) i0 a! G# @6 P& E- P* E??? Input argument "s" is undefined.
    # _% w3 S% U2 G" D# n# v% F! C7 Q$ E; Z' ]) M
    Error in ==> link_objfun at 7
    4 p$ K7 {" h+ ?; Y: R: xfai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-28 01:41 , Processed in 0.800365 second(s), 62 queries .

    回顶部