QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4984|回复: 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循环写的。不会导入。. g6 J1 s% p' N: [$ \% g
    惩罚函数调用格式如下:: i& w4 Q% U  o( p; i
    function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    + y3 u+ `8 d; ^' u/ u! u%目标函数:f4 G+ A; v0 U9 ]! Q) O  j+ M8 D" `% J
    %不等式约束:g- l2 \+ I% I7 J% V" x4 b
    %等式约束:h
    * {( U) K- d5 R% {2 L7 u( x0 s%初始点:x0
    - l9 z& m; G2 j+ [%罚因子:r0
    , S8 W- J- m( U2 F0 [%缩小系数:c  u: y4 `, b" @; X/ l  }
    %自变量向量:var, t+ l" i) x! B1 X* W. U
    %精度:eps8 d! F: G  ^3 x6 R
    %目标函数取最小值时的自变量的值:x5 _9 y# A5 k6 B( E; ~: k4 Z
    %目标函数的最小值:minf
    ; q: @% D4 S7 E3 A: G! H. O0 [2 o3 Y
    ; g% ?5 k& `/ ~7 ^) C* h6 D- _. S, y
    目标函数:' z% k2 k( |( i: R3 O! J
    function f=link_objfun1(x)8 |7 W6 ]' [9 E; Y: o- c0 q5 n
    global L1 L5
    1 X: ~" L0 y( kf=0;
    0 H- Z, I0 b7 i- |! o) s3 @4 @1 dsnti0=0;1 h7 l8 e5 [2 M7 h
    for i=0:52 M0 G" Z! d6 s  D. }9 \% l: C
    snti=snti0+pi/6*i/5; ( F& u' _% S! w0 t2 C; _# `& x3 K
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);) n+ ]( D" D* ?+ h4 `
    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));
    $ }2 k, a- Y. ?5 h- x' h/ Y: tif snti<=pi/2-x(5)
    7 k" H5 C' [- g& V   bati=fai+psai+acos(x(4)/x(3));
    ! z% L5 j% Z# }9 b, O4 ~elseif snti>pi/2-x(5)
      q2 Q8 w' _& i" g3 t   bati=-fai+psai+acos(x(4)/x(3));+ e! G. P+ M1 v: _  o
    end
    5 Y/ H# k# K" O2 S1 ff=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    8 O9 r& d) G' d' x8 R' W, Fend: Z) t/ |3 X* i# [
    7 a) e& ~# b- i, `0 |5 S

    ) j3 ]( U; n- }3 q% f请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题: m5 n/ @* S0 v5 c) V* x
    运行如下:
    ! {& a3 ]2 _1 t- N! \. O: }syms t;' @3 ?: f* C3 v
    a=4;b=3;, c  t2 D+ ?( P) f
    f=a*t;8 k# q! p9 A4 x2 u$ U# V4 j
    g=[t-b];
    ' S1 B( y' g: M1 I% Y+ e[x,minf]=minNF(f,[5],g,10,0.5,[t])
    0 l! ~  _/ Y$ w5 I" b+ z/ }' l我将目标函数写成:5 [# K: x7 a/ `3 F/ Q
    function f=link_objfun(s,t,a,m,n)& M; l# Y2 ~/ V. a* P0 ]9 e9 Z
    global L1 L5
    ! _( I2 J! O: p8 {  xf=0;
    + a9 O& ]8 @* P1 y! e/ _snti0=0;+ D5 L, |/ X% V/ i; {
    for i=0:5/ M4 X, w- S  `: r! v
    snti=snti0+pi/6*i/5;
    + O' T  {& t" f" k2 ]fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    * [  a: S9 t8 `; Q9 Lpsai=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));0 a/ B8 N% u2 \2 W6 m
    if snti<=pi/2-n
    - ?* K4 d  j0 @) {1 @   bati=fai+psai+acos(m/a);. Z3 ?( I. D) B0 i* _3 B- c  H
    elseif snti>pi/2-n% @0 f' j/ N( u3 a! j3 \! S$ u8 }
       bati=-fai+psai+acos(m/a);: g5 ^6 [* [8 V+ G, [
    end' G7 T/ \- @( P* N# z! m/ |4 L
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    ! N! c2 i: m+ u, B& K% qend( ~8 ?; P1 @' O" D! W5 p5 }5 P
    运行如下:) K* q& `5 a( k6 b4 i; j7 b1 L& b4 v
    clear all;
    2 W7 U' R5 i7 h) w0 o6 F! [global L1 L5
    - X- {) Y8 b) m: k& f6 ~L1=3000;7 v: {9 s; l2 g- ~
    L5=800;
      d9 Y: K! v( r& c6 j" M0 tsyms s t a m n;
    ( d# @9 B, w+ ^7 Z$ \4 ]5 K% a$ ef=link_objfun;# k8 y6 |1 f. o% e, h5 ]. x; T
    g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];- M# b+ `4 x- Z, g% m; i) o  M
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    " G3 F7 c. }( Q+ a5 t8 Q/ ^( i% s??? Input argument "s" is undefined.
    8 w( _' R8 Q5 \. H2 ^8 U( D  l' ~: j; V
    Error in ==> link_objfun at 7( S( H' F- Y9 R+ x: o
    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, 2025-8-20 01:46 , Processed in 0.742858 second(s), 63 queries .

    回顶部