QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5392|回复: 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循环写的。不会导入。
    & t( U- R" S% o& `" e7 Q% I惩罚函数调用格式如下:2 g  y& Y) ^6 \2 |& `
    function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    5 o! n7 @$ s1 m" M$ C%目标函数:f
    ! E1 T7 P5 A, e! ?; ^! H3 A%不等式约束:g8 E0 j6 L  w& j- b1 h4 Z: Q
    %等式约束:h
    5 P( X& D7 l0 e5 w8 Q$ ~2 O. C* S%初始点:x02 K# S9 ?# {2 z( |, b
    %罚因子:r0
    / P5 q/ ]7 L+ L%缩小系数:c
    ( I6 {& F+ G3 M. g; t%自变量向量:var
    1 M5 _8 t/ R2 y7 f3 C%精度:eps
    : j0 x/ K3 v( X9 R, i+ [%目标函数取最小值时的自变量的值:x
    ( u6 }( r/ n8 Q%目标函数的最小值:minf9 M" w& X! p" @7 E* \$ t5 _' m
    ; C. Q6 a7 p2 O7 [8 L0 F

    ; G; k5 {# R$ o( n$ u" _目标函数:
    ! F8 Y- S" ~. M6 a9 `3 hfunction f=link_objfun1(x)
    ) v# s) y/ |2 x# fglobal L1 L5
    0 ~* P+ |  u- d% Z! S2 [f=0;& G( @  q1 n4 q0 W# f- ^
    snti0=0;
    8 n$ R- J& S6 R5 o; Pfor i=0:5
    - Q+ X/ K- J$ m* x; I& ?6 I+ vsnti=snti0+pi/6*i/5; 6 i; t5 b1 P5 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);
    / y$ _2 N8 h3 ipsai=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));8 u2 B- O* P4 |: y
    if snti<=pi/2-x(5)5 S% y* s! }4 f8 e- ?4 [7 c
       bati=fai+psai+acos(x(4)/x(3));+ D7 ^9 |5 l5 r9 n" r3 O( |$ I
    elseif snti>pi/2-x(5)
    $ s4 f  g- {" k9 Q' ?; z1 q   bati=-fai+psai+acos(x(4)/x(3));6 X5 i7 s: C1 f/ k
    end
    / E( g* ^6 ~8 ~1 |f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    * @/ Q, h1 B9 g. @1 `9 }end
    ( q# T+ O: m3 Z/ l/ t, [$ T6 ]" Q' T( r: Q& z( {6 d0 M
    6 }2 `  z! w; L( B' ]6 y  W
    请诸位帮帮忙,我的体力不多。

    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 Q: j: Z3 N/ q+ @4 B5 ]2 V
    运行如下:% C/ u# {. r+ G5 o4 T
    syms t;
      {# W0 l" a* B7 `- Ka=4;b=3;9 @# h1 `2 M! X( t
    f=a*t;: L8 e" o2 p# c9 [  ~$ o
    g=[t-b];9 [* C+ M' r/ h: S6 A( t
    [x,minf]=minNF(f,[5],g,10,0.5,[t])3 ~, m* q6 N/ k+ G
    我将目标函数写成:4 i9 P% y  F' I) r- B) ?0 P/ {1 w
    function f=link_objfun(s,t,a,m,n)" Q) q0 X2 a7 z/ Z) a/ B) U/ Y
    global L1 L5
    7 Y/ m# [' X4 x1 u; Gf=0;
    ( h  p* Y2 |8 s5 z' A  hsnti0=0;
    3 \- F9 I' e- o& y) [. {for i=0:5$ s: S0 D' N" a; t
    snti=snti0+pi/6*i/5;
    : M+ \2 H5 U" c3 v2 gfai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);0 U9 }$ @9 h' F0 V9 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));2 ~% @9 b9 }( F
    if snti<=pi/2-n
    4 ]9 X; N9 x" t# ~: g  U: G4 ^# w  c- p   bati=fai+psai+acos(m/a);! g+ c! f: D4 i6 B2 y
    elseif snti>pi/2-n
    0 }4 K! m' ]  k& Z   bati=-fai+psai+acos(m/a);" q$ p+ J* @0 [! B+ N
    end/ q/ T7 k8 T0 o  ?+ w  x: @
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
      y  Y% t0 U, h0 jend! e- |1 p1 v7 \8 D
    运行如下:) ]' ~3 R* L9 k' ^4 D6 t
    clear all;8 {5 ?" z! g1 d: f2 r
    global L1 L5
    * f- t+ M8 X6 N4 iL1=3000;4 k) Y2 o1 ~& l5 ]
    L5=800;7 x1 c* j( m+ f
    syms s t a m n;
    7 R- ], K; z1 r9 M* S9 Zf=link_objfun;+ z9 u4 \( W/ {7 g. O
    g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];
    ( l* ?4 z5 L& E3 s. l[x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    7 f! Y. c) x% V: m??? Input argument "s" is undefined.; ~) @- ]' x& p& @% F2 R, e; }2 Y

    . U  S9 r5 T; K2 s, C5 vError in ==> link_objfun at 7
    * w$ t3 @+ u2 z& J) x6 J, `  T6 o0 Q1 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, 2026-8-23 06:48 , Processed in 0.477184 second(s), 64 queries .

    回顶部