数学建模社区-数学中国

标题: matlab问题 求大家指点 [打印本页]

作者: 菠萝饭    时间: 2013-6-23 14:00
标题: matlab问题 求大家指点
想要优化一个函数,程序如下:, C. Z9 J9 ~" q% ]; @
%给定初值2 R0 {2 J  H5 W$ R5 l; _
cm=3;) L3 ^' ?6 F- J7 E( I$ K' q2 F
cp=5;- P: b7 U/ [4 M- q1 N$ T9 R
l=20;; R/ w" w& d. p# K' ]# k! y
h=0.05;
  `  C% j* r% |3 |. i: ]1 \" pp0=1/h;
- ]1 t7 t! l9 b+ I) h( D4 cq0=2*l/h;$ b2 W  a- K. Z3 v+ |9 D
nn=0;
0 X% k) T4 j0 e/ Ecc=cm*l*l% k: v# T7 y1 d: ]
%主程序
! b' ^: o$ S% P% p: q: V  ~for p=1:h:p0
8 O' c5 x1 g) W5 A6 J5 A0 v2 ]    for q=1:h:q06 B5 o. V# T* s+ p3 U
        a=p*h;
4 a# {6 w2 ~) t, h$ V; {# Z' f  l        b=q*h;8 K  I7 g. D' J! i8 ]
        for n=1:12*l/b) %行向量
( N, B( `+ Y7 J0 K& y2 j            c(n)=cm*b*b/4*((1-a^n)/(1-a)+2*n/(1-a)-2*(1-a^n)/(1-2*a+a*a))+cm*(a^n*(l-n*b/2)*(l-n*b/2)+(1-a^n)*b*(l-n*b/2)/(1-a))+n*cp;
1 w5 E4 ]5 Z: z# j( v' Y            if c(2)>=c(1)% M3 \: M5 I4 a: d. Z6 A+ y
                nn=1;: o" o$ M! q$ I; k9 \0 O1 w; @
            elseif c(2*l/b)-c(2*l/b-1)<=0
% z. q1 q+ `/ ]; U' t; Z% P2 m                nn=2*l/b;
- D" y3 K! d4 y; e            else
6 \4 A6 u+ K" x: O- K                for k=1:12*l/b)" X7 w4 b5 ^7 F
                    if (c(k)-c(k-1)<=0 && c(k+1)-c(k)>=0)6 v9 G' B* \0 K
                        nn=k;0 {* D  g- ]# a
                    end: Z9 d# ^9 |% U- v9 q, X
                end
; v+ m" W. h& j/ L/ @4 J, d8 }8 O+ ^            end
5 |* u+ u2 c2 i" |        end
" d/ I( j# m( O$ g2 n" x        if(c(nn)<cc)
& H/ ^+ x' X! e0 [5 E            n=nn;& `( W1 T& C/ }2 j- S6 Y8 D* E
            aa=a;
5 {2 X  W. d* ]            bb=b;1 S- }6 E* b3 M
           cc=c(nn)
5 E, N1 h- o  m4 `        end' M- f9 T- H3 N5 }) z$ e
    end& j$ d6 q/ |7 y
end
. M* a( j( y3 F, V9 G' J8 w5 Kfprinft('%d',n). U$ T: t, Z, i7 i  y( h  Y
fprintf('%d',cc)
; \4 |) }: H. w: R2 r7 Dfprintf('%d',aa)8 J% ^/ p3 W" q2 q$ k
fprintf('%d',bb)2 I* T- N  y+ {0 c- n

3 d! k% A, u" D+ e8 J9 H! m0 I6 z* s1 c+ i2 Z$ Q
运行不出来,错误提示:
' F1 Q% G9 R0 j; v' w' L# A0 {" A7 _cc =% ^7 G% Z" S1 B; Y4 T5 C
0 T& U/ Z! U, j$ _
        1200
+ f/ I' R7 L, P3 Z8 h, K9 X4 q5 H$ L( K/ T# I, [) J
??? Attempted to access c(2); index out of bounds because numel(c)=1./ m! S( ], G- E4 x) P
$ K: e( l* j; L
  U0 ^$ z) l) V- L" m" [
这是什么问题呀......




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5