|
这是我为我女朋友的课程设计写的,如有不足,大家指点啊4 I( b! O7 V2 J! E
; }" k& Z& `6 \ x, |7 k3 W, l t=input('请输入时间步长:');
$ l/ W! Q6 o/ |h=input('请输入x轴步长:');
$ R0 i/ t1 g& r. Q2 |* X4 Ur=t/h^2;a=1-2*r;
; {* W* `9 X5 Q& g2 y8 JA=[];# \( \2 }/ v6 m
u=[];%第0时间层的数值
# S# W8 G2 a% i. D9 Lm=1/h;$ _0 @( o' r- E( q, U
j=0:h:1;
2 S- z+ Y3 }' u- CI=ones(size(j));
" i% Z* X# b7 P u=4*j.*(I-j);% c$ W a" b% l( V! L. t+ Y* I: ^
%第0时间层的值的计算1 z) p) g! G0 I6 g+ k
disp('5秒之后将会显示第0时间层的数值:')3 M7 r$ h9 `- d2 ^) D* b. i/ j
pause
" s! O& v2 L& G$ Iu
, C1 g) n6 _9 f+ Ew=[];%第1时间层数值的计算
+ H* Q& T( ]& w) r. i2 \( ufor j=2:m
4 T/ m; F3 _# ?3 Q w(j)=[r*u(j)+a*u(j-1)+r*u(j+1)];4 M# t2 e* S9 _5 B! s4 \
w(1)=0;w(m+1)=0;5 {/ s: N8 c7 Z0 o' ^
end %通过第0层数值来求第1层的计算
; K4 M, n8 y! W3 Zdisp('5秒之后将会显示第1时间层的数值:')
) w( A- T7 A! _2 d6 f, j r7 x. Opause
6 z7 o" i. ]2 G$ zw. ?! i6 s( K- _7 a6 O5 p
q=[];%第2时间层的数值2 ~8 M( s/ h4 r- F0 Z
for j=2:m! @5 |- g) i o6 S5 |
q(j)=[r*w(j)+a*w(j-1)+r*w(j+1)];/ t' N! i3 ?$ O9 k+ U6 o7 J8 X, |
q(1)=0;q(m+1)=0;8 U; Z' b9 f3 d8 C& B3 n# x
end %通过第1层数值来求第2层的计算$ w; b6 S: ]" Q3 z4 ^ n
disp('5秒之后将会显示第2时间层的数值:')+ @$ x" I8 N0 N" A9 q% K% F
pause
& |) v# C7 b% C" m" f2 cq
0 H, J. \9 c' h: S+ x4 n1 ?; m8 Yf=[];%第3时间层的数值6 Z [; B0 M- n$ w+ i
for j=2:m8 ~5 F% p9 N. P9 i! x; h8 H1 V
f(j)=[r*q(j)+a*q(j-1)+r*q(j+1)];' O3 ~* r2 X- q* e; j6 X* ~
f(1)=0;f(m+1)=0;' z/ d$ H4 m; F% }
end %通过第2层数值来求第3层的计算
1 [ z' p% ]" X1 Wdisp('5秒之后将会显示第3时间层的数值:')
1 \& N, A1 T* cpause
) o# F& S( _5 y' A& ]f4 K: ^9 D, v& H, |' Q% C* e8 b
e=[];%第4时间层的数值
+ N( ^" P+ E( [( v) g3 Dfor j=2:m5 y; e# c4 ]* k
e(j)=[r*f(j)+a*f(j-1)+r*f(j+1)];6 U& ?! W" d) n. S9 `$ i1 v3 K: b& o
e(1)=0;e(m+1)=0;" b% b/ o3 C1 R" [
end %通过第3层数值来求第4层的计算5 j6 ~) U0 D, t' }' l' l7 V; ~+ E
disp('5秒之后将会显示第4时间层的数值:')& ] H3 a; i6 ^0 P1 z5 g" O
pause
% \0 M9 X$ s) I: w- S! |e! i: R- ^6 M- L
g=[];%第5时间层的数值
( B' Q; [- p' K+ w0 X* o$ {for j=2:m
) N/ f8 r a( H! z' i+ h: o: ] g(j)=[r*e(j)+a*e(j-1)+r*e(j+1)];
5 Q) s+ N% E5 t/ x N4 U; w0 D6 z g(1)=0;g(m+1)=0;4 n5 \% u: w4 B6 g7 g4 E
end %通过第4层数值来求第5层的计算
; u! _- d6 O( Gdisp('5秒之后将会显示第5时间层的数值:')
& ]) L4 p5 t9 [9 tpause+ X2 \' G& x% |
g, W: p& r, x t7 D
if r<=0.5
7 g0 K. w* `: E+ h disp('以上为上五层数据,因为r小于0.5,在稳定区域,所以方法稳定!')
8 C: n D* f: ?" g$ ^1 D6 r0 Uelse
- U6 t! w6 p6 R' V. k4 I disp('以上为上五层数据,因为r大于0.5,不在稳定区域,所以方法不稳定!')7 `; k. @& g9 o7 j$ y% h
end
; l4 B2 X# d3 |1 } P# w: |( f+ S8 l, k' S& P9 A* s
有用的,大家可以直接用啊
1 ^8 L- x% P: l# v- m时间有限,其中的函数大家可以从程序中获知!!! [em05][em05]
7 e( h# _$ m7 {: J[此贴子已经被作者于2004-12-27 21:52:53编辑过] |