QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4945|回复: 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循环写的。不会导入。* B1 p0 ?/ V9 r- Q: t4 X2 R* D
    惩罚函数调用格式如下:
    / G5 z0 T. C+ y; M3 S$ Ufunction [x,minf] = minMixFun(f,g,h,x0,r0,c,var,eps)
    1 }/ D- [- H" r2 C) z7 G/ ?# {%目标函数:f
    / f6 n/ s7 `' _5 a& U%不等式约束:g
    0 d9 K/ ^1 u! [" y4 i%等式约束:h4 h& a- V% \; W* u
    %初始点:x0
    , U, D! ]. w. d$ D- g: x%罚因子:r0! m8 ~/ z% J9 n: o' j
    %缩小系数:c- Y/ s- Y) A$ M! I) b
    %自变量向量:var0 \# {9 L3 ?5 Y2 [' a
    %精度:eps
    * w/ P. ^5 |' S5 x% n; S%目标函数取最小值时的自变量的值:x
    ( l, o& B* p! o- L8 x- j# M%目标函数的最小值:minf
    7 ?3 o  q$ {6 p$ @4 e- M# s3 [( @) J! y" ~# G! X

      t; z/ r" Z- I* ~目标函数:
    0 I. l6 L; `! K8 zfunction f=link_objfun1(x)1 j$ ]. G2 h1 l
    global L1 L55 J# W& I# r$ R% X: ~) `
    f=0;
    ) B8 |+ j- l& d! V6 i0 {$ E8 Csnti0=0;* A( M6 n; i* ^, Z
    for i=0:5+ s: Z3 k) X  L. q
    snti=snti0+pi/6*i/5;
    6 p5 ^: c5 D2 _# Y: n$ Gfai=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2);- C( W% C+ r/ B
    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));4 [0 L3 Z( i' I
    if snti<=pi/2-x(5)
    2 v9 h8 z) A7 n0 n) E* x5 }   bati=fai+psai+acos(x(4)/x(3));- P# t' C* T: t! I" y
    elseif snti>pi/2-x(5)
    + q: T7 y% B* _; A  o- U8 H   bati=-fai+psai+acos(x(4)/x(3));
    3 u3 z' r- s4 f# i5 A: y9 M: H5 }8 cend8 w% O9 O# Y* C0 }' \- L" s
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;2 k+ y, z1 Z1 F
    end; q" }  ^' H3 n, |
    0 R- c! j* ]5 L
    & z1 ~- J2 c/ @) q6 i, o
    请诸位帮帮忙,我的体力不多。

    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

    我懂的不多,生搬硬套。书上的例题" T; n) O. C$ @. D* _9 D
    运行如下:1 H" K5 f" i- q5 l
    syms t;! v" m7 _! R# ]5 j2 f
    a=4;b=3;
    8 i8 t& L( k5 a) hf=a*t;
    ) J2 |9 |. _1 U$ S7 ig=[t-b];, X7 x; O% ?9 |% I2 Q2 ^
    [x,minf]=minNF(f,[5],g,10,0.5,[t])3 l4 ?% ]' e# A/ d  Z+ i( P
    我将目标函数写成:
    , t4 J( `( y8 T3 D9 C9 tfunction f=link_objfun(s,t,a,m,n)# g0 P* M) E2 Q$ y  C: ^$ ^
    global L1 L5- t6 l3 |0 a, I3 b8 a1 E$ S2 V2 m; g
    f=0;; Y  k+ Q( h  n& S# K2 R8 I# v* s
    snti0=0;
    2 q# |  Z9 N: ]# P! Rfor i=0:52 n& J8 X- L9 G. ?# h
    snti=snti0+pi/6*i/5;
    # f6 w: ?1 {7 Z" `, Gfai=acos((L1-s*sin(snti+n))/(L1^2+s^2-2*L1*s*sin(snti+n))^1/2);
    2 w& o% L( c3 J5 B- N5 G/ W' ypsai=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 ]5 M  H0 @) {% `9 s! _2 rif snti<=pi/2-n
    % V6 ]% B- j# b- w- a8 y4 O   bati=fai+psai+acos(m/a);
    ' ^) J5 a/ L# I) helseif snti>pi/2-n
    - Z2 B  {7 h  \, h% {4 g0 K- H" ?   bati=-fai+psai+acos(m/a);
    ) Q# ?" M+ g$ N( G( {  s8 Bend: x: R' L. s& ?" ~( k: k5 [
    f=f+(L1*cos(snti)+L5*cos(snti-bati)-L1)^2;
      m$ n& M7 s7 C4 R, H  B* s2 E/ Zend2 B; N4 B5 [1 T6 k6 b0 Y
    运行如下:8 r* C7 I7 d: S
    clear all;9 `/ ]) F; d% u; F8 j
    global L1 L5
    8 J  M; t8 w5 d' R6 D9 A* _L1=3000;
    8 c& e. E; D9 QL5=800;. R4 `3 b' u. C! U
    syms s t a m n;
    * u. g7 X( g9 w3 }8 kf=link_objfun;6 k# g2 y" u4 T
    g=[s;t;a;m;n;L1-s;t-s;a-s;a-s-t+L1;s+t+a-L1;s+t+a-m];; J0 \7 A$ P& l  ~) v! E! |$ n
    [x,minf]=minNF(f,[780 2000 800 800 pi/12],g,15,0.6,[s t a m n])! [2 V8 m0 w9 O, ?" h+ m
    ??? Input argument "s" is undefined.5 F0 p" f* x% x: I

    2 _5 ]7 p% o9 Q3 a+ U2 `2 GError in ==> link_objfun at 7, D9 t0 {. V, p6 V% c( ^& ~( b
    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, 2025-8-5 14:56 , Processed in 0.528756 second(s), 63 queries .

    回顶部