QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5336|回复: 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循环写的。不会导入。
    / P" z; c) U: B! f; I0 q% ]7 m惩罚函数调用格式如下:5 z) y* Z+ _1 ^( m. V
    function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)* |7 B' n( x7 G. }# q0 t
    %目标函数:f& e8 `, a- a! {) M; r% v6 ~
    %不等式约束:g: w- I$ \( Z8 \
    %等式约束:h  H: \4 z) e! s+ s
    %初始点:x0
    " N5 u# o" u; P  _%罚因子:r0
      I% N/ D* A" W/ q- M& F0 v' A%缩小系数:c
    2 Q1 x# p" r: f' H9 P, S6 n%自变量向量:var
    : d: o$ f' m+ ]1 n/ s%精度:eps3 L1 u' {9 Z7 Z4 _9 }
    %目标函数取最小值时的自变量的值:x
    1 b5 {" s0 ?" b! P( e5 F! Y* ?%目标函数的最小值:minf
    # e) ^  a2 f. K$ X  d9 q  r: T/ x0 N# X! T2 v3 G- p. C

    & w1 w& u' R3 b- k1 e: c目标函数:
    ; ^! u9 D% j1 J/ [; G4 H+ w9 M' vfunction f=link_objfun1(x)
    ' X" a+ k$ G$ }) ?# Aglobal L1 L5; j! @" |9 _  B# e- }5 U2 N
    f=0;
    # u8 l$ u2 `, N, _snti0=0;
    9 i5 y2 a- w- r5 wfor i=0:5
    1 }9 E6 \. t% tsnti=snti0+pi/6*i/5; 5 S0 ^6 x$ W9 D9 [, x0 C
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    & W6 O& z! o5 A9 ?$ apsai=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));! M: t3 K5 e' n+ y9 @  [
    if snti<=pi/2-x(5)- Y& g: y% H  G. O9 M& l
       bati=fai+psai+acos(x(4)/x(3));
    1 {+ t' y) n6 ~. Z" S, Relseif snti>pi/2-x(5)/ s: j+ \' [. s0 x* V) U
       bati=-fai+psai+acos(x(4)/x(3));; z6 q! P  F$ w4 V
    end  \( m+ M8 E+ L. B
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;  r' k- n( e5 F1 e; j; n( b
    end; l' }5 A& X/ L5 {# I3 Z& o

    0 z. M+ }2 M3 u; ^
    - }( p- l/ {+ J! j6 [请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题
    % M" l7 Q" A, E6 e7 A$ S/ t" Z运行如下:" Z3 ?- @+ ?* T
    syms t;8 k! \+ ~1 W3 w" M) U/ B
    a=4;b=3;4 J. O! J4 o0 G( `  [
    f=a*t;3 C; U0 a8 \$ D4 Z7 R
    g=[t-b];
    2 O8 o. R! h" f9 ?6 r4 {/ O' @[x,minf]=minNF(f,[5],g,10,0.5,[t])  o2 h7 O; u! p0 P5 j$ H( D
    我将目标函数写成:  h- b3 R2 e, G/ v
    function f=link_objfun(s,t,a,m,n)
    0 a) D) d2 p/ s. Qglobal L1 L5
    - z+ l( t1 g  o3 l) d# D# gf=0;
      I7 a  h: J) W& D- |snti0=0;3 k# b" ?$ N0 e& U3 t$ R7 L+ @# h* [
    for i=0:5( F% I6 @$ Q* b# V7 j& X6 f
    snti=snti0+pi/6*i/5; ( r; L" H$ ^3 Z. F4 {
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    + a: Z  [: `' [9 ]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));
    + Y% f! E2 u( F4 g4 K* r$ z+ T1 ~if snti<=pi/2-n
    / d6 v; `- P3 J8 [+ N" X   bati=fai+psai+acos(m/a);
    ; _. W  t5 k$ selseif snti>pi/2-n: T. U) f% ]5 b  V* V
       bati=-fai+psai+acos(m/a);' ~' _. m- I: Q. l0 Q8 P' m
    end' W& J2 k% t# L9 U' h: ^
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;* |" B4 r- I6 b2 `4 J8 u6 @- M
    end: Q  A7 ]! l+ d) d" x  [3 J
    运行如下:
    / l8 m' c% R) J: ~0 m2 Hclear all;
    3 k6 U# O+ w) ], e! Z8 {global L1 L5
    4 U' m; e& ]5 B- r, w8 LL1=3000;
    ! ?5 u8 ]# ?% W$ D/ P* \L5=800;
    ) \- t1 i; L1 z/ isyms s t a m n;
    * H9 s! X9 W+ J, rf=link_objfun;8 S; o' @1 K' l7 n* s
    g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];; Y$ p% Q6 E7 H: @0 L2 r( b, X
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])5 {/ T$ m% r$ o. ]+ F% L! m; h
    ??? Input argument "s" is undefined.! L% M0 [  B0 W2 C$ X* R1 h6 q9 y
    5 J+ [+ F* F: E+ b2 \/ Y2 v
    Error in ==> link_objfun at 7
    ! u5 j- [: x3 ~8 }1 h# 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-7-9 04:25 , Processed in 0.324474 second(s), 63 queries .

    回顶部