QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5319|回复: 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循环写的。不会导入。6 K' v2 O; i2 s% T
    惩罚函数调用格式如下:" C, Z6 |3 B0 c3 Q6 l6 I
    function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)" i% A9 K& a3 v: \7 `
    %目标函数:f
    9 z  `% E$ _+ }, t) U" e%不等式约束:g0 `7 t# i$ d! h( d$ Z
    %等式约束:h
    . [" Z) R: C6 W) s%初始点:x0
    3 g9 L  U$ E/ d% T7 ^# B%罚因子:r0; {6 p, I" U# o4 s4 c1 J- k; q, K
    %缩小系数:c
    2 e2 V/ `" F2 Y2 X5 V! d% N%自变量向量:var0 R' O; o; n. J& E5 q$ t+ `
    %精度:eps
    - h! D5 @; a- k9 J% l% z) s, Q%目标函数取最小值时的自变量的值:x! s1 x& Y) X, e4 I6 T- }6 a& }
    %目标函数的最小值:minf' l# H& r5 P1 c# q! X9 f

    3 t: x3 p" A+ ?
    4 W5 i5 D3 U) R+ Q! j* M' M目标函数:3 L7 {" u, p5 h( N
    function f=link_objfun1(x)5 T) @/ C9 ~' Q& d+ c" S2 Z3 p
    global L1 L5: n* s* u, a* _2 t0 x
    f=0;- u2 x2 a, T1 f4 F; |' i
    snti0=0;
    2 B9 I! I( L% C3 nfor i=0:5
    4 G( n' d& \) d3 Psnti=snti0+pi/6*i/5; ' [  k1 k5 i6 [4 U
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    3 n3 @* e" j; Q- Y/ wpsai=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));# }" \, }1 y& v, \1 a) C) S) o
    if snti<=pi/2-x(5)8 H; h! u$ x6 ^, U8 C. L) q
       bati=fai+psai+acos(x(4)/x(3));
    6 Z* C+ J/ ?& |( c0 T4 melseif snti>pi/2-x(5)9 _1 |+ v; Z" n
       bati=-fai+psai+acos(x(4)/x(3));/ _# a2 M5 ?- q" N
    end
    ( w; f; h9 i  d' r/ u0 n% wf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;: M8 ^8 b8 _* |! z1 B/ f  ~. a
    end
    % H; z( H+ P  U" r" ]  ]0 e6 x: Q& v; M0 |
    & ^9 N* n( i/ C* G' |/ S; z
    请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题
    : W7 Q4 t% J) G* t运行如下:
    " q. q3 |( ]7 j9 q: H0 L: n3 n& T0 Esyms t;
    : ?, G2 \1 R6 W0 Ha=4;b=3;
    0 J9 N* \: q! P8 T/ Zf=a*t;
    # r/ }7 L2 Q( r( N5 n( Lg=[t-b];
    7 Y4 f1 [. ~7 U7 o* X' v[x,minf]=minNF(f,[5],g,10,0.5,[t]): r2 L! C" [* C; v' T7 D' Z0 ~
    我将目标函数写成:
    5 u. k) P) L3 Qfunction f=link_objfun(s,t,a,m,n)
    9 E0 u9 i! A# _9 g3 tglobal L1 L5, {9 Z. y) w  G( w) L
    f=0;
    * }, C7 C4 q! D. z( T  ?snti0=0;6 S( H0 }: C& y, T1 b* d: k
    for i=0:5
    # _( P- S: X  S' y$ i/ L5 Msnti=snti0+pi/6*i/5;
    # ~! G3 U, K' b4 \+ z5 ?3 M* Vfai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    6 p8 h2 w" n9 t9 ~) K% }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));% Z$ l4 U5 N: ~8 |0 ^
    if snti<=pi/2-n
    5 S8 X, Q, }4 x2 b   bati=fai+psai+acos(m/a);
    1 a6 @6 y, H' ^elseif snti>pi/2-n
    - A; z* k  K* e7 m0 Y% p   bati=-fai+psai+acos(m/a);+ o; |- W7 |( E1 E8 c3 c
    end
    0 Q8 P# N' K, o5 ]7 K, I- f; qf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;+ ~7 L* Q) ~' N9 j2 a0 f
    end" R. u3 h  m5 a6 A7 c' b9 `
    运行如下:2 {# y2 o6 Y9 n5 S5 O: ?
    clear all;
    8 T! C6 E& u, R5 _. A' ~global L1 L5) s, q3 N7 L* }
    L1=3000;3 w; K7 A/ v8 T( x$ E9 n) ?1 K
    L5=800;
    ; v3 W; z6 t8 a( F3 `; i& ~; usyms s t a m n;
    9 `  _2 l7 \: e; sf=link_objfun;
    . |  n# i% g4 F  S- [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 P" r2 h. R" U$ L  {
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    7 T+ ]0 ?1 K, `% {9 Z, S/ x% e??? Input argument "s" is undefined.% B5 y" s+ l* a+ W

    2 ]& G) C8 r0 q4 {! }  jError in ==> link_objfun at 7
    8 K+ ^- g/ K' v7 @) yfai=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-6-14 16:09 , Processed in 0.436394 second(s), 64 queries .

    回顶部