QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5481|回复: 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循环写的。不会导入。
    4 p& u; b' \4 C) a1 S" [7 y惩罚函数调用格式如下:1 V9 G; a0 }/ j# x& B5 d$ Y* ~" a
    function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    7 o7 b) F& r& W0 i/ q; [( N7 n9 @* i9 D%目标函数:f
    7 ?( z1 D) X) u5 L0 {2 d: J# C%不等式约束:g, b, W5 W/ ]3 k% i
    %等式约束:h
    # n" Q5 v* y6 y+ z%初始点:x0$ y0 U0 j' A, X6 O
    %罚因子:r0; y$ |9 {8 a) N" y
    %缩小系数:c( `" m3 s0 c# F) f' t5 M# M+ c) x
    %自变量向量:var3 I% c7 t9 D5 I3 \
    %精度:eps
    + T$ y8 {: ^4 g% t%目标函数取最小值时的自变量的值:x
    9 T6 _2 X6 v5 |% w; R%目标函数的最小值:minf
      b: B+ I+ e2 v: F$ ~; @
    0 I8 A: V1 u; ]4 W. v' [+ o9 `* U# k9 H! j  {2 r
    目标函数:* P+ {6 e# z+ |3 Z/ w$ k; A
    function f=link_objfun1(x)
    # @: p2 r) z6 dglobal L1 L5; ~2 f/ g* J5 e) n
    f=0;; p8 q! S. u" _- w/ k/ c
    snti0=0;
    ; t& O' w! _. i8 dfor i=0:5
    : Z# {$ v, P& Z5 psnti=snti0+pi/6*i/5;
    " I6 ~1 }% v) X  V  Pfai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    # }+ w6 h2 X% ~, o4 @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));  b2 O; t9 t/ ~7 \* P
    if snti<=pi/2-x(5)
    7 s' P; W; R7 V0 c. C/ F$ V   bati=fai+psai+acos(x(4)/x(3));
    , Y+ T5 k* A) \" ?# E5 _$ Zelseif snti>pi/2-x(5), q. x6 E1 u' y3 [8 e( |
       bati=-fai+psai+acos(x(4)/x(3));
    " R/ \/ R  D* Hend
    * [1 B' y" u* `! A. uf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    ; N9 l1 x3 p$ K  L; `7 o1 j/ V9 Aend
    # O5 E% V0 u8 {9 F0 |" j+ h+ q
    . ]" O' h  q( x& f
    % L2 l( A1 R9 B3 o3 g% e$ r4 X请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题
    . k: v3 U$ x1 E- \, A7 z) y! c运行如下:' C/ [% g! }; l/ n# h! t  S
    syms t;
    . c2 R7 x$ K2 M: y6 Z' Xa=4;b=3;9 k/ ?! h3 Y! d$ G1 d: j6 L( v
    f=a*t;
    ) D  e; C+ T6 S8 S/ ^* Pg=[t-b];: z$ w& [2 Q3 Z! M& y/ Q
    [x,minf]=minNF(f,[5],g,10,0.5,[t])' u  ^7 O) p7 C3 k( s% {
    我将目标函数写成:
    & ?# U, H! X+ Y6 _" cfunction f=link_objfun(s,t,a,m,n)
    7 L* U" a& n: x/ a" l! a, Mglobal L1 L5
    2 k& B/ T( z0 k0 C) i9 {) c. |/ af=0;
    7 R5 f' s6 [2 ksnti0=0;* G$ t- H. b7 O1 o$ x$ v) ?
    for i=0:5
    ( N7 V5 R7 F7 e* vsnti=snti0+pi/6*i/5; % G* Q, p" D: n: d9 A3 Q8 F: T
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);: p" l4 |$ a9 m, V
    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));. l4 B( H  T: |
    if snti<=pi/2-n2 ]2 ^4 f8 G) l9 b* }! a
       bati=fai+psai+acos(m/a);5 L4 ~. ?! J* c. l+ a/ m
    elseif snti>pi/2-n
    8 e3 u) f. e4 B7 i% `' y. K. N   bati=-fai+psai+acos(m/a);, Y: g% S! ~( C/ y: a% o' P
    end* P# x  e2 }/ b8 T% ^
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    & q; r" a/ M; N  q* u& K8 Z. ~( Jend% \' s4 F: Y% p- Y! h
    运行如下:
    $ ]3 a# ^% b8 f5 t) X8 ~, lclear all;/ d: ?, G# l7 [% ~6 g. D/ a# O. Y9 ]
    global L1 L5
    ) o& ~+ H# T6 E9 o9 B. r- iL1=3000;
      h, p; a0 A8 U( {5 y; {; ZL5=800;8 W  h. u5 }- \7 R# Q
    syms s t a m n;
    & K3 |: Y; s% o, ^# ]0 ]f=link_objfun;
    1 G" {; Y- i$ ~( K+ bg=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];
    : m% D" }- y: W% J5 [" ][x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    4 x- h( P7 d. V??? Input argument "s" is undefined.- C/ E4 p& M- Z

    # @) T6 i- w1 _( u& U0 lError in ==> link_objfun at 7
    / B& D3 \, [6 D- C) d" y5 xfai=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-9-27 21:01 , Processed in 0.388732 second(s), 63 queries .

    回顶部