QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5265|回复: 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循环写的。不会导入。
    ! o/ L2 ~: U0 k7 R; _1 t+ |3 X2 ~$ |惩罚函数调用格式如下:
    6 `( o8 F( X3 y6 [3 `& b  ~, efunction [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    2 m( ~/ E% k; F" @8 F5 G0 m/ H%目标函数:f
    % B3 Z# {+ D" w6 d6 e%不等式约束:g. d3 E3 X* {# o' \7 _5 _
    %等式约束:h/ Z2 p) S1 w) x4 ]9 `$ T4 C
    %初始点:x0
      i3 P/ p1 m0 F) N: Q3 m%罚因子:r05 D! T% U. t8 r
    %缩小系数:c
    - k( \) d7 |5 L) Q% R2 a; x: Q%自变量向量:var
    1 E* R# f! u% e2 T%精度:eps
    , ]( `; Y9 R& z; q4 z%目标函数取最小值时的自变量的值:x
    ) b% `, }( P0 q. m9 R2 n( e%目标函数的最小值:minf
    5 D. w! e  K$ l* [( {7 m/ L0 Q5 O. v& x. i: j  n9 n8 F& _- x( @: L- E

    , H6 N0 d; M8 E8 ?目标函数:
    7 }- `4 h( p- dfunction f=link_objfun1(x)
    ; }* K  }5 P: A- D3 {global L1 L5
    , s6 u# c" R) x# |; ?% c/ mf=0;' g. k4 x4 k' M/ J1 @, o8 [
    snti0=0;
    / \# F3 X- J) A4 z, s  J, }' zfor i=0:5, }6 y6 G+ o' \  o8 K4 L. O( q
    snti=snti0+pi/6*i/5;
    ! q  E6 o( G4 ^$ o; M$ mfai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);* V  }9 h7 j( Q; n& J2 m$ K" M
    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));/ |$ C( H/ ]2 v% ]/ D5 D
    if snti<=pi/2-x(5)/ m! [, c* T! d4 m& ]& D  G8 G% a" i
       bati=fai+psai+acos(x(4)/x(3));
    % z! S" s, f( L; u( w6 Zelseif snti>pi/2-x(5)4 L/ x  I2 b7 Z3 y7 S
       bati=-fai+psai+acos(x(4)/x(3));& Z4 N, ^2 V2 k2 |) ?9 v% ]
    end, i& z8 z1 x1 l7 V5 @' I! z
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;4 [/ n- t! _( s/ @
    end
      ?( j& i; t' ?5 ^3 M1 v( h
    / K/ D8 a3 i- d/ V2 M
    1 G- B( _7 l5 p" {2 U& u" \请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题
    8 q3 G2 I9 C' l' ]$ f运行如下:) c: i2 }+ l) Y0 @$ J( G
    syms t;/ [# e0 }0 G. U" l( h) k' Z; M
    a=4;b=3;7 O$ S+ a' e* t
    f=a*t;+ z9 ?$ Z1 }8 v7 S
    g=[t-b];/ s% M: _2 ^/ A+ r
    [x,minf]=minNF(f,[5],g,10,0.5,[t])* S$ A& w6 ~$ ^% H2 y4 n
    我将目标函数写成:
    % R3 |' J  w% }  F' Y6 g: I0 mfunction f=link_objfun(s,t,a,m,n)
    2 @* u2 _5 A8 Q3 C8 a/ k7 Vglobal L1 L53 V% p/ @$ H* k( [, a/ P
    f=0;; R- A$ Q6 _# y& B( B' v) w
    snti0=0;" n0 O# }- o, c% w8 s# }! s
    for i=0:5$ p& T& d5 M( w9 t! F4 Y( F3 E; y
    snti=snti0+pi/6*i/5;
    ; Q' d; Q5 j# x* z6 v7 Bfai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);% w$ A! i% M- ]- h4 \
    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));9 d4 N+ }$ g4 F. H
    if snti<=pi/2-n
    0 G+ N( M" ]9 g( g! s! K   bati=fai+psai+acos(m/a);$ f, m% D0 `; h- E1 }
    elseif snti>pi/2-n$ @/ P' q! F& g: N
       bati=-fai+psai+acos(m/a);
    3 {, h4 T$ e8 I3 Pend
    1 t9 E- e2 e3 J- v# N, L5 qf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;) X# Z& K0 x) k6 e2 c
    end5 H$ c% q: H7 ^. }
    运行如下:# e6 o' `& ?) Q
    clear all;* v" K: U5 @& M3 O, l7 \
    global L1 L5
    2 \; ]# S4 K9 R+ k' |0 WL1=3000;
    " X# G1 {7 ~; c- T4 \L5=800;$ v/ |& X* _! S( D* L' {) o4 w- a
    syms s t a m n;
    * U, V* \. i9 L: @; g; [  Xf=link_objfun;3 @7 W$ J: Q1 U4 @! q  m
    g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];
    0 s9 ~5 x2 O& @+ @+ K' f. o: M' \[x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])% L9 H5 P& Z( `0 W8 @% B/ _
    ??? Input argument "s" is undefined.
    ) H  b5 Z8 V& ?8 D
    1 O3 i) k+ h& k- Y5 H  R( OError in ==> link_objfun at 7
    2 U1 |. V, s0 \, \6 zfai=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 04:23 , Processed in 0.443132 second(s), 64 queries .

    回顶部