QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5304|回复: 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循环写的。不会导入。
    ' C; c; _& F% I& n+ y2 K惩罚函数调用格式如下:
    6 m: P! z+ z2 r- Cfunction [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)$ W6 T0 z& s* T" H/ P/ ^
    %目标函数:f
    . A: O6 {# G5 H, ?  `7 {5 T0 k* J%不等式约束:g* q0 T' Y: }6 S& r
    %等式约束:h  Z! S7 T' o5 h$ s$ O5 `
    %初始点:x0
    % U- _. F$ D- h' b%罚因子:r01 W) Y0 v3 [( ^! M8 u' x
    %缩小系数:c
    ( V( `$ P9 V* y# t: @* ^9 R1 q8 f%自变量向量:var
    7 _3 g) D6 G9 z1 n' c9 U%精度:eps6 d. a% K. ~! h8 N
    %目标函数取最小值时的自变量的值:x
    ' v1 F5 ~( d% ?9 B) F  Y* g%目标函数的最小值:minf8 n8 v! y: F: R4 _

      g+ t5 d) r. V- z# @9 k2 S% w% e1 Z# p. b3 p
    目标函数:# [2 [2 i" `; ^# g1 \" `
    function f=link_objfun1(x)6 Y$ F! Y4 w% P0 _! L) d$ A
    global L1 L50 P( k, u# y% B/ x0 q: r9 q
    f=0;, S+ Y  E- m2 Z: u3 I
    snti0=0;
    ) D. r# z; s9 y9 B, [for i=0:59 N! e) J( P0 C/ E! ], A+ }% [* h4 o
    snti=snti0+pi/6*i/5;
    % v  p7 M+ }) x  w: [4 kfai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    8 p5 w$ x4 T1 S( F8 L/ v9 t% d+ qpsai=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));
    % E& N' j! x: v$ R- n7 \% @if snti<=pi/2-x(5)
    # k! t- D  l" {1 ^( ]   bati=fai+psai+acos(x(4)/x(3));$ f% {( J& f0 W
    elseif snti>pi/2-x(5)0 {# t6 a3 b- P* m% ^4 T+ b9 b# N
       bati=-fai+psai+acos(x(4)/x(3));
    : N8 E  h4 A. M4 Y4 Iend& y3 S# W9 Z0 t
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;: @4 @5 i2 g. _) M1 ]% n
    end/ c2 V7 G1 @: l' \1 \/ \8 [  p
    - }, i. ?* s% }6 N6 Z& ?! l

    / c: w& ~1 j' f. E# K3 U0 p请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题* }+ |( m0 B7 c6 S* J  H& m& H/ G- ~
    运行如下:) }% [& P8 f; A* c" _
    syms t;
    ' L- j4 x" c# W4 f  A, u5 b: X8 H; ca=4;b=3;  @+ B  W$ P4 V
    f=a*t;3 X+ s. q( ~* s$ R* G
    g=[t-b];
    9 g& j# I, O' ~% `1 `[x,minf]=minNF(f,[5],g,10,0.5,[t])
    : g) z) _. G4 h. G我将目标函数写成:: [6 d' T2 v1 Z6 I% S+ b1 @
    function f=link_objfun(s,t,a,m,n); }3 h  R. m8 Y- ?, {% @: E
    global L1 L51 E  c+ q( l5 G1 L
    f=0;+ L8 ~8 Z- q, f: O8 N
    snti0=0;
    7 Q$ ?9 O+ o: p0 ?. M5 ~. Y+ A' I6 [for i=0:5: R6 Y; G5 m6 l9 F
    snti=snti0+pi/6*i/5;   `+ M4 F& R& X8 i0 g
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);8 h. L6 c/ L4 V9 B6 \+ R
    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));5 F9 p/ y3 y+ h; J; m2 v- m
    if snti<=pi/2-n" C8 `% }: v. C7 {& F/ y8 l
       bati=fai+psai+acos(m/a);
    ( c, j4 ?6 L- J* l* U0 ^/ Q" qelseif snti>pi/2-n" U9 w3 H3 M) i" c# Y  C
       bati=-fai+psai+acos(m/a);
    7 ]- S: ~/ @/ ]( Q3 aend
    ! ]: g4 \; J0 w0 jf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;( o( i$ J& W3 v* }9 d1 g: ?
    end
    # A3 U4 G; l3 w4 e" |& ]运行如下:
    , c2 d' |7 L% q" H3 mclear all;# @' S5 V6 K2 R3 k; U
    global L1 L5: h6 l$ x' x; O; t' c% T; a+ l
    L1=3000;7 f4 B; \* `0 m" _
    L5=800;: R- N6 N+ B  i1 r! h
    syms s t a m n;
    8 p% C9 l- f0 g' ?- Jf=link_objfun;; |1 U( f' n0 w! G* 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];
    1 u, Z5 M2 u! V5 m' o$ F[x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])) o7 X5 I* ~( R5 H7 K; \
    ??? Input argument "s" is undefined./ t; S9 Q3 T9 [8 j- F2 P% ?( P
    $ `% c% h( k8 r3 X2 v
    Error in ==> link_objfun at 7$ b6 m" \' J2 d6 p. B' V* L: \
    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-5-24 20:59 , Processed in 0.411198 second(s), 61 queries .

    回顶部