数学建模社区-数学中国
标题:
matlab问题 求大家指点
[打印本页]
作者:
菠萝饭
时间:
2013-6-23 14:00
标题:
matlab问题 求大家指点
想要优化一个函数,程序如下:
+ b( H9 ?! ]! J' ^9 A; I
%给定初值
. v+ d; ~, ?$ n! r: g! l8 m
cm=3;
0 G! O) _3 q6 [$ n
cp=5;
% {% |6 ? m) Q9 a0 y& _8 `$ q
l=20;
0 D% I: L5 Q9 D' \( w: z4 q! ^
h=0.05;
$ m9 I) P2 e) t( e+ A
p0=1/h;
: G2 `1 W+ G( a
q0=2*l/h;
- S, A S; u; E% W7 v) x4 G9 t
nn=0;
# H, }. i' D) J4 K/ ?) _
cc=cm*l*l
0 s, }1 Y$ n l4 X4 B* ?
%主程序
( B8 ^. G) s# F2 l
for p=1:h:p0
; y; `* Q( q5 g. |) i. X a
for q=1:h:q0
& O" p' G! t* ~. S, X
a=p*h;
& S! I! P* P* {% W' o
b=q*h;
N# m% W0 W* V w5 y& s" U3 T. ]
for n=1:1
2*l/b) %行向量
8 S! F$ f: b9 U0 ^! ?
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;
7 V. Q0 f( L+ E) g
if c(2)>=c(1)
3 m$ g- F0 B, q( _3 {+ }
nn=1;
) \6 J3 d* u2 Q
elseif c(2*l/b)-c(2*l/b-1)<=0
4 m+ `6 h* |) X/ \+ i8 C0 l6 S
nn=2*l/b;
' ?9 B6 S: |/ \9 `
else
- b3 O4 t/ f" O1 }% u( O
for k=1:1
2*l/b)
+ ^5 ~8 k4 D6 R+ ^& b& J3 B6 C
if (c(k)-c(k-1)<=0 && c(k+1)-c(k)>=0)
/ N1 C4 n2 h( E k
nn=k;
* a6 [9 z% z( o8 x
end
" y" ^3 t s1 C7 l# _
end
! W6 J3 M/ x$ S- ]6 @' ?
end
0 O' X! g0 w3 J& m4 H! _: l
end
6 _+ @ ]. \) o8 }6 [, M+ z
if(c(nn)<cc)
+ x5 B0 \: b$ A. X" @
n=nn;
* A0 G+ \1 L; q/ |& p
aa=a;
' z, U+ Q; Y" j# a/ C4 Y
bb=b;
- {6 z9 _) `4 q
cc=c(nn)
$ w s& e* Y3 V, W: X3 R
end
( O1 m' E$ w1 C
end
' g. d- v+ P7 A6 U3 x8 S! v
end
$ u1 Q a, _& W. i0 e0 y# d' X
fprinft('%d',n)
( v z/ X' |0 ?# h L( |
fprintf('%d',cc)
" Z* X4 L' z! m( {
fprintf('%d',aa)
5 }* o- d6 q3 [
fprintf('%d',bb)
1 b0 n8 t, o( j( {
) C9 T( l# ^8 u& o
" G4 l$ Y+ |+ N
运行不出来,错误提示:
5 y3 E( b. M& f' y8 M
cc =
5 G5 W, E! D) K+ w- I
6 v4 t h* k7 F- C+ t, G |
1200
- i9 r9 H7 I. b
- o2 a2 E! @/ w5 P n
??? Attempted to access c(2); index out of bounds because numel(c)=1.
+ f' ~, N, t( \4 n1 ^8 P
0 w6 T6 _/ q. z, v& s; F3 H$ ]) O
- ?! Y1 p' E/ q3 j+ d* Z
这是什么问题呀......
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5