QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5391|回复: 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循环写的。不会导入。1 {" H# F* p) @; ~
    惩罚函数调用格式如下:
    7 o# [# d( F2 Y/ l: N+ [3 ?function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    9 Y, V# A& M5 K5 M%目标函数:f
    9 v" m% J& a( Q4 `7 N$ K%不等式约束:g" D7 _0 u7 b! S7 Z( @5 B; C
    %等式约束:h. A, J5 q3 u* _- I5 N! G1 f
    %初始点:x0
    # a4 J+ g" ?1 k) n$ I%罚因子:r0+ p- G- c9 F: P: l# N6 ~2 J) U
    %缩小系数:c
    % P, G  u" B- p$ o6 h1 e6 Y%自变量向量:var6 N3 F" _3 c! T: ?
    %精度:eps
    ! l' B" p  o5 p* V: l%目标函数取最小值时的自变量的值:x
    1 Y. u' x! e, C! d' z) ~: w%目标函数的最小值:minf0 h' E9 q2 S! u8 J! p
      |$ O! e, q+ l+ r( \# b. U8 ~3 d% V

    ( [5 {- \( L  ~4 [! i8 Z5 V! {目标函数:
    + T# u. A9 {5 Z2 v/ X* u( B) gfunction f=link_objfun1(x)* H8 P/ ~3 X# y7 F, ~  g
    global L1 L50 K+ ]! l, m+ U+ W. ]+ m
    f=0;- N) s8 d- `3 k6 D. F2 j. r
    snti0=0;
    " u$ b1 b9 l  {0 a  M# ufor i=0:5
    7 v% A$ R9 N+ |  z7 x: `snti=snti0+pi/6*i/5; 7 W9 ~' D, Y+ O+ Y4 |7 \) s
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);& m4 @) c0 V  Z$ V
    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& \7 K) e1 S
    if snti<=pi/2-x(5)
    2 D) h7 R% W3 [2 D7 W   bati=fai+psai+acos(x(4)/x(3));( j; e" V: I0 v6 D$ F4 n2 S6 Y' o
    elseif snti>pi/2-x(5)1 }5 e' o, Q2 n) q- a/ ^. I
       bati=-fai+psai+acos(x(4)/x(3));
    3 Q) }% O5 e- [, E- b- Gend
    4 w; X/ s8 ]0 N( F! Gf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;. e* I, L* U; I4 d8 C* I
    end, n$ R0 C& c/ d. u" D" W
    & u. r0 G' A" y0 J& C3 o

    & ?* i7 j: U! K7 N请诸位帮帮忙,我的体力不多。

    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 d; g; [6 Z( `4 h$ a
    运行如下:
    . U4 T6 F6 k9 d3 n) a) Ssyms t;
    : A7 f! P. e  sa=4;b=3;
    $ R$ O. s; o" O+ H! l+ F/ o( S1 Zf=a*t;
    . w" `4 s+ V$ Q0 b9 y6 g% d% vg=[t-b];
    4 n+ E) A& z" X7 @# \[x,minf]=minNF(f,[5],g,10,0.5,[t])
    ! h# _4 @& Z3 l2 J, |  X& Z我将目标函数写成:
    ! R% P, J5 I  e" S$ s; |6 Jfunction f=link_objfun(s,t,a,m,n); v5 F. c- _0 ^4 b. u  z
    global L1 L5
    % H" S' |) W0 p$ w2 O( N( Kf=0;
    % N1 B# l0 y, K" X4 Msnti0=0;
    1 _7 B4 n; C! }0 x3 l1 wfor i=0:55 o) ]7 B4 S6 m: A$ b. ]  ]
    snti=snti0+pi/6*i/5; 8 l# m* d- F+ d6 t( }
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    5 @. I2 N* s! r# w3 N. F& opsai=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+ a& q6 g5 V- K7 J6 c( q
    if snti<=pi/2-n
    # i! u& q5 O' R4 }1 B; R! X0 J2 Y   bati=fai+psai+acos(m/a);
    9 ~0 W0 C) n) ~8 [3 x  ]elseif snti>pi/2-n4 o" {4 S7 @3 R; K  ]
       bati=-fai+psai+acos(m/a);0 e  L5 Z! l* x" F/ |$ M3 E* D
    end
    1 Z  a. T5 }  P6 r5 d( Cf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;! @4 o5 t5 j8 b1 k' T5 z
    end
    ! J# V) [- |  B0 G运行如下:  l2 r2 ]. Q; z; N. ?4 H0 v
    clear all;& E. ^( h# V. q0 [( w6 i$ k$ s
    global L1 L56 h. V) P1 e4 y: H3 z, F* o& Z) O) `
    L1=3000;) E) X* R) d2 T- B
    L5=800;
    5 \. o' u$ W' g6 r  _! z% psyms s t a m n;) L6 j; C2 y6 n
    f=link_objfun;
    % l! Y- g, g4 [, L9 n- r( @+ Eg=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];. @3 i0 Z9 O4 p, \- y" ^
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    6 }9 ?6 s6 Y- Q5 E  Y* m??? Input argument "s" is undefined.' Z. I6 Z2 Q) ~' m4 r: C3 p, q' ^
      H: _" W: c. c/ R
    Error in ==> link_objfun at 7# \" k7 R8 z; D1 L* t1 s. n
    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-8-23 05:34 , Processed in 0.727804 second(s), 63 queries .

    回顶部