QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4985|回复: 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循环写的。不会导入。
    5 r4 r( t$ e% i/ ]. d9 V" {% z惩罚函数调用格式如下:
    7 Y, ~6 s; K/ Y* x6 [6 u- Nfunction [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    9 b1 [. W2 q/ J0 m%目标函数:f  u0 b7 U7 ~4 J. c6 ?; J  {
    %不等式约束:g
    % Z8 K) Y, X6 f' w# N7 @. x: J1 T%等式约束:h8 z6 `  c, e' U3 C* p, n, Z$ P9 @$ A
    %初始点:x0; i5 ~  @% |& \
    %罚因子:r0
    : Z1 j: w3 W+ d+ v%缩小系数:c0 p7 G5 O. c, b; F# _% _2 g
    %自变量向量:var
    % l  R3 O, W( D" T2 f%精度:eps
    / C0 ~/ N8 p0 D- i: M* L%目标函数取最小值时的自变量的值:x5 E# L3 P$ `. R, o! k. g
    %目标函数的最小值:minf$ x& ]% c6 N8 g; ^  E1 a6 G! i

    * s! V7 ^* u$ }) D% _
    ! y' ~- p) x4 I% i+ Y* M目标函数:
    , ?' p% h) V! ^% O% B# N2 mfunction f=link_objfun1(x)/ k. a) }3 n# l9 B: s
    global L1 L5
    ' L- H1 t+ E8 of=0;
    ! I& j' G! C( K6 l% w. Ysnti0=0;
    , I  n! ]' G, Q  ^9 n% zfor i=0:5
    $ L& }: k* L+ [% J1 Z' @snti=snti0+pi/6*i/5;
    , h; @& m& x  R% a1 Pfai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    7 z9 \5 u/ E0 Cpsai=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));# g1 L" y+ @) W, y" d: _1 v- v, b
    if snti<=pi/2-x(5)
    . h: I9 }$ }, @( x   bati=fai+psai+acos(x(4)/x(3));
    9 Y. U6 B7 S) R1 b4 lelseif snti>pi/2-x(5)0 Z' Y) n! V7 s
       bati=-fai+psai+acos(x(4)/x(3));( ^/ Y9 j9 i: c/ q0 Q
    end
    + b& p( p# P% J. F, df=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;% t- M: i; w2 S. C2 V
    end3 v6 g" U) f. t9 Y( h; l

      Q0 D+ o" z- p( G: d& T+ w- i( K  X" I+ f0 P. F& M, {
    请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题1 Q/ S* y2 w9 v  Z
    运行如下:
    6 w$ n2 q( n$ t& L& Z4 lsyms t;
    : u" ^, y. I& x: K  u7 P) J% Xa=4;b=3;
    9 t+ y( ^7 Q- n" _2 `2 S- B' d! z- ^f=a*t;
    ' G$ Z) w% n# d4 Vg=[t-b];* @9 d& z, g1 `/ E6 Z6 j0 C
    [x,minf]=minNF(f,[5],g,10,0.5,[t])  j$ }2 y$ k: d& W, ?! \* x
    我将目标函数写成:( i6 \1 e' _7 v
    function f=link_objfun(s,t,a,m,n)
    ' k4 T# o' w% \1 g) b4 Uglobal L1 L5  L( c2 \0 e' O; R0 s' `
    f=0;
    7 c' x' M  Z5 B* }snti0=0;
    & v  B+ P& ?! hfor i=0:5
    ) C) {& ^. ^5 k* lsnti=snti0+pi/6*i/5; 7 D8 p. l. [7 \0 s% B
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    % M0 U3 M6 k& wpsai=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));
    ' a9 o+ r7 }0 q% p5 a/ vif snti<=pi/2-n
    2 y& Q, f- H' v) b   bati=fai+psai+acos(m/a);
    2 }4 \" g+ E% relseif snti>pi/2-n
    + Z8 I0 I; f7 D( }   bati=-fai+psai+acos(m/a);
    $ Y" z2 C( t2 X9 t0 j2 hend
    ( ^! m% L" }5 U4 Y* o) e0 d6 j( Xf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;7 F- _( O# C3 c& ^; a. z, p
    end5 Z' M* b& ~; d0 l& [0 i8 ~. F6 p
    运行如下:* D6 L1 ]- A& h
    clear all;
    % b/ L+ d1 L6 t: Q+ B5 s8 Sglobal L1 L5/ [0 Z4 g. g9 S9 X4 R0 m; b& Y
    L1=3000;7 O4 J7 T1 L" D8 [1 d
    L5=800;
      I1 i5 Y4 o$ g, Esyms s t a m n;
    ) o& m, L3 v# y9 {3 Q$ mf=link_objfun;* i; A7 H; y4 h
    g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];9 c, ^8 V3 l% L. j, `
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    2 s0 p) P: f# p4 Y??? Input argument "s" is undefined.
    " f; B7 n  f; N/ E. C
    2 q) p$ |) h0 y# a6 JError in ==> link_objfun at 7
    6 t9 A+ y: |& r- Vfai=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, 2025-8-20 01:51 , Processed in 0.424025 second(s), 61 queries .

    回顶部