QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5262|回复: 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循环写的。不会导入。
    3 E/ k9 Q( c& l惩罚函数调用格式如下:5 A" q3 X+ f$ b8 |1 l
    function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    ; f& o2 s3 k1 y$ H& {%目标函数:f& g$ B6 l) R, o( G' W
    %不等式约束:g
    ( j, F6 X+ m( R( l  y1 F%等式约束:h- B% N2 \: p2 ?6 P- z6 i
    %初始点:x02 ]- ~+ V6 b. @5 b: ?7 p" g! B
    %罚因子:r01 a' ^+ m8 h% t* @, a
    %缩小系数:c$ c2 \) x/ y; Z% @9 H( f1 ?' M8 ^
    %自变量向量:var
    / r6 F  J9 `3 r. D%精度:eps  b" Q& r7 w+ A$ K; O6 V3 k
    %目标函数取最小值时的自变量的值:x
    ( k2 T9 M/ A' G- a$ k. K" [%目标函数的最小值:minf
    3 l- ~  S( `5 t7 h" `
    7 ]6 @+ n+ G2 R) _' C) W$ i
    * F. m2 r: I% e0 a# V" P* s: L( x目标函数:
    , R+ Q' M0 z# I1 e9 v, a8 Wfunction f=link_objfun1(x)) A  ?0 m$ O/ V! I9 Q8 k
    global L1 L5
    3 [3 B: X% X; e. Z+ L' v# rf=0;
    ; \4 Z9 Y; _3 S% R: Jsnti0=0;) I5 B; s- M; ~. v3 o" {
    for i=0:5
    ' p4 h/ L% K' Q' O$ {$ g1 F% [% csnti=snti0+pi/6*i/5;   m' e! a+ F5 D
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);
    ' V5 U( w* ~4 b5 Y. Z) W/ y5 T$ r: j+ Kpsai=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 K) C- d/ Q& tif snti<=pi/2-x(5)" r3 A7 A5 w2 J8 G- r$ g" q
       bati=fai+psai+acos(x(4)/x(3));" ]3 x2 [' K4 H, K& N4 R/ P
    elseif snti>pi/2-x(5)
    " K, V, O$ u! y" ~& ~' S& H   bati=-fai+psai+acos(x(4)/x(3));
    , T( a+ j: `+ L# |1 nend
    - X2 F* {$ O3 N4 d& R& i9 If=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    ! y. F6 J7 _) U& w* T8 T: O* _end. o0 w. B8 y# t0 I6 c
    , s6 G8 i& [! Y8 C4 i

    6 ?: r) E# Q0 F  Z$ M4 R请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题
    2 ?9 p( D4 h, v/ Z2 S+ k. H1 Q) U运行如下:7 T. b' R# S& g3 O
    syms t;( ?' y8 E. W! ?7 T
    a=4;b=3;
    , ]; _& e3 ]; M( Af=a*t;
    3 h# N% ~! f/ F, Wg=[t-b];- H  E) M2 R# u. _9 v( g
    [x,minf]=minNF(f,[5],g,10,0.5,[t])
    0 N" y1 S  M+ R我将目标函数写成:
    , y7 q. B" `% E- J: Ofunction f=link_objfun(s,t,a,m,n)
    ! }- D! z& B8 _3 ]" Xglobal L1 L5& O& f3 p2 l$ M0 {; a5 o; {% O
    f=0;
    / X; M1 j& y* B8 d# r' Y- F# d$ Osnti0=0;
    8 q- G, E, G% t9 ]for i=0:5% e, i( m6 ]( F7 q: d! P- u
    snti=snti0+pi/6*i/5; # \8 R$ k' _7 A
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    ( X5 F+ J0 }1 [( G, w+ i: \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));
    6 G; }5 d* n+ Q2 x( qif snti<=pi/2-n, Y6 {7 {% j9 q
       bati=fai+psai+acos(m/a);
    ) J2 P- }% s0 {3 c- _elseif snti>pi/2-n
    8 ]* T% W/ y2 L   bati=-fai+psai+acos(m/a);
    " T; o( g4 Z+ e, ~8 F( n/ send: F3 @, V  [3 X: o" J
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    0 g' Z5 J) E4 ]& X) Z( Jend7 C# ^2 }4 _; G" f1 ^
    运行如下:- N6 o+ \; n4 S( Z, N1 @
    clear all;* e  O! j2 S$ ]" s
    global L1 L5
    ! e" W; X4 E% {$ k0 I! N; [L1=3000;
    ; G7 x/ G% t4 ]L5=800;
    % m: I4 }8 t& Q3 S1 ^( X3 Csyms s t a m n;' u1 j/ J4 _) {0 C' {6 E! h
    f=link_objfun;$ Q( H& @( ?! 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];
    / X4 t, D' i; b4 \: P# f3 E[x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    . G4 \8 m- r; O  G??? Input argument "s" is undefined.# B) Z. ~) q/ k1 z

    / b+ _& a1 X, T$ `' B" CError in ==> link_objfun at 7
    : a4 X% G; g! Sfai=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-4-14 19:49 , Processed in 0.376974 second(s), 64 queries .

    回顶部