QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5318|回复: 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循环写的。不会导入。/ _2 c- X0 x5 K8 N: f
    惩罚函数调用格式如下:
    9 v. t5 E1 }' G+ r+ z9 M7 k: l' ufunction [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    ; [6 l- b6 ~* A2 e) C0 w# [' K* J, f%目标函数:f
    " s3 \7 n  [8 n%不等式约束:g0 I4 O" |! @) D1 X! }+ }2 N, o
    %等式约束:h
    / [5 y) [  C% d% l8 G%初始点:x0
    " u+ d1 U8 D/ ^0 e* K%罚因子:r0( X- K" p3 {6 l: A# V
    %缩小系数:c
    6 h, A- w/ E9 i%自变量向量:var
    : A1 e8 V% U% N%精度:eps
    0 P4 V' z( n" u. O6 p$ h0 i0 G! A%目标函数取最小值时的自变量的值:x- Z2 W3 g+ R1 ?8 Z8 `
    %目标函数的最小值:minf- G; B0 X5 B; ]( N! u) M
    8 L% D; F- d% T/ R0 |% M

    / \# g) p+ j" u8 s# o目标函数:' t' X; D) j/ U- ~: N" C6 O3 D
    function f=link_objfun1(x), k  @0 @3 V- _2 N- H
    global L1 L5
    6 M5 m2 l& J( V7 Qf=0;
    + m5 u" V- L7 A: J7 v' h; G* G  Ksnti0=0;$ ]1 u$ Q; [( c# M% ]" a+ J
    for i=0:5
    ! s$ z  r4 @! Ssnti=snti0+pi/6*i/5;
    5 U) \0 z8 I7 q4 r: nfai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    $ o% U9 `$ T, e2 Z* m& Cpsai=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));/ Q! i+ v! v" }- ~% z0 g: g
    if snti<=pi/2-x(5)+ F& W. e2 ]* R0 V
       bati=fai+psai+acos(x(4)/x(3));
    9 D9 I. {0 w; w# q; Kelseif snti>pi/2-x(5)% a* u0 q1 S/ M# S
       bati=-fai+psai+acos(x(4)/x(3));5 R- b: W5 ^  M4 ^- w- M- v
    end
    / c# F" V# g" u% }  L  V% }) B% j% t% Lf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;9 k3 V* U, C" K2 V
    end% V# W1 F; A+ u

    / C8 a  Q; n* D. i
    6 w2 w+ T# E/ `. T请诸位帮帮忙,我的体力不多。

    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 u+ ]) h7 z0 E/ W- [运行如下:- ^4 h( X) J7 y! \" w& b* H
    syms t;
    , _2 _" K: V, ]8 U# Ja=4;b=3;6 H  R- d' b2 |+ V* _  D5 x
    f=a*t;
    - Q! p+ E. U) x, Jg=[t-b];% U3 [. |, Y& d2 b$ i; J
    [x,minf]=minNF(f,[5],g,10,0.5,[t]): K2 }6 K& }! q
    我将目标函数写成:5 P7 F' U6 {6 F0 `
    function f=link_objfun(s,t,a,m,n)
    - H' w+ Q6 W6 h  }global L1 L5) ?7 Z$ S$ W! H0 x6 B
    f=0;+ n/ K8 c; f' s% o. y1 t, r$ m
    snti0=0;
    8 }$ D: f9 n/ o" A* o$ Cfor i=0:5+ `, ?/ k& c5 n8 L
    snti=snti0+pi/6*i/5; 5 Y& [6 F8 x2 C$ n0 M' U
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);. ~$ t# g) o% E- w* O$ a
    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));4 R. h8 o6 }- s* |1 l( u
    if snti<=pi/2-n
    ' W* I+ j& J. q2 X8 k* |9 ~   bati=fai+psai+acos(m/a);
    : d- c6 ]! Z1 K2 p9 velseif snti>pi/2-n6 f. F$ P$ Z. p$ h3 K  I/ [
       bati=-fai+psai+acos(m/a);: i4 y3 |, g/ A3 o6 R
    end2 ^4 F: `( H: [( o
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;0 G8 K, @( t- x, e7 x! c7 _+ [7 n
    end
    ' e* q0 L# [1 l2 J) T运行如下:, U: j2 A' |' B; g$ o5 K
    clear all;
    / }1 Q1 c- k3 j. O+ `- C( }0 Uglobal L1 L5
    ' i. y) j+ h( q. M1 z4 a6 cL1=3000;
    # [6 E; n- ^7 kL5=800;
    # I: L5 w9 f5 E( D! v: }$ s( Jsyms s t a m n;1 l9 S5 D8 p6 }( f7 e  d
    f=link_objfun;$ y7 X4 a5 F# d, a
    g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];! u5 n2 F; H0 U$ l
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    / P, ?# I2 `1 `??? Input argument "s" is undefined.
    " Z3 t: E  r, T# ^- {6 }' K1 N1 h9 z, D2 C5 |' o
    Error in ==> link_objfun at 7
    . H3 S4 P% R( `, @2 Jfai=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-6-12 11:35 , Processed in 1.460519 second(s), 63 queries .

    回顶部