QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4802|回复: 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循环写的。不会导入。
    9 B% d3 p- Z" {5 @- V6 W, o惩罚函数调用格式如下:
    ) x, ]4 E3 h+ b2 `1 M% h! lfunction [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    / V5 y; C6 m& n$ g* b2 S%目标函数:f/ j2 o5 f2 F% d0 h
    %不等式约束:g1 ?; F2 ~: g5 U
    %等式约束:h
    ) S: z0 Q1 V  S$ ]6 `5 q, ^%初始点:x0
    7 w4 q6 i$ l& f2 c%罚因子:r06 t% [' p6 g- X/ q" f  ~
    %缩小系数:c
    0 H  S( Q: X+ B! @- p5 ?/ J7 f%自变量向量:var
    7 M+ k) X+ {) n0 _; B4 C) A%精度:eps: L5 {6 v0 R; I/ B8 R
    %目标函数取最小值时的自变量的值:x
    - L8 j0 B3 q" N9 k8 c%目标函数的最小值:minf$ O. _8 s2 m* O2 V. D
    : e9 X5 L3 D. U6 ?) s' N% K
    1 n$ L' N) B, p* h
    目标函数:3 L! Z8 J8 V; }7 b1 }' s
    function f=link_objfun1(x)7 }3 r: M: \1 J! Y1 o3 _6 o
    global L1 L57 }4 b$ f" _6 n! v* s& F
    f=0;4 r4 A$ [# Z. D
    snti0=0;  }& P1 O- Y; k& g' T# m
    for i=0:5' G2 k( h3 V! \- F" S6 C
    snti=snti0+pi/6*i/5; . E1 ?% |6 ~0 Z6 x8 r% \8 n
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);1 N  Y5 o' ]. f: o1 C* n# B( U
    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));! P- G- }9 {  u. {# E% S& ]* Q
    if snti<=pi/2-x(5)% o' E. r# `+ Y! m/ O1 X' ^
       bati=fai+psai+acos(x(4)/x(3));
    - @* ?6 Q& ?2 |) Lelseif snti>pi/2-x(5)* T8 z; K- w5 k0 w" Y2 ~! x$ C
       bati=-fai+psai+acos(x(4)/x(3));
    / m" d7 D; @# _  N  {0 x3 oend" E2 C* w" L+ S. E, V
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
      W, y3 X$ n* w7 V2 w/ M  s* R4 Mend
    5 w/ Y- Y/ j" ]; G6 i
    0 ~  @# S2 w- A7 }0 b
    : b0 ~4 l. ]$ v. X9 `4 R9 Q. Y请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题. l9 M# y7 F, K  d9 Q5 p, v
    运行如下:
    ( d6 q' F* \6 V. X) c) n5 ^syms t;' M9 e7 C0 b" W* k( c
    a=4;b=3;
    7 P( |6 S1 `7 Q! R: p0 Hf=a*t;+ N7 d4 b' e* m( P3 _% V4 ^
    g=[t-b];
    % m" O+ N) B( H1 Z! \7 ~! `: k[x,minf]=minNF(f,[5],g,10,0.5,[t])1 i. u( w' h" v4 n, e
    我将目标函数写成:
    3 a! m* p' m, x! y5 N( Z' Jfunction f=link_objfun(s,t,a,m,n)
    , C8 K( d- d! ~: Wglobal L1 L5
    , l# O# ^$ x- }0 i* i% K7 x& Z# If=0;
    * l/ V  T9 P5 ?" J2 S; p/ \snti0=0;* n: j& O, G* q+ p
    for i=0:5; G& @' y, U5 _
    snti=snti0+pi/6*i/5;
    - H/ X: K% w0 q; R/ J! s; t: F) Vfai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    7 E" L6 b) v8 N6 ]9 L; c; C  _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));
    ! q& P# Y3 D; j9 M+ `if snti<=pi/2-n4 @: ]- |. q2 @0 {, @
       bati=fai+psai+acos(m/a);
    ; Z5 y( ?& d7 {0 ~8 Q, }elseif snti>pi/2-n5 X7 e9 X" |, N1 a; n+ R
       bati=-fai+psai+acos(m/a);
    ! p! h3 D' i! mend
    " K) z' j4 O" k+ n9 W, I+ f9 Df=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;5 E& s- p* d( O% j6 R
    end
    ' ^0 _9 P7 D- n3 \" t运行如下:( W5 s2 Y& ~6 O9 x$ P
    clear all;" z1 [" P3 {# r0 |' b+ J9 V
    global L1 L5% R$ K0 D" {1 Z
    L1=3000;
    ' [* a! h, n- C' pL5=800;1 J: K* w+ k( E3 Q
    syms s t a m n;6 O& n, L6 X4 j7 `8 |6 }
    f=link_objfun;
    ! `3 J+ z! J/ y$ @+ Cg=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];
    / t7 h$ B8 p2 a[x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    $ n+ L- \  u# L: t& ???? Input argument "s" is undefined.
    / F* o' i* @- K7 z! l
    - e- M* c) B  T/ V4 Q8 P) ]Error in ==> link_objfun at 7
    ) Z6 c) a' b. I7 o1 o+ `+ E3 H7 ^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-6-20 19:25 , Processed in 0.721887 second(s), 63 queries .

    回顶部