|
这是我为我女朋友的课程设计写的,如有不足,大家指点啊
1 f" u! e* U8 I$ i. M- a! e& o3 K9 ^- d4 E; c
t=input('请输入时间步长:');
& n3 R v. S+ n! v# k5 v7 Qh=input('请输入x轴步长:');
. T) ^) T3 p$ c& p$ j$ Mr=t/h^2;a=1-2*r;5 v' C/ m9 t6 m( ]/ w
A=[];
0 u0 u6 P" I: i- [4 ]$ ]u=[];%第0时间层的数值
# q4 I. m1 g1 x& ]2 a8 I: x& gm=1/h;& z: C, R- E% E6 S1 H: g
j=0:h:1;8 q( u* y7 Z+ B8 C$ ?
I=ones(size(j));' k) d# M3 u' B! W% B. ~' c
u=4*j.*(I-j);
/ w! ^& R4 H8 @" D %第0时间层的值的计算
/ Q4 V! Q1 l) u+ N3 bdisp('5秒之后将会显示第0时间层的数值:')
+ E0 N$ G: B/ d7 R8 W7 jpause r# z% i `" T" v% x
u
: K! q. {' A1 a3 Hw=[];%第1时间层数值的计算
, a: z, U; q! \# _: @+ s* s* i tfor j=2:m9 e% e' G" D6 v) K+ f
w(j)=[r*u(j)+a*u(j-1)+r*u(j+1)];5 s& e: S6 n, I) S5 B! Q. E
w(1)=0;w(m+1)=0;" ]/ a( C5 J# ]) ^
end %通过第0层数值来求第1层的计算# N( {: s7 y+ S& V
disp('5秒之后将会显示第1时间层的数值:')/ O9 F2 y: P' o* N: ]8 j
pause5 u/ G# r6 v1 t u
w
- k6 F: D3 d3 B# |" ?0 H) E, yq=[];%第2时间层的数值
. C: t. X/ d3 ~8 yfor j=2:m* M2 g3 C# F4 d5 q P/ E
q(j)=[r*w(j)+a*w(j-1)+r*w(j+1)];1 r, }7 P$ a b7 J1 V
q(1)=0;q(m+1)=0;
5 {& K& L; q, g3 L0 d1 K. G- |! t5 kend %通过第1层数值来求第2层的计算
. S) x8 c# g- Ldisp('5秒之后将会显示第2时间层的数值:')5 ?% r# q' N& k! M/ S
pause
! G' T; O: z' p3 oq' A) j3 l5 t% B9 Y
f=[];%第3时间层的数值$ G$ r/ w# o* w! E! u: k; f
for j=2:m
( X# Q {* Z l4 C8 X4 |8 q: ^ f(j)=[r*q(j)+a*q(j-1)+r*q(j+1)];8 W" H% u4 Y+ @. n% y$ z( r' N
f(1)=0;f(m+1)=0; v5 V5 W" A7 z) ?; B
end %通过第2层数值来求第3层的计算- ~! [* k7 ~/ m3 n
disp('5秒之后将会显示第3时间层的数值:')7 P) v; C4 g, t2 `. [" ~
pause5 p2 K- E) j) Z( p+ ?, ~
f
3 J, s6 D2 i: ue=[];%第4时间层的数值
; L \* {( c) L `+ Y% `8 `for j=2:m
9 J/ ~5 e1 i% c. e3 H' y* j e(j)=[r*f(j)+a*f(j-1)+r*f(j+1)];* s0 Y1 z; \2 V
e(1)=0;e(m+1)=0;8 j$ N7 U$ x, h3 c
end %通过第3层数值来求第4层的计算
2 A0 q1 k) {6 }3 J# M: f* mdisp('5秒之后将会显示第4时间层的数值:')# \; i/ y7 _) n; k
pause1 ~, y. q) m$ j- N- R; z% h
e3 P0 u2 ]0 F, V) ~6 ]8 E& e
g=[];%第5时间层的数值$ W2 N4 g& V% T3 f3 i6 e! L- n
for j=2:m
; B3 n% o) x5 x; {# R, m. P# c& t3 L g(j)=[r*e(j)+a*e(j-1)+r*e(j+1)];! E' r, \- `6 q% G1 j
g(1)=0;g(m+1)=0;+ V, S3 V" L4 `9 u
end %通过第4层数值来求第5层的计算% r, A3 Q; o9 ]. @* q
disp('5秒之后将会显示第5时间层的数值:')
: w5 W. U& H: X& ]pause J4 ^# H; J, F4 c3 i
g
4 H4 B& X+ K' d. a7 Vif r<=0.5& t; a5 l; R9 {) z; I
disp('以上为上五层数据,因为r小于0.5,在稳定区域,所以方法稳定!'); G) L4 p! d6 q" @
else : S! c5 ~& G+ D! U
disp('以上为上五层数据,因为r大于0.5,不在稳定区域,所以方法不稳定!'): Z/ J6 N2 M2 y; d* E
end2 q# D! R! E0 R9 _
6 b! I& ]: d6 d9 m. G- ^3 J有用的,大家可以直接用啊 ! i$ [& ]" q/ w5 @
时间有限,其中的函数大家可以从程序中获知!!! [em05][em05]
0 |) X1 }. B% f9 z8 f$ d/ r5 s[此贴子已经被作者于2004-12-27 21:52:53编辑过] |