QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5266|回复: 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循环写的。不会导入。) m/ d) `' y; d0 Y$ g
    惩罚函数调用格式如下:1 _7 d$ B( s! A8 ?: F$ N7 q) h
    function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)- ?8 z2 r# H- t8 u
    %目标函数:f' h/ V. j# g4 W$ \/ U- b# |/ \7 ~
    %不等式约束:g1 W# O5 U! e* A0 ]9 s2 K2 n* I
    %等式约束:h  w9 e- K8 r) F: [3 q& |( ]
    %初始点:x0; H3 G+ J; O5 T
    %罚因子:r0
    9 h0 v; V5 K8 y" Z+ K%缩小系数:c& G& H: e3 i9 c0 P9 J5 Z
    %自变量向量:var. m. w$ f7 r$ x* _5 l8 ?
    %精度:eps
    # g+ K# E( d0 E* P) ]+ }: b, S%目标函数取最小值时的自变量的值:x
    , W6 r% C- T. M3 q  C0 J%目标函数的最小值:minf
    5 a6 q8 Y( f4 t. i
    2 O. T5 a1 \1 R/ f7 [1 B! Y: o5 s: S; M8 Q  V1 l
    目标函数:; D6 m6 Y5 I) B; c
    function f=link_objfun1(x)/ g9 Y( y- m9 [6 v
    global L1 L5
    # l' P$ F0 y8 y6 e8 Xf=0;
    & Z; _9 U# }% _! }9 I) {snti0=0;/ h/ W' U2 `# O) w4 j
    for i=0:56 T: ]9 u, b8 Q8 \9 l: F
    snti=snti0+pi/6*i/5; & }+ W3 [% i7 M& L/ W' E2 N
    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 X+ O3 e+ S4 C; L' ~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 u, g+ N( J* n
    if snti<=pi/2-x(5)
    7 A) ^8 x6 i  J4 H0 u7 `0 s   bati=fai+psai+acos(x(4)/x(3));. V. X( m- u; k8 X4 |2 s- K
    elseif snti>pi/2-x(5)' N7 z; ~! ~) p) g! M: ]
       bati=-fai+psai+acos(x(4)/x(3));
    # m5 Q1 [# ^% X3 S4 n  W) |end
    + R' w8 S% O* ~+ O$ D9 wf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;. u5 k5 N. P, c- L& l
    end
    8 S, H6 F0 K0 A7 F' Q4 p* E/ K' m! p( s) S! @+ _
    2 u2 V; h3 ~; W$ Q
    请诸位帮帮忙,我的体力不多。

    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$ e( P& E3 ^; y- {
    运行如下:
    & }4 M. ^, Y2 d/ m9 }0 }0 M) Isyms t;
    " d' b) Q& A  i; B2 C6 l( D- Ba=4;b=3;
    ' h) d- O" n; N: Kf=a*t;4 v  F  o. j" Y8 V7 s
    g=[t-b];
    * |2 |( E1 R4 o[x,minf]=minNF(f,[5],g,10,0.5,[t])- x/ L5 y8 |$ D7 |+ v2 a
    我将目标函数写成:
    : u3 [+ [) w: X9 b4 e' pfunction f=link_objfun(s,t,a,m,n), q1 }( c- a; g6 `5 W5 f/ i8 w
    global L1 L5
    & g" J* U5 |& a$ `6 T/ Z' _9 R1 `f=0;
    : i$ x; }; ?  G- Ysnti0=0;/ \: Z6 `! W+ W3 M1 B5 ^3 Q; U+ ~
    for i=0:52 a, n$ \8 n; I- A5 e7 i
    snti=snti0+pi/6*i/5; 1 l$ J* }2 c( U' F5 [
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    ! S, a' M5 b- ]) u& c9 Fpsai=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' y, d# i9 H* ^if snti<=pi/2-n3 e; X' x' P# b: c) K) \$ [
       bati=fai+psai+acos(m/a);
    ; {2 @- u. b& i; G5 D! l8 Y( eelseif snti>pi/2-n
    $ U% o! ]2 `' p0 t. U! f   bati=-fai+psai+acos(m/a);9 L* @2 ]) W' a% c4 @% V
    end
    ) K: ^  n& n8 Y" w& k! S2 q5 Ff=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    6 B! P; \7 l: N  q* ^  ~& vend
    1 V0 |3 L0 f8 L! L运行如下:
    + W0 p8 o3 V# oclear all;
    4 `! {+ y  Z, f# B% s3 jglobal L1 L5- z" ^+ |* l  L* R
    L1=3000;) o3 s4 ?$ d, D- g$ ?* f" m
    L5=800;
    ) v: G: @2 n9 r" Q' rsyms s t a m n;- c$ C" c* x3 R; }4 q( x& c
    f=link_objfun;
    0 ?9 S* I) X; c) dg=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];& w0 O7 S: q! ]$ \. O, A
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    $ Y9 f4 T0 p: V5 R2 T7 H3 x# L) _??? Input argument "s" is undefined.1 ?! ?# x# i) \
    7 l3 r# g6 n7 R8 y5 u
    Error in ==> link_objfun at 7
    9 O) e/ l/ j, Z0 L1 y; sfai=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-17 23:15 , Processed in 0.428208 second(s), 64 queries .

    回顶部