这是我为我女朋友的课程设计写的,如有不足,大家指点啊1 q, a. F4 I) m. ~5 [, _3 k( {
6 U) T" Y' H* O- H t=input('请输入时间步长:');
) w* O, L; D5 a( gh=input('请输入x轴步长:');
& x4 y$ r8 N6 F2 q& W9 j, Z0 L/ or=t/h^2;a=1-2*r;+ ~& r) Q# ]0 x5 T. Y( W' R
A=[];
" |) c; A$ P2 A+ v$ Tu=[];%第0时间层的数值
8 E- c% s& t9 ~) W0 Bm=1/h;
: N. h! e8 g, y* C0 mj=0:h:1;7 f0 C6 l! y1 E0 [: X
I=ones(size(j));
4 s) y$ }. k0 |( u) s u=4*j.*(I-j);- K/ H+ F8 R$ l0 K* l
%第0时间层的值的计算. P' V( M, ^& {, L2 k6 |
disp('5秒之后将会显示第0时间层的数值:')
1 W+ t' L& A0 h* t1 Gpause
, R( {5 n; N6 E. Vu
/ j$ {. D! L, \# m7 v5 o' N R6 |w=[];%第1时间层数值的计算. J ]6 Y: j7 g1 s7 ], A
for j=2:m ~* W% l$ R( v+ {! Z; }
w(j)=[r*u(j)+a*u(j-1)+r*u(j+1)];% ~+ A! V) O) L5 x8 _$ d
w(1)=0;w(m+1)=0;
* P; B _% `" v" c4 t" kend %通过第0层数值来求第1层的计算0 a4 {1 S# O4 V8 E7 C& T
disp('5秒之后将会显示第1时间层的数值:')
/ Q: ~; O1 M! m/ Dpause! J* R3 f$ Q# ]: T# D5 e$ S
w
) ]4 L. s5 L' Fq=[];%第2时间层的数值/ M9 j* `; P( E1 c" F! L/ R
for j=2:m
- C `# t& ^1 J+ f# g q(j)=[r*w(j)+a*w(j-1)+r*w(j+1)];& M" {4 h0 c% u, ?
q(1)=0;q(m+1)=0;, E& k3 K0 Z( s& H- j2 E
end %通过第1层数值来求第2层的计算/ U' ~2 V% `2 {, E3 s7 x& G; ^$ c& q
disp('5秒之后将会显示第2时间层的数值:')8 |& ~; U# c$ c5 |1 D
pause: i# D5 i7 B. k- H0 {
q& x+ }/ T7 f! @% N
f=[];%第3时间层的数值
+ T- I* r3 R; O, p# Ffor j=2:m
9 p) w0 b3 T; G- z8 s* n f(j)=[r*q(j)+a*q(j-1)+r*q(j+1)];% q3 C) b! P' L5 M) {* @# q
f(1)=0;f(m+1)=0;2 K! {1 X8 C+ d
end %通过第2层数值来求第3层的计算
6 S6 R2 L# l4 p' Y- Odisp('5秒之后将会显示第3时间层的数值:')& f3 @8 r1 y* z' L% ^" y. |
pause5 G- m' B+ I0 F! \9 |* O) D, A
f% f6 U; U; U! A: b- ?: E: I0 s
e=[];%第4时间层的数值
- B7 r6 p! U. @for j=2:m5 L) ` t. n6 z7 }( p( |
e(j)=[r*f(j)+a*f(j-1)+r*f(j+1)];
, c x2 s& e& J0 f$ v3 w. \2 ` e(1)=0;e(m+1)=0;
9 M( c' x7 Y4 N- P: ]end %通过第3层数值来求第4层的计算
/ a# I5 m- \) R& v8 Fdisp('5秒之后将会显示第4时间层的数值:')
( u+ y; X3 p: q) Z5 K, \1 N* w4 ppause
8 I) \* j% ~3 e$ J: O1 re0 L; {" d6 j8 v) v" e/ n( _
g=[];%第5时间层的数值! q9 ~! j1 F: c. N
for j=2:m
6 r6 X, g3 b# O g(j)=[r*e(j)+a*e(j-1)+r*e(j+1)];+ J9 Z+ U$ e' e. V
g(1)=0;g(m+1)=0;
4 H3 T# X/ G+ b! D# o% e$ Hend %通过第4层数值来求第5层的计算$ n. c. k. Y- V
disp('5秒之后将会显示第5时间层的数值:')9 o7 I$ x1 i8 b
pause' C+ h, i8 i' I0 U+ V, T
g' W2 |6 I/ f) ^* `4 ^, A- p4 d4 M
if r<=0.55 C5 V8 O& p+ L' p0 k5 Q, P
disp('以上为上五层数据,因为r小于0.5,在稳定区域,所以方法稳定!')
' |2 B; y! F v Q% E/ Aelse
. j4 z2 ~7 |% n$ N disp('以上为上五层数据,因为r大于0.5,不在稳定区域,所以方法不稳定!')
- h1 [" D7 V! F/ k7 c; {end
& z: S* p) o5 m8 T6 m
9 s! q/ P: c$ K$ V& G% m有用的,大家可以直接用啊 , h8 \, f" @) u2 u. I2 R6 g) ~
时间有限,其中的函数大家可以从程序中获知!!! [em05][em05]& n8 \- ]* a f4 k: p' s
[此贴子已经被作者于2004-12-27 21:52:53编辑过] |