QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4952|回复: 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循环写的。不会导入。) Y- s0 F& M- a
    惩罚函数调用格式如下:7 \& h9 E) ?9 z$ a
    function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    , w* v/ @# F7 M! @  R- o; D%目标函数:f
    0 v/ E: I4 v5 F1 S# L%不等式约束:g$ G, i9 l  O8 _
    %等式约束:h5 L7 i" Y: ?" Y9 }
    %初始点:x0
    0 }& _: \* M2 N, b7 Y%罚因子:r0
    . J" C' V; C8 O1 E& ]( J$ H8 B%缩小系数:c' }- B- z2 b4 I. g3 ?( s
    %自变量向量:var
    7 O5 L& v6 Q( H: M%精度:eps% ~# m3 r2 p; U. s5 ~& X4 D
    %目标函数取最小值时的自变量的值:x
    3 r# H$ P* Q/ V% D0 ~%目标函数的最小值:minf; }. d! r/ O! E8 }! G

      d( o3 Q# ~4 m7 e5 S: }+ E2 u
    9 e. D5 v; c  ]( Z  F5 B3 q目标函数:
    ( p- B2 V" F, W1 x! a1 i  efunction f=link_objfun1(x)
    0 a  G$ i& N% Q" t" nglobal L1 L5
    * t; L& L& d3 j, qf=0;
    ! ]" U& s" n* Q7 Z  msnti0=0;
    8 g5 E# J6 L% a! n( k2 Vfor i=0:57 `! K2 ^+ J% t
    snti=snti0+pi/6*i/5; 6 @) @3 D# f  n: \- J
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    7 G. g, d) t/ P1 V3 i# K2 ^5 Vpsai=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));" d! V2 A3 g$ `1 f5 y. T6 [) W
    if snti<=pi/2-x(5)
    # s' m8 ^2 {% Y! c  A   bati=fai+psai+acos(x(4)/x(3));
    * B( a; O; N& k; p* ?elseif snti>pi/2-x(5)* m' k7 [7 l9 m* \, h0 p
       bati=-fai+psai+acos(x(4)/x(3));: t; {/ I7 ?9 _2 B
    end
    1 p- F8 w! |7 d7 v: y; Sf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;+ n9 I9 X2 y( W' k7 g7 P; q+ z$ F/ U. r* ?
    end
    7 Z/ R4 w) x3 X% n8 n9 O4 Y1 g# m1 |

    6 U9 s! r! ]/ O( d6 R0 Q1 G( K请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题, k) a1 P, H# v# J& h4 _1 N
    运行如下:
    ' I$ Y' b$ V1 {/ W* esyms t;
    6 \% y* l% Z0 ka=4;b=3;( X' t5 K3 v+ d/ j
    f=a*t;, G4 ~3 W- X+ w/ B( H
    g=[t-b];
    - o, z6 N3 S* P+ t) [/ K[x,minf]=minNF(f,[5],g,10,0.5,[t])
      x8 a! s* o* N3 f: D我将目标函数写成:/ X/ U: H2 z% M# i# h3 _( q
    function f=link_objfun(s,t,a,m,n)2 y+ u6 @1 R+ k6 ~5 Q" }) }- Q
    global L1 L5
    $ ]( E; a8 D1 If=0;9 w. H$ ?6 d/ R: y
    snti0=0;
    . z+ f- k" Z- q; v2 ufor i=0:5% b( I; x& {1 X  U5 H
    snti=snti0+pi/6*i/5;
    ; y5 `. ?/ e5 V, p7 Hfai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);! h' D8 s# Q- K+ K: V" }
    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));  a. `, V: m5 v
    if snti<=pi/2-n4 r2 C+ ?0 i$ L; _& e
       bati=fai+psai+acos(m/a);
    ) d, p; s* }  e" melseif snti>pi/2-n
    4 o4 X" S; a/ H   bati=-fai+psai+acos(m/a);- N* U! x% c) O% T' z, ^$ B6 _3 }7 Y
    end
    1 P2 s* ^1 y& K% X# O$ j+ R4 `f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    ! ~, {; i2 V( }+ P) f* a8 |& Jend
    * e- d! W! G1 ?% c9 L9 ~- U运行如下:
      i0 s' W, A, \# `6 Iclear all;1 `# {0 _- `* P2 P: l
    global L1 L5) _5 w3 R. U' U: ]& i
    L1=3000;
    ' k2 {; f5 R# m. S! r" EL5=800;
    + T4 P# Q! W: i9 {+ [: g5 Osyms s t a m n;
    ! I5 c5 Q8 g. h% {6 I- ~! {f=link_objfun;
    : s: M# l" V4 N: U2 X% l* E" ag=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];
    6 Q1 y" k& T2 X[x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])  ]9 D& O! s9 P, i& Z; u( Y/ T
    ??? Input argument "s" is undefined.
    ' V) a( m7 x. @% {2 v* b- x
    1 @  |* U3 `" x# C% zError in ==> link_objfun at 7; p9 T/ B9 D, Q0 ~: }
    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, 2025-8-7 17:44 , Processed in 0.336697 second(s), 63 queries .

    回顶部