QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5257|回复: 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 i3 u" F: k6 U) B) p
    惩罚函数调用格式如下:
    , z# [' D4 G7 @/ I: U. F, j# \function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    $ ?3 a4 S. b+ Q8 i) o+ R0 T%目标函数:f+ |; X6 Y" G" {' N7 v+ S
    %不等式约束:g7 I9 j# x8 L; H2 {2 |, K
    %等式约束:h! K' |0 Y. @* r2 f! v
    %初始点:x0
    & L+ Q1 i" L) ?0 p%罚因子:r09 J: q) T6 @) G8 C+ N
    %缩小系数:c; o" |4 }( v, Z" o4 Z& U- W) P
    %自变量向量:var% q5 J- I4 A/ ~; {! `' ?
    %精度:eps
    4 J$ C6 Q; S* o( c+ {%目标函数取最小值时的自变量的值:x
    6 o2 V/ O) p, ]! c, l%目标函数的最小值:minf; ?8 y1 d# g) h" H# U
    8 Q" j+ d/ r0 h0 m0 C8 T/ Y
    7 V3 p$ I6 W, n* C$ V4 ^
    目标函数:
    1 M8 q. I0 S0 f3 G% W) t) m2 R4 Tfunction f=link_objfun1(x)( s# q& x" G2 r' w& H/ x
    global L1 L55 {  y7 q7 q' }% A2 P
    f=0;. u; B5 q6 R/ \# m0 \; e2 H
    snti0=0;- j6 Q3 A1 s3 r! U' }+ w
    for i=0:5) i# R+ B* ?9 d5 G9 Q7 k6 }) j
    snti=snti0+pi/6*i/5;
    / b- m( f6 n/ V" i$ u  ofai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    8 _' V9 L" a, o" M/ }% _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));) E( |* o' t" X- M5 h8 ?
    if snti<=pi/2-x(5)
    4 s' E  F4 k5 |, y: a5 D   bati=fai+psai+acos(x(4)/x(3));8 g1 S- Z, p2 j/ O3 y: |
    elseif snti>pi/2-x(5)  l/ N% {% Z4 H! j/ }+ g
       bati=-fai+psai+acos(x(4)/x(3));
    ; Q' d) d8 ?# y7 @$ Rend( X" F, @9 A; A$ A- E* w
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;- H/ X5 Z; K! \% Q9 n
    end
    $ f/ \& ^' j/ d" a9 y/ ]% c9 H4 a( `( ]! z( z' y5 I& n2 ~

    * T7 e, ~" O) e' a% f9 S: E请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题6 ^) f; c5 r  t0 g: y* q% G
    运行如下:) e6 w$ M$ x; D+ D" w: p& _0 V, U) d
    syms t;
    ( a9 R! o) V& X# i/ i, U' oa=4;b=3;% \4 l+ \0 l1 X
    f=a*t;
    $ m7 p! v/ f3 K8 J* Ig=[t-b];2 x7 ?5 c% d- B8 ^0 Z
    [x,minf]=minNF(f,[5],g,10,0.5,[t])
    6 n/ R; ^3 w' X- u. q9 [5 w我将目标函数写成:
    9 ^8 ]5 W2 {. k7 {/ u( [function f=link_objfun(s,t,a,m,n)
    ; ]  E7 Q! I! Lglobal L1 L5
    ! N; v% j2 M' W+ p% T4 ~f=0;+ N$ k6 m8 `3 [% ]( F  o% c
    snti0=0;
    / y- k6 d* i+ {for i=0:5
    . k, Q8 X7 k0 b% _& V# msnti=snti0+pi/6*i/5; 0 d. k7 m3 W9 E/ n! t& H/ n
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);9 Y% {5 `6 a" s3 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));' S& v% s# ^$ T/ F
    if snti<=pi/2-n
    % A% e4 u( `  U   bati=fai+psai+acos(m/a);
    ' K1 y& Y  E2 ^; G' u) ^' Z' Z0 h) }elseif snti>pi/2-n
    / h& J- f9 W3 e  d- Y   bati=-fai+psai+acos(m/a);8 \) Z) g  t/ K0 b% m- r
    end
    6 t/ v& I2 B7 V$ e5 mf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;/ B- Y8 {, X) n% k" {' P
    end% j- U* a' M& l7 g$ \  p/ M! [8 U
    运行如下:
    9 }' E" h0 l+ x& Xclear all;$ A% w# B. O0 l- Y, j
    global L1 L5
    1 U! O% I  q! p7 YL1=3000;! X0 ^. u# j- ^
    L5=800;# c. ~! M7 E) {, D) a2 n6 s
    syms s t a m n;
    . W5 n' E$ r* l+ }0 A! @4 gf=link_objfun;' a9 _9 U! b' \; M/ C4 R' ^4 H
    g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];
    & ^% ?4 E% L. I8 y/ l[x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])) u4 _6 Y8 w3 j! B6 D! `  V
    ??? Input argument "s" is undefined.8 h- O  n) Q/ K( A- j) i
    % B4 }- g; V- ]- j+ ^& v" R
    Error in ==> link_objfun at 7. ^, U( W! @( [1 O# S8 o2 C
    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, 2026-4-9 18:43 , Processed in 0.441043 second(s), 64 queries .

    回顶部