QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5482|回复: 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循环写的。不会导入。
    8 Z# ~9 s6 e/ c惩罚函数调用格式如下:4 I& a' @$ Q. f+ m, Y- z
    function [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    - Y$ V( X7 l4 X%目标函数:f
    8 p' _. c1 |" k6 b, i+ w0 ]%不等式约束:g2 ]# i- Z! U1 k$ o& ~' A2 s0 {
    %等式约束:h
    ' @" n: x" I1 E# T1 n%初始点:x0
    & @7 {' b' x$ O" ]%罚因子:r0+ X! ?3 n/ W& f0 h
    %缩小系数:c1 {5 h8 R, Z, c& x$ p
    %自变量向量:var' G! R9 e. R; y! b9 P
    %精度:eps/ Z" |, D0 m+ T1 x5 C5 n; ^' y
    %目标函数取最小值时的自变量的值:x9 o, V2 u1 H/ K9 |& Z2 t( x
    %目标函数的最小值:minf' b+ P( T( E2 R; Z7 r" r

    6 s& `+ p- {0 b3 r1 q
    $ F* P  w+ B# Q/ I目标函数:" N1 f  ~: n: N6 a
    function f=link_objfun1(x)! G+ o* t4 @1 P7 a
    global L1 L5
    3 M3 ]3 F. H: M) q3 b  m1 t  Z3 nf=0;
    ) U; P) o+ [5 n: N- T) y: ksnti0=0;
    3 S+ {/ s0 g) w: M5 f. h: Afor i=0:5. ^% G5 Q+ a7 e6 c0 r$ x! }
    snti=snti0+pi/6*i/5; , e6 S3 m, A+ ^7 f9 x( O' A
    fai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);# i- _3 R8 x4 w
    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));
      j/ H# T* H/ x" Q% o7 _; j( I5 Kif snti<=pi/2-x(5)/ s: }, Q5 F% [' r- b( d- b
       bati=fai+psai+acos(x(4)/x(3));" \9 |8 B8 n6 K% X
    elseif snti>pi/2-x(5)$ B" K, z8 A7 N7 G' M5 t; D
       bati=-fai+psai+acos(x(4)/x(3));0 Y' a4 c' @( p) l
    end8 u5 u! G2 E8 M. I) `) `( R4 p
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
      C( N# M4 v8 y% T, l7 ^# d# `end
    $ Q" M4 w% r- A) I5 e9 x. W$ T
    0 P) E. R$ A6 o3 w) k, N9 V
    . a; h' V( ?. ^# C2 W" |# i% S$ t# H4 X请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题
    7 h) Z& r" b! K( g9 u: Z& J运行如下:
    & d8 w4 ~1 S7 m3 g. w; Bsyms t;( g. a; X- Q) D2 W. c* Y" I8 `
    a=4;b=3;
    8 p4 Q1 L" j% m) O) }. uf=a*t;
    & t  X% X; i: R3 [g=[t-b];
    - `7 B: g! g5 x+ [- f[x,minf]=minNF(f,[5],g,10,0.5,[t]). s- e2 b+ O# E" f2 V3 y7 I1 ]
    我将目标函数写成:' Z1 o' y7 @0 z
    function f=link_objfun(s,t,a,m,n)- h% K, m+ e( f  c
    global L1 L5
    . @6 h  L& a4 ?& K6 a; ~- n" Bf=0;1 r/ {: r; ~0 Y! N- e' g) f- t( o
    snti0=0;
    3 l; y+ {) q0 o# \6 {( n9 efor i=0:5
    / ]3 G- ^0 e( ]3 r  E+ Y3 Fsnti=snti0+pi/6*i/5; 9 P- |$ l+ H; Z* i) C6 S/ a2 j
    fai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);. h( E8 }2 K; d, R* v4 P3 g5 ^; L
    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));8 D) R1 ^/ j. J
    if snti<=pi/2-n# o! s0 @! P2 A! d4 T8 v
       bati=fai+psai+acos(m/a);
    % ?: b; W- l! s0 f: w; p* Nelseif snti>pi/2-n
    . q4 @& T9 ~8 P# ]5 d2 J   bati=-fai+psai+acos(m/a);
    0 s% H5 [" d! D4 e& r+ D2 l: O/ |( _* Uend# X/ y5 S9 O( t/ w5 H4 C7 l
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
    9 h9 n! ~* L( `* @2 G% Aend! H3 n5 C6 P5 b4 o* U% ]7 ~- C
    运行如下:& P4 I/ Q& b# g! [/ o
    clear all;% ^3 W- R& k% I9 f1 h' B$ ~
    global L1 L5
    , }& V) R; z, g, }$ B* ]7 V# iL1=3000;1 J6 I0 U5 u- Y3 s
    L5=800;
    . Y# v' k5 B7 F/ U6 L1 Bsyms s t a m n;3 ]6 t, S  [  D
    f=link_objfun;
    # e1 t- ]! U/ Y5 _$ Lg=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];
    5 O. M! [- I/ d9 b[x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])
    8 I: O$ D! z' M( W* D??? Input argument "s" is undefined.
    ! P4 `( E9 I6 P7 f/ I# K1 j8 Y2 G  Q1 K
    Error in ==> link_objfun at 70 A2 L# U$ A! W  x. d
    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-9-27 21:49 , Processed in 0.487797 second(s), 62 queries .

    回顶部