QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5509|回复: 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循环写的。不会导入。
    , Z2 x  W/ y+ @: K% Z5 _, N3 O' i惩罚函数调用格式如下:
    5 w1 h: z+ g- T, \function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)8 P2 _* y. f2 T* n
    %目标函数:f
    / n; R( X$ G% @& H# Y* J%不等式约束:g
    $ M' F  k: b" G: U; Y" Q- }7 R7 c%等式约束:h# d% r) l' Z3 Q' Y5 `1 i$ p
    %初始点:x0! F5 g- s! S  D8 \6 y# W
    %罚因子:r0
    ) \# h# s" \/ ~- d1 R%缩小系数:c
    ) C7 u& J5 x6 g; ~  ?%自变量向量:var
    ! m2 ]2 u6 X( _/ I%精度:eps/ B  `& l) z2 r0 |) X
    %目标函数取最小值时的自变量的值:x
    & @% y# Y/ D# q5 S%目标函数的最小值:minf- ]! k; J! _$ s3 |+ B- U

    8 ^; k8 [0 j% ^5 A8 @& e6 H% L3 \2 E* m1 u4 ^4 H* m' ?/ s
    目标函数:* ^  J. a: P( P" c5 q! a' }! X
    function f=link_objfun1(x)* [: k; A, Y: C! Q
    global L1 L5# D$ o: f% F1 Q
    f=0;8 I3 l' x0 K* X
    snti0=0;
    " F$ j7 ?( M. s) q; @4 L- dfor i=0:54 `7 J$ a# ]$ k% v, V
    snti=snti0+pi/6*i/5;
    ) R* D) m, \( n5 x# s( 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);8 R/ N% D! J& ^$ ~- \1 R
    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));
    7 n. n9 {; `! Z  W1 G1 Hif snti<=pi/2-x(5)8 e/ U* P* r( {  `' u2 \9 v& C/ [
       bati=fai+psai+acos(x(4)/x(3));
    5 `# a/ V- D# pelseif snti>pi/2-x(5), D  W0 E. f4 I3 w! I1 w* c: R
       bati=-fai+psai+acos(x(4)/x(3));
    + \, }( ]( t9 |' G/ y! @$ kend* |5 j$ I& O) S1 p
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    7 N: t: k; ~4 L! hend
    / ~6 R! Z: X! w5 P7 u6 s  v
    7 T3 v- Z, Y' j- m) O; Z: t
    / D+ k1 w7 N, N2 q: O( ~+ y请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题
    8 {0 e$ V) T; l5 M+ w' V2 h运行如下:( }# E. K- j( V: |( m6 N
    syms t;
    6 k1 D; X8 ~! q  R* i9 K, Ea=4;b=3;
    ' B8 D2 R# {2 }7 V& l( f5 Ff=a*t;% \" A, ]; f3 q$ G8 B
    g=[t-b];7 G8 K8 G# Y2 i8 J0 f4 A" P8 r
    [x,minf]=minNF(f,[5],g,10,0.5,[t])
    7 x& ]* f* B  _1 ^$ b0 f我将目标函数写成:
    9 x1 z8 p+ o( Y+ k2 N; Ofunction f=link_objfun(s,t,a,m,n)+ B; t) B! x1 L4 `& G
    global L1 L5/ @% ^4 V& A8 c# `3 Y- C$ W( T
    f=0;
    : L; X. M" B  ~# D" K" s. `snti0=0;) Z* p5 g* [. r/ q( z4 O
    for i=0:5
    9 x) r; m  P# Q" |4 R% [snti=snti0+pi/6*i/5;
    2 i4 {- \4 E5 `( v8 B4 ^fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);/ G2 a, O8 [' J6 E
    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));
    7 r8 S: D. _; X. b6 u6 Uif snti<=pi/2-n
    # ?9 W+ J  a! q   bati=fai+psai+acos(m/a);, Y8 W" n% l! t
    elseif snti>pi/2-n
    ; q2 m: C8 Q% g   bati=-fai+psai+acos(m/a);
    ) o- |, X3 V4 h6 e% t5 a" |end5 A* h* y; c% b  K9 q/ D+ x* D$ U
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;* u" p# _( R3 c$ q  ^
    end/ j3 b0 [. Y% j: C9 D( v
    运行如下:" M( O. j* d  E5 V/ ^
    clear all;4 g# l6 Q6 A! k- D, H* T9 B8 x
    global L1 L5
    $ q0 _4 {" j8 A$ M/ h( T' cL1=3000;
      I. _# m* S2 Y) P% \* r$ B: P2 mL5=800;) U' ~# n4 E2 W% w# P4 F% X. \3 M
    syms s t a m n;' P6 }0 Y- a3 p8 `9 g! ]5 Z
    f=link_objfun;
    6 O+ F8 ?5 k: O. t8 t3 @g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];: k: d) _7 {6 y7 b3 n1 C) L
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])) A. }/ v. m. e7 I+ r
    ??? Input argument "s" is undefined.
    ( d* I. k1 H  Q. S: ^
    ( y, q2 H& z8 b! l  h& ]! C7 r/ {Error in ==> link_objfun at 7
    1 x7 s# @. C- ]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-10-8 05:01 , Processed in 0.342497 second(s), 63 queries .

    回顶部