QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5363|回复: 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循环写的。不会导入。
    4 R+ m1 x7 ~* I3 r6 i, A1 o* Z惩罚函数调用格式如下:
    / i# z0 V4 d; L) g4 ufunction [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    8 ^7 r5 r/ Z, x%目标函数:f. r% }0 I! E  Z1 r
    %不等式约束:g, L# z+ B3 B: K6 q! I/ c; |
    %等式约束:h
    7 Z) g7 E: k6 {5 M4 l%初始点:x0
    2 Q0 U% d! r; m' J0 n3 h%罚因子:r0; ?( {0 W' {, [+ H
    %缩小系数:c9 D+ B" b! p! z/ q8 n1 _/ v
    %自变量向量:var( b4 U* v* a/ E0 V, I' V; Z1 ~2 c
    %精度:eps" |& H7 f8 m  I0 b% v" V6 z
    %目标函数取最小值时的自变量的值:x+ r' W/ W9 w0 F* \
    %目标函数的最小值:minf' p" d0 e6 P  B7 X$ j

    / C, t! k9 q7 }$ x: m
    ' \, q/ \0 L6 c3 j目标函数:
    7 _$ F4 n) F2 k& W$ g1 x$ a4 pfunction f=link_objfun1(x)
    ! k2 N- G3 Y8 i* j1 Oglobal L1 L5
    ; i4 F- H; |# p3 T6 Af=0;
    ; F& U+ q5 |- e3 w% e4 Gsnti0=0;' s7 o' F0 C  z: Z: e
    for i=0:53 n0 j% C+ Q7 @$ c! m& n# r
    snti=snti0+pi/6*i/5;
    2 f! B6 f' w% G& cfai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    5 F3 A! y3 W/ u" w& j! r$ V6 A7 hpsai=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));
    2 _/ N7 D* X. |$ S/ Uif snti<=pi/2-x(5)
    7 ~4 @, W/ A! G4 P( X   bati=fai+psai+acos(x(4)/x(3));
    ) H9 m( U- L4 F+ A( {' e- S' \elseif snti>pi/2-x(5)$ `/ F, U  [0 F) _" G" {/ c
       bati=-fai+psai+acos(x(4)/x(3));
    " X( v0 G! I% F/ ~/ Tend
    $ `3 ~! k6 {2 K! A# M% C& Q5 J2 hf=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    , z+ I8 S+ }$ a# d: q  S; w9 H& eend& X% q$ {' ?( U5 u5 |7 K6 ^

    * {2 k' {* W4 l) F7 t1 R/ H/ {8 [; u
    4 O  u" i( |/ {" |1 |( S请诸位帮帮忙,我的体力不多。

    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. F5 N% W7 `$ `5 E8 |& _; }运行如下:+ i: i* N7 o, Q' z+ p
    syms t;
    $ t; v0 e5 D9 _8 S; E0 _a=4;b=3;( g5 G  o( B% t! X- \/ T
    f=a*t;
    * ]! i: U* v9 j* d7 j  }# @/ Lg=[t-b];
    7 |$ w* W8 |* E0 A[x,minf]=minNF(f,[5],g,10,0.5,[t])& K) |' a" L4 H" ~8 v5 L% |
    我将目标函数写成:4 x6 M& P( |9 ]
    function f=link_objfun(s,t,a,m,n)
    + O% z. X$ Q, b$ \; Pglobal L1 L5
    3 v9 i( U3 L( o1 j$ ]8 ~f=0;# b: y. `% Y) J& P, q. R
    snti0=0;9 p3 o8 Y5 u: J+ P( W
    for i=0:5* x( t/ g4 H7 n1 T' A
    snti=snti0+pi/6*i/5; $ Y+ x4 W+ F. H! W# E9 b- j
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    4 O# R% @; i& ?0 n8 K  R, h$ Spsai=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 L5 W$ S0 n/ w0 x* E
    if snti<=pi/2-n
    4 p3 s4 l/ h0 n6 A: |   bati=fai+psai+acos(m/a);' K8 Q9 ~  r" u9 L8 r
    elseif snti>pi/2-n/ w$ e9 }  W# p4 n2 {% {
       bati=-fai+psai+acos(m/a);
    4 b1 N! C2 Y$ O9 A/ |! G) G3 ]end
    4 p4 b, L3 Q% B# R; u. a1 K+ `f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    " B0 \$ N! l5 R. i1 N8 |+ L# Fend
    ; H6 U4 Z/ t- c运行如下:
    ' F% M+ J9 w4 h" o. \" n% \1 Iclear all;
    4 U( m' A0 K' p7 |1 E- i. \global L1 L5  |- x! u: U8 p: M+ F$ J$ [
    L1=3000;
    ; V4 |8 N2 ]# [6 KL5=800;% I1 D% h" ^8 e. j
    syms s t a m n;+ F# R$ W$ D6 ~8 H. N
    f=link_objfun;
    . f& P) h$ T9 U8 N2 Rg=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];
    % w: b- Y: P: `" v# S[x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])/ B0 V7 `* Z* }! ^8 G
    ??? Input argument "s" is undefined.
    * i4 A( m' R6 i! h; }' |; K
    ; a: t) H9 w$ |5 g/ o$ xError in ==> link_objfun at 75 V. p2 }9 m1 m' g* Q( a
    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-7 20:11 , Processed in 0.297572 second(s), 64 queries .

    回顶部