QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5073|回复: 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循环写的。不会导入。
      \) V2 C0 [5 t# l惩罚函数调用格式如下:
    6 s7 V/ Y+ F5 b- t- zfunction [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    , n% U: |3 D2 B1 M; x%目标函数:f
    / q& G$ f. F! r%不等式约束:g
    ! `9 i% E1 w5 \4 X%等式约束:h5 V' f  J0 P1 @! H: e
    %初始点:x0, D, H* G7 N; z3 O% N, i# b- [
    %罚因子:r0: x4 t5 J. r+ r9 q# G6 z
    %缩小系数:c
    % [6 ]. A* B) ~% A%自变量向量:var
    , p, O9 G2 l6 j1 E' D/ X%精度:eps- @: x, g! _3 _/ M/ T+ I
    %目标函数取最小值时的自变量的值:x7 e1 A6 @. ]& k
    %目标函数的最小值:minf
    ) M; h# X- Q+ x: x0 o
    # ?; I* A7 o  z7 r1 ^; j
    % z4 _4 J* o' l; [( \5 X& j& g5 p目标函数:  ^) j3 v- C$ [# ]
    function f=link_objfun1(x); c& j8 z+ o2 {6 }2 O* o
    global L1 L5
    ! _+ `7 j2 D9 }8 F3 Hf=0;3 [& ]0 \0 c% C2 w: v2 l
    snti0=0;) J0 v" z4 O% b
    for i=0:5
      r, p1 o& ]8 s; _, k# W8 Gsnti=snti0+pi/6*i/5; # y7 U# i: L0 g0 A, |7 \, U9 R
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    * V8 v0 B: K; q* ~  f+ z" N& ypsai=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));
    + `. B" U' e: [. i- o6 W' i$ Oif snti<=pi/2-x(5)
    ! p- {1 v$ g2 S1 A9 v   bati=fai+psai+acos(x(4)/x(3));
    " E$ Z  a: b% i! [& N* n8 Gelseif snti>pi/2-x(5)
    6 E: o$ F5 M  _5 J/ x9 ^0 A   bati=-fai+psai+acos(x(4)/x(3));/ |! l1 w( D+ s! O% m; D
    end
    8 x# h( A, N# v/ j4 s$ A4 R' {f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    9 M* `/ f# \5 y. C2 [7 Xend" E2 p3 E) X3 I8 {: w" K0 k
    ( z0 }! j3 a  z; P1 l7 c; p  ?
    1 U% s" D. U4 x! P' I# C
    请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题! l, {' {3 k# }: w5 p: G$ Q
    运行如下:
    : i8 X0 b! g4 d" t( T1 Isyms t;7 u4 [0 j: F  u; g8 ]. f
    a=4;b=3;
    / i9 k8 A& o4 A4 ~f=a*t;
    # d* c4 N6 T0 @) _2 \% G4 k: ]$ Pg=[t-b];
    # k( T8 j* A; ]2 V% Z: d* z[x,minf]=minNF(f,[5],g,10,0.5,[t])
    , ~: H$ K+ |2 Q- C+ [" H; x0 B$ t' l我将目标函数写成:$ G% a0 A% I# M8 x
    function f=link_objfun(s,t,a,m,n)
    5 W+ L. S9 e: b$ Fglobal L1 L5
    & a# x. H  I9 Lf=0;5 ~+ l; \8 w( `% o: t2 q9 z/ M
    snti0=0;
    1 F8 }/ M1 L! y% ]% y  Afor i=0:58 g8 d; r# U& f7 k
    snti=snti0+pi/6*i/5;
    ; j1 E9 j/ c8 w# zfai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);  l6 T* {4 M7 m) Q$ O7 |2 x
    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));
    / e/ C, p8 r. ]/ ]) _if snti<=pi/2-n
    7 j+ Y; J: k5 x! S# X   bati=fai+psai+acos(m/a);* [2 W; [5 W) C
    elseif snti>pi/2-n
    0 Z1 f( D9 ^& }" C( Z, N   bati=-fai+psai+acos(m/a);
      W5 u+ O, w$ n0 x  h" X5 K4 J- Kend% ]% h! j; j  i; ^
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;  _- d, v2 Z! `% U; i
    end
    ( q) o# ^% n4 K% l: u% k运行如下:
    * Z, r9 X3 m2 `* l. K& B. A3 Bclear all;
    - P, d( l- |, Z2 H; }9 q, w3 rglobal L1 L5
    " ?' l; P" E; c/ i! a& @' {. fL1=3000;# u' m6 [: M9 t2 A0 h
    L5=800;2 r' C5 X) t- \" k
    syms s t a m n;
    ! t3 K  Q5 m% ~1 if=link_objfun;
    ! z4 N  X- c- h5 U# f' D3 D1 G) Xg=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];
    - g2 r6 s' U/ {4 \[x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])* L: F$ V, m4 j1 W* j
    ??? Input argument "s" is undefined.3 {4 N# h2 ]5 ?7 p( T/ u' f
    2 p1 Z  j. ~: U* B4 k$ c5 ]1 x
    Error in ==> link_objfun at 7
    + Q: V- R& H" }! tfai=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-11-9 17:25 , Processed in 0.589034 second(s), 63 queries .

    回顶部