想要优化一个函数,程序如下:+ z1 Q. t) H0 `+ h8 o7 W- O2 l
%给定初值, Q/ n0 N5 W# y
cm=3;; L9 _9 |# i$ l9 c8 q0 m# ~
cp=5;: _3 v0 C2 A) r% Y+ W9 _. U: T
l=20; 9 s( g4 ]8 g+ v* d5 T0 @1 L& th=0.05;4 z+ z; ~7 B9 J) e4 P% d8 Z
p0=1/h;* U+ @7 n' D E% M# a* i0 B- S+ z; j/ Z
q0=2*l/h; 4 z3 i+ P8 D9 i) G" Jnn=0;: z0 F, O) k; e0 t8 p
cc=cm*l*l; ]. c, s: w( r! I2 u( C
%主程序4 @; [0 L+ `; L9 T
for p=1:h:p04 }6 s1 n C; o# r' a
for q=1:h:q0% G: C( r( L. G* u- M0 r- ]0 t+ j
a=p*h;$ L0 o( g# t& L
b=q*h; & R" d: g- U9 g* q1 z0 e( j for n=1:12*l/b) %行向量 b, Y! l' v! ]4 f% i5 ^2 ]) H9 U 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;, X/ u: }: Z8 T4 ~" R
if c(2)>=c(1) 9 N3 y/ W4 C ]3 Q- Z8 p/ u P nn=1; & C, c" D( k# ] V K elseif c(2*l/b)-c(2*l/b-1)<=0 ! U2 S' K, Y% [1 \0 \* J( n. b; H nn=2*l/b;" I0 C7 [+ V8 B3 z
else, l! V4 A9 t- Y2 q9 Q+ I5 S, e
for k=1:12*l/b)* p; Q# C; h* y6 c
if (c(k)-c(k-1)<=0 && c(k+1)-c(k)>=0)9 C! y# |1 D2 x0 B3 e
nn=k; 0 k! x2 Z, q2 X5 D+ w end( d* z$ r. @6 l
end; H; f% J% F+ x1 x0 s1 L
end t7 ~1 r8 w {- Z( y) A end1 Z# r0 y: S3 `% I
if(c(nn)<cc). d* _& K9 |0 x% f% y; ?
n=nn;' M% E) T: H4 p' e$ n h
aa=a;' V$ A) m, h2 X" d8 _# N: ~
bb=b;" n Y6 b; y9 `5 u2 A
cc=c(nn)3 w/ F5 a7 w6 ~! N/ h
end2 |1 C' ?+ H' f
end- Z: L Y- L$ r0 N" Q. ~
end ; U3 @" J3 N" i$ |3 Pfprinft('%d',n), ^/ W! C; x+ q+ E
fprintf('%d',cc) $ L$ o/ z6 w+ afprintf('%d',aa) 1 b; m2 f$ C1 V" L6 {/ j1 E. jfprintf('%d',bb). i5 Q0 ]: ] {0 B2 c
3 g) r+ ~& U4 n. L3 A 2 _& k4 f6 S8 F$ D ~1 j, O1 y F运行不出来,错误提示: ; W/ i7 \5 a; W4 T% ucc = 7 c& l& u6 }" c. o' o( @% M2 f+ Y8 O8 A+ b+ C) c) F
1200) a9 g- y$ Y# B. D8 S9 p; G; Z( ^
% Y% E9 b0 C& S+ ^/ e' G0 w??? Attempted to access c(2); index out of bounds because numel(c)=1. 8 W+ f5 O3 n6 X , i( i: P) g- k. i' t' C . X1 R. I* @# |这是什么问题呀......