数学建模社区-数学中国

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

作者: 菠萝饭    时间: 2013-6-23 14:00
标题: matlab问题 求大家指点
想要优化一个函数,程序如下:
1 z- s- D$ }! k6 L' v%给定初值# w% i( W, i# E4 G/ Y
cm=3;) x( \3 T, I+ j; b0 w5 w, S( K6 O3 D& U
cp=5;- L5 s6 P1 J' k6 P% m
l=20;- P$ R! _7 m7 E1 i! e; O
h=0.05;9 f2 x) U" v" v' l( ]
p0=1/h;0 Q( a7 d1 s$ A5 U
q0=2*l/h;0 \  M9 ~' O- C% i
nn=0;, k+ }. U2 n6 m
cc=cm*l*l" b0 U" W4 X6 d' T  a+ q" f# p
%主程序
$ Q; \% {; e) nfor p=1:h:p0
, Q2 D9 y4 o! Y    for q=1:h:q0
# I7 N: _8 [6 b+ @8 k' K4 M! ^        a=p*h;
. C$ d* F! V- T- C        b=q*h;
% O# K# ?9 Z7 S% Q        for n=1:12*l/b) %行向量- F/ o2 u# F9 R
            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;
$ `+ b4 b( G  m: u# B. k1 m8 {2 D            if c(2)>=c(1)3 W: G0 |$ t$ Y8 ^( M/ q# v
                nn=1;
6 g" x  L/ `( {* Z( A  _            elseif c(2*l/b)-c(2*l/b-1)<=0# r7 I9 x& q7 O4 `& ?
                nn=2*l/b;
' d" a, z8 e+ n+ z) z  k" V3 f            else* [% n2 C; O; F5 f
                for k=1:12*l/b)5 |$ H2 a5 ?/ e$ |" s3 E  g! y1 D
                    if (c(k)-c(k-1)<=0 && c(k+1)-c(k)>=0); r5 d# w1 a6 N& V6 ]9 u
                        nn=k;: F# P9 p, [, |  i6 A
                    end
5 g- W% h  z6 K9 V                end
2 |6 j, ]& g7 Y# {' x) X  z% j  X            end, E' w; R! K* o7 g6 J
        end* \0 G6 Q" Q3 P! v+ L
        if(c(nn)<cc)
3 B& i! |/ O1 V9 j. B/ l            n=nn;
" H7 l7 g3 r. A, _( M            aa=a;% X& [# g* P1 z$ B: j
            bb=b;
! }8 D( A5 d* @0 u3 I1 ?           cc=c(nn)
2 x7 G3 Y( I5 }' E$ B0 n        end$ l7 A) {5 k  |7 s, [  E
    end6 E% l! S# u& m1 w) T% y% N& {
end( S9 I! ]# {, t6 l
fprinft('%d',n), ^8 n5 a! n8 M3 z
fprintf('%d',cc)$ j# f6 [" `: J
fprintf('%d',aa)
! {6 R0 _3 y% u* m: @: v) U; ffprintf('%d',bb). l+ D) h4 o1 O+ Z$ h. b( m
. ^! \  J/ N/ V
; ?: B; x9 q! P! m9 G5 U+ }5 w
运行不出来,错误提示:1 i2 S3 U4 T$ g6 [5 o1 h- W
cc =! W- U2 a# a& n1 X1 W
' O9 ^1 w7 S( h* b
        1200/ n# B, J* o% \- D

, s. N+ B( n' K( |: S??? Attempted to access c(2); index out of bounds because numel(c)=1.
2 s9 f7 g0 [3 Y! V- E
7 K  U- B! c' }& q" z5 r8 H+ ~2 C9 l; ~4 Y( T  o# f( A
这是什么问题呀......




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