QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4695|回复: 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循环写的。不会导入。. Y% i& D& I1 c# v) p7 W1 ~
    惩罚函数调用格式如下:
    9 I& Q7 ~( R+ j( b6 Nfunction [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    ; M" v" y: J% |9 l! A%目标函数:f
    , N  W/ R0 E& q9 K$ i% }* L# ?. n%不等式约束:g3 h! F' F# E% Z: [
    %等式约束:h
    % o0 a4 w: b# ?1 [%初始点:x0/ \. Z& `, E$ `) h9 F# U
    %罚因子:r0" J/ b- z' E( [* @: f7 ?- `( P( D
    %缩小系数:c# h, _0 R- z" S$ ?4 M/ p) V
    %自变量向量:var' ~; y& Q- @: u1 z9 @% C
    %精度:eps. m, ?* {% a! Q6 q# G
    %目标函数取最小值时的自变量的值:x* ]+ r1 Q" T1 w1 Y3 x$ N5 O
    %目标函数的最小值:minf
    4 g# q( s/ W, I/ P3 y- g$ G4 Q: ]+ x- B& L1 k

    $ Z% x" S7 D- n3 @( J3 Y目标函数:  U8 N! L7 b" P* V: f1 B4 }
    function f=link_objfun1(x)
    * X2 Y9 F( r8 |+ Y7 o( Oglobal L1 L5
    " q" E& j- Q" Df=0;$ J4 x8 \  U: l) Y
    snti0=0;
    - a7 g7 M% [9 b* d; V2 Hfor i=0:5% E+ w  L$ q* d, ^1 \
    snti=snti0+pi/6*i/5; ; U" e' n9 g! R, U  U# s8 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);/ a, Y& _% ^% U" w; Q- n9 S
    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));# s- s. A; b' I+ `: s+ @! ?
    if snti<=pi/2-x(5)
    : b" [( ?  C3 c7 m   bati=fai+psai+acos(x(4)/x(3));
    9 `1 z$ {3 i2 U( Felseif snti>pi/2-x(5)
    / Z0 S7 e5 x- O' t6 U# D   bati=-fai+psai+acos(x(4)/x(3));
    % i, l" O6 I+ M, g, qend. ^! _" C7 l" k6 G, J: H- q) C9 [
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;+ k7 b. N6 O3 z2 U) s, t$ W3 w9 W
    end0 m* V) Q2 V* ]2 w& b: j

    / i* M8 r! A8 h0 x4 U+ o' e; J0 h7 p' @8 ^% Z
    请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题3 ]5 Y! M; O5 Z/ X
    运行如下:
    $ P# a& Q" i; V9 K2 e' o% Qsyms t;
    4 {3 R1 D1 @! N" m/ {a=4;b=3;! g- L: F$ j. `: v8 @
    f=a*t;
    : I8 c1 A' }9 X# n; lg=[t-b];
    . T. ]8 v' @' G% ?( {/ ]% Y[x,minf]=minNF(f,[5],g,10,0.5,[t])+ W% ]9 {; E( G5 @
    我将目标函数写成:" y5 f$ o1 q' Y
    function f=link_objfun(s,t,a,m,n)
    ( C, S3 k  J' ?3 w' fglobal L1 L5; s8 y2 y% Q3 q+ F/ [4 n
    f=0;0 I, e6 n+ R8 U4 _: W" A& o3 Q
    snti0=0;6 M: B5 {( U; n1 E0 B( s
    for i=0:5, B& d+ i) o' W) d
    snti=snti0+pi/6*i/5; ! A/ s) L( ~0 @4 e, p  ^1 T1 h* n
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    / K, \8 h- O- m0 Gpsai=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));
    9 w) t  c3 }0 U. n' s  Jif snti<=pi/2-n( P1 _. c2 }' j6 y& p/ X1 y
       bati=fai+psai+acos(m/a);
    0 B) U! x8 {) c9 s( celseif snti>pi/2-n
    % f) W. G6 b$ x7 t   bati=-fai+psai+acos(m/a);
    ) i+ W  u9 a- F0 }+ bend
    , k9 I: X- B7 H2 O" K2 qf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    " C) L! d; z) p; l0 z1 [end
    6 v) P1 s: ]/ B0 |% i; K1 A, E运行如下:. J: g3 A! b% z# D1 Y9 F
    clear all;6 E6 ?& ?2 l5 h. F, F: @7 G/ m" W
    global L1 L5
    3 a6 U! j( q9 v- ~/ \0 [( qL1=3000;
    ( U1 u, b" A. d! tL5=800;- j" ~% g7 @* X2 m( w
    syms s t a m n;
      I% y9 c+ Z+ j) G( Q9 [7 Kf=link_objfun;% \9 A" x1 i. M  k" m0 ?, ]
    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 }8 t$ e$ Y! m
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])' d  X. |* `/ l" C# c1 N
    ??? Input argument "s" is undefined.
    * ]- f: `$ @$ R' J! s" {6 S. Z7 b9 j6 O: d* [. M
    Error in ==> link_objfun at 77 Y5 m5 ]9 _% M. o8 b
    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-5-2 11:50 , Processed in 0.538313 second(s), 63 queries .

    回顶部