QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5256|回复: 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循环写的。不会导入。7 p: ?  w/ X+ O
    惩罚函数调用格式如下:
    ; k; {% \0 }# c" `( F4 Vfunction [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)$ |3 C# y* ]; [, m- x+ y5 A+ o! l
    %目标函数:f
    ; j" }- J, F6 h; ?7 Q! w%不等式约束:g
    7 }: A* J) a+ y%等式约束:h* H8 _- ]; k4 O. _" X
    %初始点:x0
    2 Z' N# K& T. G; X% Y%罚因子:r0
    " K. V  U8 g4 z; p/ ~' @4 B%缩小系数:c) O9 Z/ H: B& v& U* A; ~
    %自变量向量:var
    7 p; F, U" u# I5 W%精度:eps" c; T; u9 c  ^+ E
    %目标函数取最小值时的自变量的值:x
    / a  U+ X! @/ R9 O# A, {2 U2 N%目标函数的最小值:minf
    1 z8 J% f( G5 \% N5 t# @5 |9 a% n2 S3 M" a

      E/ G1 \9 z' U: J0 }目标函数:
    4 ^- X( u+ M- }5 `$ x3 Ufunction f=link_objfun1(x)6 y. {( p8 V8 `+ M: m2 a) k( S, [
    global L1 L5, L2 u7 C  S5 Y/ N% V
    f=0;& F! t4 Q' B) F2 v# a/ T
    snti0=0;7 Q' s3 R2 m$ ]" c/ J: w' l! D
    for i=0:5
    ( E1 f6 m3 B8 c' N2 \  [" \snti=snti0+pi/6*i/5; ; {- W) D5 R7 l' U9 r+ e' ]
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);+ `1 i. J6 }- y& V% w5 S4 c
    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));
    7 E- o, a/ M. _* N% ~% n7 V& o% ~if snti<=pi/2-x(5): M5 P2 p+ H" {/ A9 M% c
       bati=fai+psai+acos(x(4)/x(3));* b  g( T2 p5 Z0 N  \/ `: l
    elseif snti>pi/2-x(5)
    & n1 Z" b1 j* o* g, h   bati=-fai+psai+acos(x(4)/x(3));
    + t$ x9 k& z7 M" J+ G: send
    4 _+ ^4 E1 s( \- A0 df=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    + ^! e: K( @$ j! H$ F( Bend
    - n. M; |! Y: z. C8 F: U0 L1 s
    ! I9 o' n: v, j; k. N5 x' d4 H; c6 S9 R! i5 N0 M! G
    请诸位帮帮忙,我的体力不多。

    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 f8 o3 I, a, m+ ?' g0 `$ s运行如下:/ F) }/ R& J, ^) v6 G6 s
    syms t;. C$ W! T2 N5 K1 B. f9 z" k6 k2 i
    a=4;b=3;
    ; F# V9 T: Y3 [f=a*t;7 F2 a" _0 p. C
    g=[t-b];, A- t, w9 M/ i* h, |1 [2 l5 ?; z6 @
    [x,minf]=minNF(f,[5],g,10,0.5,[t])
    ( P1 c2 j% C9 Q, `* F8 m: s0 X我将目标函数写成:8 \) ~3 m+ W! B4 L9 Y/ ?+ U! L, g! y+ `
    function f=link_objfun(s,t,a,m,n)
    8 e9 {5 K4 K' J; d# P& Kglobal L1 L5% W: {& p0 y- p9 Z  r" u7 o3 B( W
    f=0;% ]& D/ R$ p, ^. |3 p) S
    snti0=0;( ?- T5 d% P% i6 g( Y
    for i=0:5
    " B; O. o9 c! [snti=snti0+pi/6*i/5; 0 [- {9 V% j- Y/ _9 P
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    0 V/ w: X9 O: X" 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));( n: \: }: J: w7 V3 e
    if snti<=pi/2-n
    % b7 [* O# f" e. I+ S' z; z6 N   bati=fai+psai+acos(m/a);
    ( p: \4 n. M: @, i8 ielseif snti>pi/2-n# j/ l0 _6 z: B! `7 y) X
       bati=-fai+psai+acos(m/a);# u# f( T! i# \* E/ K: I
    end
    9 v! t( [/ S' f% }f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    2 N6 a' r5 T5 d. a) Tend
    # M: b* k5 U  o. n6 S6 c运行如下:
    . z4 |0 q) D. ]4 mclear all;
    ' `7 A" O* c! s( O; @global L1 L5
    % B# z7 @1 b! K; |8 C* FL1=3000;, E7 S9 {4 E6 a" S& ]
    L5=800;/ y( R* g9 c2 @  V* a
    syms s t a m n;3 f, F1 w' v, E( \. c! p$ i
    f=link_objfun;9 F3 b6 e. N3 @; e: w. q
    g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];/ c; r- J* @. m( ~  j' _8 K# G- V
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])4 [/ R  l: z; p- s
    ??? Input argument "s" is undefined.- c- |3 n1 W1 X8 F8 w
    ' ^+ X, r, A. ^' g' ?$ E
    Error in ==> link_objfun at 7' X+ z  C" {% K. X+ o
    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-9 16:55 , Processed in 0.508167 second(s), 63 queries .

    回顶部