|
这是我为我女朋友的课程设计写的,如有不足,大家指点啊
) b% A! V0 [' G$ U6 r# n2 M1 V
; |. t2 q/ D, i1 q, W W) v' j t=input('请输入时间步长:');
; Q8 S% A6 w4 ph=input('请输入x轴步长:');
2 u ~. F3 R: U7 lr=t/h^2;a=1-2*r;
0 u; f: Y5 }% m4 s3 _9 aA=[];
0 ~8 h ^# L: R! Gu=[];%第0时间层的数值
" a6 e; i5 Q3 I um=1/h;: [8 v8 _) [" X; r; C
j=0:h:1;
' y P4 z( f% D& TI=ones(size(j));
3 C7 j. c& Q8 \# D# }5 i u=4*j.*(I-j);
/ C9 c' O: D1 M5 ~ %第0时间层的值的计算
/ y4 o6 ~& p+ j! q4 ?' d8 ]disp('5秒之后将会显示第0时间层的数值:')
, |. K9 o0 S" |2 S% k' epause
6 D: z8 Q# d' S) L9 x" `u
2 {9 D: m, i/ p- J; Vw=[];%第1时间层数值的计算
; F7 \: | g8 X" Pfor j=2:m
% J- u% q& E4 `9 \ w(j)=[r*u(j)+a*u(j-1)+r*u(j+1)];' v; j, ?/ y3 |' R; u
w(1)=0;w(m+1)=0;
) P+ X2 O- s9 qend %通过第0层数值来求第1层的计算* W0 X/ u% X, Q5 \' `
disp('5秒之后将会显示第1时间层的数值:')
& w! E( g/ M2 K4 L8 spause
2 D) c. r2 E% sw
* O# V: a5 ~/ c6 F- O0 O! xq=[];%第2时间层的数值# _8 ^* w6 _' @0 J S8 M
for j=2:m
# K8 D$ H, U7 E5 z2 k' i q(j)=[r*w(j)+a*w(j-1)+r*w(j+1)];
; z* c5 |; Z1 h. [# x" }# F q(1)=0;q(m+1)=0;
1 C& `& r5 r) y1 ], c' tend %通过第1层数值来求第2层的计算
1 G8 ]3 Y4 x8 w( Ddisp('5秒之后将会显示第2时间层的数值:'), S- l+ [9 J& p' i
pause6 t1 x: v i) [: y W3 ^
q/ \: e, y+ O$ k; G
f=[];%第3时间层的数值
; S9 S( e: s) H- U' z$ nfor j=2:m7 ]4 u! X# E' C9 D8 u5 B v
f(j)=[r*q(j)+a*q(j-1)+r*q(j+1)];" J( L# F* U* e+ `
f(1)=0;f(m+1)=0;; g3 R; F2 Z1 _6 _; V
end %通过第2层数值来求第3层的计算# B9 Q8 u5 {& F9 s5 _% z
disp('5秒之后将会显示第3时间层的数值:')0 z1 ~& w3 m% f2 {1 W& L8 G
pause+ I, _% w- K; J/ ~9 D4 N
f
" T' e; _! @2 D& be=[];%第4时间层的数值
" {8 x# h. Q: z) c( x- Ofor j=2:m) I" q( f3 N" \ O* ~
e(j)=[r*f(j)+a*f(j-1)+r*f(j+1)];# U, o) n& [+ g
e(1)=0;e(m+1)=0;
9 H _% j. Y" X, T. Q& Oend %通过第3层数值来求第4层的计算7 r3 n$ L: H8 h1 { a; k+ B$ b
disp('5秒之后将会显示第4时间层的数值:')0 ?3 ]3 V/ m5 W2 m( ]
pause5 ], M- }' s8 y1 K* e$ e
e
% q: e3 ~9 g; ~' f* ]g=[];%第5时间层的数值
) z* L* [' ^/ [7 M7 Mfor j=2:m
5 u' }8 e. J5 j/ t( p8 T2 Y g(j)=[r*e(j)+a*e(j-1)+r*e(j+1)];
7 ]7 `9 |0 V0 n% n. u# S g(1)=0;g(m+1)=0;$ G" z" U0 P, T' z% p
end %通过第4层数值来求第5层的计算
7 y& t' }: \: Ndisp('5秒之后将会显示第5时间层的数值:')
( z8 T0 E9 ?* K( @' z# ]! npause
) E0 P ]* k. z- Zg
1 S* P5 ?* w6 _: g! l- m5 {if r<=0.5
) b. }3 q4 s# e disp('以上为上五层数据,因为r小于0.5,在稳定区域,所以方法稳定!')6 Y' x" G, `- B5 S# ]
else * W/ d! j6 [- c6 e8 e
disp('以上为上五层数据,因为r大于0.5,不在稳定区域,所以方法不稳定!')3 {! {& R C/ C6 i& s
end+ M3 x' s; J+ l1 j6 C1 i; c) i6 C
0 e; t4 i$ }( t# M8 F有用的,大家可以直接用啊
" }0 M' B0 k3 h Q' r. {2 g( m时间有限,其中的函数大家可以从程序中获知!!! [em05][em05]! J/ N1 U U1 v5 A
[此贴子已经被作者于2004-12-27 21:52:53编辑过] |