QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5504|回复: 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循环写的。不会导入。! T9 P  X) V" n  @1 s
    惩罚函数调用格式如下:9 ~. Y" n' a% S* g3 i
    function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    & y; }# d/ `4 w4 F% U%目标函数:f% ^% f) Z$ G2 X( m
    %不等式约束:g  e2 q$ @9 T$ Y
    %等式约束:h
    ) C2 Y9 h, `% B3 H0 J%初始点:x0
    ' ^& A/ W% ]" ]" D0 P' [0 k% _%罚因子:r05 N0 a/ @: \6 H/ _
    %缩小系数:c
    $ M3 G6 j  L  O# k- P, i%自变量向量:var
    6 |8 T4 t9 P7 m, |" g, k3 o%精度:eps
    ! {. l2 E! w( j4 S. ]0 K8 ?) K4 ?%目标函数取最小值时的自变量的值:x
    9 s- i& F5 c# E- @- v5 N%目标函数的最小值:minf$ b4 W/ t5 ~, h" o( k$ k+ ^

    2 x) J! f9 y7 [& x$ I
    / H' s/ @( ~# {' T1 D9 ]) M目标函数:$ |* X( S" m/ u- Y
    function f=link_objfun1(x)
    ) U5 a% v! a2 I* W5 [global L1 L5
    * X  Z/ F# u" l8 x7 P; nf=0;
    ! o: N9 M' K6 |  C0 D! E; {& T1 a; Xsnti0=0;
    ( Q7 ]  D7 _6 S/ D. \for i=0:5
    $ ]! x" [/ ^6 M- S: m8 vsnti=snti0+pi/6*i/5; + s1 {4 L4 ]  |- }5 z7 K; Z& F
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);$ \8 E6 A: N/ a& k. }2 O# |
    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));
    , F3 n9 _- g- }% J* k9 Zif snti<=pi/2-x(5)
      I! C: j5 p* S0 {( _4 P   bati=fai+psai+acos(x(4)/x(3));3 [2 m( @) v( M  E0 a; d
    elseif snti>pi/2-x(5)0 r; ~% V5 q: ]4 N2 m
       bati=-fai+psai+acos(x(4)/x(3));
      u& j" ^- i5 }, x- jend
    ' y& J& _2 D4 S( y6 R3 a) yf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;( m& T9 _2 q8 A
    end7 M" ?0 `! ?0 J* b

    7 b$ Y: Q' Z, `4 p+ R2 k1 }# V$ N4 M
    请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题2 j  P7 H/ F/ k* `% J
    运行如下:
    : b* J) ^$ x1 ], }# S& qsyms t;1 I9 R7 a8 ~+ a" h, B, i
    a=4;b=3;/ u1 ]. K3 R% Q! m) z
    f=a*t;
    8 h0 e- A5 @* ~% z4 ^3 g4 _g=[t-b];6 ^: t  c+ H8 `6 H
    [x,minf]=minNF(f,[5],g,10,0.5,[t])' h0 U* e! E; d  H1 Y5 k
    我将目标函数写成:! l6 Y9 Z& M$ k2 T9 P) X5 c
    function f=link_objfun(s,t,a,m,n)& ^% [$ m+ W8 x  ~9 _/ Z! s
    global L1 L5
    7 d  k7 a/ h% ^8 df=0;1 z3 J0 S4 @+ }6 g6 f
    snti0=0;/ A/ P1 W2 X6 @# Z, ]
    for i=0:5
    : z0 e& }! V& d; @5 gsnti=snti0+pi/6*i/5;
      s7 H4 S& t1 d/ Z, R8 wfai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    ! Q: ]/ ^9 [( i/ Q9 Ypsai=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  }; q' y' }# Yif snti<=pi/2-n9 w, K- N, Q/ ]- j  ?+ F. Z9 \
       bati=fai+psai+acos(m/a);' |  ?+ J2 [: s% E( |7 A
    elseif snti>pi/2-n
    # r3 J9 q; u+ {   bati=-fai+psai+acos(m/a);' T+ {$ i/ x$ t, _
    end
    . l, V- z" V" O7 H# J$ q& \* Yf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    $ u0 k! y0 Q* B: N9 Hend
    5 C0 g4 F- Q) W5 N5 D# @运行如下:8 f6 ?) Z# [  h5 t8 x( g8 E: F
    clear all;
    9 b0 _% P8 O/ H5 Wglobal L1 L51 }, `( H5 I, P  u& ~
    L1=3000;$ ?/ a9 I7 c* v# w- @* y" @
    L5=800;
    9 Q- l; G. ], g- Usyms s t a m n;
    - o: a  g4 I, V7 ?% gf=link_objfun;2 ^) i3 w! v3 E% y6 _2 g
    g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];- P% z" E. e8 A& A/ I$ d
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])& \; F/ R$ ]: j% z- s) _
    ??? Input argument "s" is undefined.6 ?/ u: F: ^8 }# l- d7 K

      ?( e1 w0 P' C3 D# z+ wError in ==> link_objfun at 7
    5 h- [( O2 T, o7 rfai=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-10-7 10:46 , Processed in 1.289764 second(s), 63 queries .

    回顶部