QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4912|回复: 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循环写的。不会导入。4 H* i! p0 n, C1 V/ i
    惩罚函数调用格式如下:" l5 U5 ?" N" p0 R2 ]# T
    function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)( M- F5 |  m2 \: J2 K5 y6 m# n
    %目标函数:f
    # D6 v$ V2 I3 l, V9 H8 o%不等式约束:g
    4 a8 J; }% w- e1 k9 W%等式约束:h
    3 c; j% J0 d; M  [%初始点:x0
    2 R$ Z: V$ m, r%罚因子:r0
    , y4 q* n0 Y9 N; R7 F%缩小系数:c# e% G/ d9 w6 P* A/ R) i
    %自变量向量:var
    3 [( F0 Q: |1 r( `%精度:eps+ C: G% K2 J1 e1 {6 `
    %目标函数取最小值时的自变量的值:x3 a5 `6 E6 M+ l  [/ i1 D
    %目标函数的最小值:minf9 K/ ?) V4 A) N. N9 }4 Y+ b3 Y

    # h4 e8 d6 k, v
    / T4 y- F+ Q9 F' O4 x( J6 {$ p* P# x目标函数:
    ) ?2 O0 `' A) `9 y  y; ]& Sfunction f=link_objfun1(x)
    ' t9 [% j8 O; R/ \& I0 xglobal L1 L5. w% P# i: C, o5 C& a# F* t
    f=0;" w% k5 ?, ~/ y
    snti0=0;
    1 D! ^/ Q& |( D, l  qfor i=0:5
    & p( }) U( T& @snti=snti0+pi/6*i/5;
    & _- b$ w& i% v% L1 V+ H& cfai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    ! i: e/ G. a# Q! y8 [; _2 w" H0 I5 Dpsai=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));( A- f9 `* B; L
    if snti<=pi/2-x(5)
    5 y6 o, x) |6 K6 c* Z6 b; w   bati=fai+psai+acos(x(4)/x(3));
    " P; u1 B8 ?8 G9 {6 i- aelseif snti>pi/2-x(5)
    ' I: n' J2 N+ {/ D& P& Y. G& ^1 q   bati=-fai+psai+acos(x(4)/x(3));! F# M0 \, N# P/ |
    end
    6 z/ q$ N! \4 b' O  U: l2 if=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;. v& ^! p! ^8 H1 ^/ V
    end$ @% B8 D& o8 y" h
    ! t4 v% Z6 m: V, j

    , M: B  D2 t: r3 v: ?: s3 m2 z. R请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题
    + V# _7 v# H# Z8 D0 g, n! n1 Z运行如下:
    / r5 p, K3 f, _: s3 V9 D( `0 E; }) Rsyms t;" p- _+ I2 c; D4 b. f
    a=4;b=3;% ^$ C& V6 c: y$ U+ L# M- B
    f=a*t;
    : N/ D/ c* ]" Z: Mg=[t-b];8 [/ r& J" s' T( |% Z! j
    [x,minf]=minNF(f,[5],g,10,0.5,[t])! d! U8 H6 O  R% n/ T5 ^; j2 P
    我将目标函数写成:
    4 ~" U2 n9 {2 @0 z2 A0 Bfunction f=link_objfun(s,t,a,m,n)- f+ p, E1 H( Z& s6 ]( B
    global L1 L5
    + s" ?0 v& w5 z' If=0;
    ) H% Z8 Z6 Y6 p, Ksnti0=0;6 Y. q( j( [) F3 u- Y% i3 H+ R% I& @
    for i=0:5% G8 m+ Z! c- _/ q: H
    snti=snti0+pi/6*i/5; 2 C+ u0 H1 K% M+ s+ S
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    " i& @* `" [4 j) W( P  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+ p4 z6 `' Y3 R% _9 dif snti<=pi/2-n
    " C4 U/ Y. I- m0 u' ^  O. k6 }9 y   bati=fai+psai+acos(m/a);
    5 g- i+ S  `1 X/ Y+ zelseif snti>pi/2-n* y5 f4 c9 ~, _1 b
       bati=-fai+psai+acos(m/a);0 b3 x1 c9 v0 q+ V
    end, q( M9 V5 c% r0 N! g* y
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    . t1 r; t% F, E0 g) v1 H" F. ~end/ f. m1 M( K0 S+ p2 X. x% q, S
    运行如下:' e' c: f  j5 o. L* R$ m8 E9 H+ z
    clear all;
    + K: D- c$ D: X+ _, b! C  P  Tglobal L1 L5
    4 t1 S5 U# K1 @L1=3000;
    1 x+ P/ U; A) M7 V9 bL5=800;
    7 f4 O( V% N+ v) Y& q; M- usyms s t a m n;
    ) p  P: U, W4 Yf=link_objfun;
    4 I! O5 X  r4 }3 rg=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];6 r+ C/ v. }1 l9 m" K
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])$ \- l. A7 f, Z! {& a1 u
    ??? Input argument "s" is undefined.
    4 V! s  l: z. e0 F# O0 K) q
    8 t; ^* U$ J  BError in ==> link_objfun at 7
    + U7 e' Y+ u8 @3 ?6 I. wfai=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-7-26 10:03 , Processed in 0.382099 second(s), 63 queries .

    回顶部