QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4924|回复: 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循环写的。不会导入。8 H0 u. D$ F$ }0 T
    惩罚函数调用格式如下:0 y+ Y3 n5 }. \; [) {2 t
    function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    0 j, c) N; t6 i' d; ~2 d%目标函数:f
    6 F4 _( [5 d: e$ O* i" C%不等式约束:g. G$ K3 E: l: w1 o
    %等式约束:h
    / _4 W+ q7 J. ?$ ]" ]%初始点:x0
    + U2 N. N- C# D' X* g) p  B# v" N%罚因子:r0
    , h8 [+ ^, o0 S4 L%缩小系数:c1 b/ x- `3 |! V0 u5 p8 ^3 P
    %自变量向量:var3 J, C, \+ m  P  H
    %精度:eps% ^0 z/ \2 B2 J% H" ?3 Z  s
    %目标函数取最小值时的自变量的值:x& W3 P3 o! r1 y/ a9 e
    %目标函数的最小值:minf: H8 b0 z3 G0 q
    % U8 e4 {& R: x' A4 l0 \
    % i& K* {8 _6 v$ C' {
    目标函数:. }* ^4 d+ ~$ o! H
    function f=link_objfun1(x). U, x$ \0 f$ w% L8 k+ J5 |9 o
    global L1 L5
    5 k! p% S. F( K+ ?/ Xf=0;
    8 a# g0 Q& E) _/ c3 H/ i( Nsnti0=0;! R" J$ F# |8 p8 d0 p' h
    for i=0:5
    * k6 f% U" Q: h) {# E4 W* ysnti=snti0+pi/6*i/5; ! j0 h9 @! J. [$ d" X+ e
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    2 D& Z2 H' r' T" F/ bpsai=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));, @! u% A1 @, m2 p: T
    if snti<=pi/2-x(5)
    / o7 [' H$ b; M  P( b   bati=fai+psai+acos(x(4)/x(3));' m' P$ G" \# p5 M) M, W* U
    elseif snti>pi/2-x(5), Z2 m" Q! v4 W* M. y8 V& H' h9 B/ G
       bati=-fai+psai+acos(x(4)/x(3));
    . s* X' I- a" l% O0 y4 Z% \# [6 Lend& O' j$ v2 P# i2 C" D6 E) J
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    9 _/ W. C. Y2 F- {, O, R/ b5 Cend/ N" p, z6 U7 M

    # X$ W1 r) d" B, i5 c- z% N* E/ E# `- q0 ]
    请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题
    * \9 R& L( ]# E2 y  F( b6 q2 Y运行如下:
    ; X: y  n% l& m- _. t" z! Xsyms t;
    " M# ]9 Y$ o+ u* P! j" a4 oa=4;b=3;
    # b6 Q. b+ t" l7 Vf=a*t;0 w# i, A* Z! n( ~
    g=[t-b];, Y1 N& d% z6 q" |; C+ p, i
    [x,minf]=minNF(f,[5],g,10,0.5,[t])
    1 a8 C: [5 q5 w2 m, l8 U; i我将目标函数写成:/ f6 k4 q4 l( ]: l  Z4 P
    function f=link_objfun(s,t,a,m,n)
    + Z, M) R. E& Y4 oglobal L1 L5
    9 X+ c, e5 }( H% M+ of=0;) H' V$ e' B4 L, A2 m, S7 f
    snti0=0;
    % X3 A& N0 ?* N4 dfor i=0:50 f% W( z7 N% O5 ^( A) h
    snti=snti0+pi/6*i/5; ; z  v7 R  e: A. L% o
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);7 }' b5 H- z5 U2 U
    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));; ^# ^+ ?: j8 j& \. Y- \
    if snti<=pi/2-n& Z2 r6 E) g% }$ x: s
       bati=fai+psai+acos(m/a);
    * o; M1 \( P$ @+ F: s; Z. aelseif snti>pi/2-n) h4 d( s# }8 T9 K% J
       bati=-fai+psai+acos(m/a);
    5 K* w" r3 g' ^" p8 c' Iend/ J! ^  Y4 l' w3 |! V1 y
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    ( l+ ]3 b  f! M9 o0 @end
    ' m, j  F  l+ f2 V% w运行如下:9 n2 u9 `1 Q/ b) R6 V6 O- R. I% V0 O
    clear all;" C  N. `6 n$ C9 ?
    global L1 L56 m! M% M$ ^% G0 r7 z5 i$ C& q# e& E
    L1=3000;
    % O7 }" c, \* H# l/ yL5=800;7 |4 R) D: j) c9 Q3 [. W2 m4 a- B
    syms s t a m n;
    - l) J$ L0 a3 M' _f=link_objfun;" x+ h6 r/ ^1 C! k+ E% b( s8 j, I
    g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];3 n- C/ U/ P: ?' c( {: [" M
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])2 ]7 ^1 ?" i0 y3 A
    ??? Input argument "s" is undefined.( P  V: @; J/ |& l9 x+ k- e

    * \0 s, D0 B1 ?/ |8 X6 kError in ==> link_objfun at 7
      f4 `; G/ K( M, s( Hfai=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-28 00:09 , Processed in 0.558905 second(s), 64 queries .

    回顶部