QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5261|回复: 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循环写的。不会导入。2 j' a' H+ x$ x( {: ^: K
    惩罚函数调用格式如下:
    ! x; y( n3 t) K2 w; S' r8 Ifunction [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps), F1 R1 ?) q6 M
    %目标函数:f
    0 T, X8 O) C! o2 l" H%不等式约束:g
    ) L6 l3 A; s* E3 H, E" g9 ~3 [/ J%等式约束:h/ I" s0 W1 \# T% s# Z
    %初始点:x0
    : ]! r0 o8 K' D! W1 g9 Z%罚因子:r09 _/ ]# j; m4 g# O# W2 }
    %缩小系数:c
    4 A, D% x  |! F%自变量向量:var
    . D) J2 z0 A: e! H6 p1 }" U%精度:eps1 Y9 G3 D  w% [# G4 w& L5 ]7 ?, y9 \
    %目标函数取最小值时的自变量的值:x
    # U7 n$ M2 G5 U% b. U# `. o+ v7 K2 Q%目标函数的最小值:minf0 q$ t# d/ ^5 y

    & U. Z# d% ~: E+ N" r. m+ D) S0 V5 E) _+ T. ^
    目标函数:2 _- g/ ^3 X/ Y7 _
    function f=link_objfun1(x)
    7 z$ o" f! e1 G& [* Vglobal L1 L5
    5 }5 M  `5 k3 |9 l8 }$ k& j- m: Bf=0;
    , {: c% W& ^1 o+ l! `snti0=0;5 a) G6 Q9 y1 \8 ~1 |+ B0 h$ T
    for i=0:57 K7 H1 j6 Q( i- X
    snti=snti0+pi/6*i/5; ( V" [3 E5 g& t* p" }2 a9 R& h* T5 L
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);/ N' O9 R9 l1 ?( x) X6 a
    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));
    0 v6 ?- B; W& W7 p4 E; Dif snti<=pi/2-x(5)) v4 V& n/ f% J5 Z! r( T) U
       bati=fai+psai+acos(x(4)/x(3));  O. Y4 A$ a: _& D3 p$ n- V* D- b
    elseif snti>pi/2-x(5). l5 S" a; Q  C" ^" v4 ^9 M) F
       bati=-fai+psai+acos(x(4)/x(3));% k4 v' y; Z1 w; g! |
    end) T- u5 P6 b& N# C& n; Q
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    1 |2 s( ^6 @( ^/ Y6 K. y% Qend+ G) ~+ \$ N9 j! Q

    0 Q  w6 J5 G! U, O
    ( V8 x0 k& v' z% L) X请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题
    $ i0 z. r, {: Y2 M# ]/ C: X运行如下:/ n5 ]% ^. L/ d, [" U) a
    syms t;
    1 J6 ]* @7 a: Z! f3 z3 W: ?- Za=4;b=3;
    6 C2 |% M! ?. z. i1 T0 r; Mf=a*t;
    ) U- e: `( g0 |% s1 Qg=[t-b];
    6 o# c' J# e# [" o[x,minf]=minNF(f,[5],g,10,0.5,[t])
    : h# q2 r' q% B: i$ b2 Q+ l/ e8 i我将目标函数写成:  V8 H& r0 l! w8 u/ k, L
    function f=link_objfun(s,t,a,m,n)) f* z$ m4 }4 |; A  b1 q; N2 ^* P
    global L1 L5
    4 X! p1 D* T2 ^  l" i* U( y- n9 Bf=0;- f' N' m. G3 ~9 ^
    snti0=0;; r# [$ d6 m4 e1 Z6 s5 O" V
    for i=0:54 e  ^9 [: |1 e" o
    snti=snti0+pi/6*i/5;
    % T* G1 C/ e+ L- Ofai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);: O5 q" }: {" e. E
    psai=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));4 ^/ h' g  D2 y: S- c" S! ~+ \/ ^
    if snti<=pi/2-n
    " C# W- q. m' H5 L( U  x/ ]   bati=fai+psai+acos(m/a);
    & u6 x; j) F3 s9 \elseif snti>pi/2-n
    5 I9 l) ?5 |. N2 c   bati=-fai+psai+acos(m/a);' t" Q$ T# O9 U2 c+ j# W
    end( ^! \5 |6 S0 T9 }* P
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;8 ^# f; r1 c  p5 u5 w( G4 r
    end
    & A: H* S+ o3 G3 ]  ]- y! H7 t运行如下:5 A% C: f( j/ J% P
    clear all;
    6 K: R/ ~. o2 f* j0 I, N6 Tglobal L1 L5& H$ a, K5 r4 \, _9 s5 t/ r+ O& \) f; K
    L1=3000;2 M, I( v! Y" u  }9 u/ I
    L5=800;( Z  O3 G' _& `6 W
    syms s t a m n;
    5 W2 E' J2 |+ [$ ]2 @$ E& v, Qf=link_objfun;
    1 x# R9 a- I+ C! c& Sg=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];+ B8 c' |' d0 v  ^
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    9 M0 |. |" t% N??? Input argument "s" is undefined.1 y  ?! f$ j  W% s. u) z

    . x! K! F3 M/ Q# R7 ~' tError in ==> link_objfun at 7+ V' l0 d2 `8 I& Y
    fai=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-4-13 17:56 , Processed in 0.441755 second(s), 65 queries .

    回顶部