QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5287|回复: 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* [. C# N$ i- a# `% N3 e惩罚函数调用格式如下:
    / L: M, m0 Y3 @- T$ Z3 }% _2 F5 Hfunction [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    ) C; d2 P  E7 t) b5 |1 k%目标函数:f( |! _# ^3 H  I. L. g1 f8 @
    %不等式约束:g
    ( b* C4 E6 l# u0 z8 ?/ D%等式约束:h
    ( I- S* I- }7 F. b& K9 f%初始点:x0
    4 W; N( z- e! U0 d! y; d%罚因子:r0
    * Y+ X' G8 i4 F% T  ?# n0 B5 }0 g%缩小系数:c1 k7 U/ t7 n# H' G, y; l& C. @
    %自变量向量:var% b" U6 Y" i8 ?7 Y
    %精度:eps0 q" {! `# _% i% T- f; M4 D( E
    %目标函数取最小值时的自变量的值:x+ W) z$ m- F6 ]  m- q  z4 Z; _2 b
    %目标函数的最小值:minf
    8 b# r( a8 J1 C3 S) F  \, O3 x; q

    2 K" B9 K8 O3 o( B0 C目标函数:* R4 c1 _# M4 ]! x2 {- J$ o3 N
    function f=link_objfun1(x)
    ; h2 D. x( t" a* U7 Rglobal L1 L5
    9 h, k. P- Y' [7 b' @f=0;
    0 V$ C( n0 X' W2 j# |) G5 ]: Isnti0=0;
      B# C9 q0 _3 e& }for i=0:5# y& Y2 d  f% w+ P$ E
    snti=snti0+pi/6*i/5; 4 t( V( Z, H8 ]8 \% E: k' z3 o
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);9 E3 Z! `( b( b" 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));
    ) [/ ^. u: ]; R9 q! ]+ i: qif snti<=pi/2-x(5)
    ( F# A  \* @1 F: m: Y( C7 Y$ r   bati=fai+psai+acos(x(4)/x(3));6 @# l2 l- |# A% z9 p
    elseif snti>pi/2-x(5)
    " O+ ~2 R4 f, K6 s   bati=-fai+psai+acos(x(4)/x(3));
      U7 p8 P) x7 uend
    ! n" l, V' w( N, gf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;  J$ Z) e# |* k; U. p, |
    end/ x* P3 Q; U$ n0 o  P7 ?

    5 w/ ]* h; [5 i7 D  G6 H+ d8 h/ V
    # r) P+ e( ~9 h# d; }请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题
    3 h: q/ L# S4 q# ~' w% P运行如下:; W7 E* ^9 N2 O$ p
    syms t;$ _* \3 c9 H! Q2 ]7 k
    a=4;b=3;
    ( B+ J% @& |. y+ J+ W; bf=a*t;# L$ Q7 o4 A, k  d6 @
    g=[t-b];
    & }8 R/ Z3 E4 u) j[x,minf]=minNF(f,[5],g,10,0.5,[t])
    9 c$ X3 T* R" P0 D我将目标函数写成:" O! h( z/ B2 y. V4 O. Q
    function f=link_objfun(s,t,a,m,n)
    $ X* E2 d. ]# Y5 ]" P( O6 E; \; Vglobal L1 L5
    1 C1 ^0 t6 b7 s# H/ o' }f=0;! u! r- u3 a- j) h3 }7 @' M
    snti0=0;4 ]$ a, W/ y7 u( w+ q( C/ k4 i
    for i=0:5
    $ M; n' N, E; l# wsnti=snti0+pi/6*i/5; , i# A* o9 R: E. p9 H1 [
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    6 D  k3 A9 c7 i6 S+ Y# Rpsai=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));+ H: u% }: [& L0 \& a) k% \( T
    if snti<=pi/2-n
    - \. q+ }: o* }  K/ J   bati=fai+psai+acos(m/a);; j8 S& B) o# N( X5 j
    elseif snti>pi/2-n+ W( r2 b$ }0 V# Q) E4 Z
       bati=-fai+psai+acos(m/a);
    - t; G: a/ r; ~* g8 nend* ?. P. I) E3 w$ F
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    / n  Z& _7 Q+ p  Uend
    , |; S6 G$ ^+ b2 P运行如下:
    : ]; x4 ^* K4 _  g) Vclear all;1 m. e2 h# o( X( i
    global L1 L5
    ( ]" ?% [7 J; i  o8 {/ |L1=3000;- A% k, f! c* h, c- e" g7 C
    L5=800;8 b* F4 K7 O) i1 K0 u/ K3 J5 A, J
    syms s t a m n;
    / {7 G, e6 \; h/ I# T- Bf=link_objfun;
    ' R. \# i' U5 g! n0 y6 J( P- E; X$ ^g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];) [: w- j# W1 ~* A- W: i. [
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])5 l% \% R3 t$ g0 i- Q
    ??? Input argument "s" is undefined./ ^9 u+ e! b/ H+ @; d7 m9 u9 H

    & b" M; o, A9 S! Z# e2 |Error in ==> link_objfun at 7
      \0 S+ `- h4 H" M3 ~& g; Bfai=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-5-5 19:44 , Processed in 0.383136 second(s), 64 queries .

    回顶部