QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5303|回复: 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循环写的。不会导入。
    9 e' `/ f* R+ ]) P5 m) B惩罚函数调用格式如下:
    " F: ?- @4 g2 }  g6 X% xfunction [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    - \, q( x% t+ t4 \. q. @%目标函数:f
    0 M% C7 e) s( s- R' k%不等式约束:g- ]- E3 Y/ ?  r! Z' b
    %等式约束:h6 A+ a! F( g$ P* ~& j) K" t# F2 X
    %初始点:x0
    3 f! G( f- [& X: v; N%罚因子:r0
    , w, q# ^9 [) s. u%缩小系数:c2 n) b4 c' h/ E4 R5 x, ], C
    %自变量向量:var
    * R6 L8 h- l. t$ O) i! E% G%精度:eps
    ; t, |8 P: f- w1 a2 }* ~, K%目标函数取最小值时的自变量的值:x2 v' E7 v6 g: V2 \6 [2 O# O  c4 S- o
    %目标函数的最小值:minf
    . V8 ?* A/ ]/ B: x% ?6 d) G8 f! ^, e) }: F1 T; L( T' A+ z

    ) ]) c& S! E' o5 _& x目标函数:8 u3 q( M  {/ [5 t
    function f=link_objfun1(x)  y  I4 _( @, s- ]
    global L1 L54 x) H# r$ @* {+ @( H  l& M8 d
    f=0;
    - Z8 u0 C' ~9 {snti0=0;( ^( N: n4 ^+ _" A; L3 j' x3 i$ M
    for i=0:5
    & D! c" e+ B0 S! Ksnti=snti0+pi/6*i/5; . c/ n& D+ U4 F0 i- }
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    * Z5 l: j" _/ i( S4 L0 k6 L8 |5 `psai=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));
    2 t6 Q( K2 }) _4 S+ t4 h1 Y3 S( W; `$ {" [if snti<=pi/2-x(5)2 `( }+ r! e2 u7 C
       bati=fai+psai+acos(x(4)/x(3));, H1 l- e" J3 B: N
    elseif snti>pi/2-x(5)
    % a4 V& h* s8 s, @" H9 Y   bati=-fai+psai+acos(x(4)/x(3));
    4 X. E; R$ E( iend
      r7 [9 y& ^% h6 b9 w$ U% |3 Wf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;" ]* v% g) h% I3 J& s9 F8 b- S
    end" _! a- x/ K7 y4 Q
    2 {% [% S, S( P2 w! ?! Z

    $ Z: m% w8 t" ?/ V9 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

    我懂的不多,生搬硬套。书上的例题
    4 }. d& ?* b! h& a. m, p$ c运行如下:  _' L6 b& o' U9 P4 ~
    syms t;
    5 [2 A- `. b8 n+ za=4;b=3;/ b7 J9 o+ e5 ?$ ]9 }
    f=a*t;
    6 V+ @7 b( S3 l* P/ B5 [g=[t-b];
    0 L3 c  W9 `$ w" x+ z! c* }  T[x,minf]=minNF(f,[5],g,10,0.5,[t])
    + k9 l% \7 j8 h7 L9 L' ?) D我将目标函数写成:
    0 `% ?8 T7 }' A5 M7 Wfunction f=link_objfun(s,t,a,m,n). v& E  o7 Y: V( A  A4 h
    global L1 L5( X+ y8 b& O7 z9 N3 H
    f=0;
    9 s. ^: r3 P/ p+ X  R3 csnti0=0;
    0 p; i4 W, D2 M4 W4 R; I, rfor i=0:5
    2 p3 [4 B2 |" v( c( G: m) bsnti=snti0+pi/6*i/5; / e1 L# g) ^7 ]2 I- _7 q+ J+ E$ O
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    ( X& J" Q2 r6 C7 O6 Npsai=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));6 a2 y8 w+ G5 l/ v( q
    if snti<=pi/2-n
      b# ]) d7 i/ C! j5 k   bati=fai+psai+acos(m/a);6 e# {- J5 ]0 [# [; ^9 q3 D! S
    elseif snti>pi/2-n
    ! {8 P  X$ R8 a( n6 c   bati=-fai+psai+acos(m/a);  }( ^: s6 b! v/ x6 a& I0 t
    end
    0 [- c" c; s& a" Z( Gf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    ; C3 V" T8 e* t3 S& ~! O+ [end
    3 V. e. Z  h: _7 y9 B- L运行如下:
    ( j3 G. _+ J' V( Q$ v' zclear all;; [8 x: q9 P8 v$ H0 p# I4 v+ e
    global L1 L5" o: X3 S7 S$ e' D' I
    L1=3000;1 j' t# o; Z# o  i( M! \5 H
    L5=800;$ C! x* K% y  Y1 N- G* S$ I! W4 f
    syms s t a m n;  v  N. r. @+ l5 I; q/ V
    f=link_objfun;/ W. {, |. M1 X" [
    g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];
    2 w$ n0 K. p6 ]' I& ~5 E: ~[x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    0 I6 I$ S; J8 E5 D/ e??? Input argument "s" is undefined.
    , w- |% }) `3 ~/ `0 W! v+ u' B4 L
    & R, \2 X5 ?, [  ]; V( e, w  jError in ==> link_objfun at 7
    $ }/ d4 m# Y9 j* m) q% Kfai=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-5-24 20:14 , Processed in 0.647987 second(s), 64 queries .

    回顶部