|
这是我为我女朋友的课程设计写的,如有不足,大家指点啊( E S6 S9 G) |& S, h: `* L
) z/ j- D! |8 S, `3 Q% I* p% ?, [ t=input('请输入时间步长:');, j- g' j& _# E' n& d3 P
h=input('请输入x轴步长:');2 {6 I4 Z9 d2 x$ u0 S: T$ ^. r
r=t/h^2;a=1-2*r;; M5 F7 K3 v! ]. m+ N4 l
A=[];! X9 j# Q4 a+ d! n# f
u=[];%第0时间层的数值
, q3 q' m1 Z* q D! ?0 E. s: Bm=1/h;
9 |6 ~. ^* @4 d; J- Pj=0:h:1;
$ q9 L1 d* H$ n2 |8 i- Y) @0 Q/ O; DI=ones(size(j));% X, T3 {# X# A1 b, g0 J
u=4*j.*(I-j);
+ J/ M7 C" Q1 {6 f %第0时间层的值的计算
8 N: G+ `- _" ]& e+ a' g7 M3 Pdisp('5秒之后将会显示第0时间层的数值:')+ \; h. G) f! X$ o5 R
pause
* _) g& w7 F. n: w# ju
3 A1 p8 Y, d6 t! o7 t1 Sw=[];%第1时间层数值的计算
. S6 Z$ d9 T D* ~& Yfor j=2:m& G9 \6 O& j7 V& a4 Y
w(j)=[r*u(j)+a*u(j-1)+r*u(j+1)];
) _) I4 a& w) m( B5 ]8 h w(1)=0;w(m+1)=0;" P8 t1 f. \$ ~& _
end %通过第0层数值来求第1层的计算
8 F. [' e0 |" C4 ^disp('5秒之后将会显示第1时间层的数值:')
5 p! u4 V V7 M6 qpause$ v! m5 ?% c4 z, c5 q `* [
w4 e( B( y" r) w# N d+ P3 D X4 Q
q=[];%第2时间层的数值3 O" i' a' |9 V) z
for j=2:m
* E4 h0 j. p( C1 I- n q(j)=[r*w(j)+a*w(j-1)+r*w(j+1)];: m6 F. n9 Y8 n
q(1)=0;q(m+1)=0;
* r/ q0 `& d; X* N+ |2 ? B8 Pend %通过第1层数值来求第2层的计算
: ]0 t t/ o; r0 O. T8 Pdisp('5秒之后将会显示第2时间层的数值:')
7 p$ l" F: N$ A: V' T& G r# Spause2 G# _9 }1 ]) o2 e3 C
q" d% t; ]9 {- ?1 o! F7 q
f=[];%第3时间层的数值
% t6 Z2 j+ E1 `' d' p* x' m) {2 Ifor j=2:m* ?$ V+ O) N% S( D
f(j)=[r*q(j)+a*q(j-1)+r*q(j+1)];
, l9 d% F% \4 l, F f(1)=0;f(m+1)=0;2 w5 @0 v1 y* i" v! O* X
end %通过第2层数值来求第3层的计算
! w3 C7 Z: f/ Mdisp('5秒之后将会显示第3时间层的数值:'), i( J+ H% G! {& N- q
pause
: q1 e p9 z, j) ?# Rf
) X2 Q8 w8 ?9 D0 o; s. o$ A3 l# Ye=[];%第4时间层的数值
& v1 J7 S. w* t3 efor j=2:m, r: ^, E: e. i+ ^* s( ]* z
e(j)=[r*f(j)+a*f(j-1)+r*f(j+1)];/ F3 z- W7 y3 c
e(1)=0;e(m+1)=0;
1 P5 E4 f1 i9 b$ @& ^end %通过第3层数值来求第4层的计算 V- c2 Z5 y6 m+ `9 }
disp('5秒之后将会显示第4时间层的数值:') z: g3 Q9 j$ d" T2 i
pause
/ o. O- k) s: D/ ?3 i7 Re1 C" @9 m- X1 f" e" \
g=[];%第5时间层的数值% a6 z: E4 A0 t4 r8 A, j' Y4 j
for j=2:m
5 K. }: A% K; q6 ~: I g(j)=[r*e(j)+a*e(j-1)+r*e(j+1)];8 R, f, k2 @7 a2 D3 L" f
g(1)=0;g(m+1)=0;
( ^2 {1 L# x+ N3 i& }8 j t$ Bend %通过第4层数值来求第5层的计算$ t' Z+ ]& N1 |
disp('5秒之后将会显示第5时间层的数值:')$ B3 s! O6 l; M$ K/ n8 ~
pause- d7 v# e6 t- J6 H5 g8 U% i
g3 U' p1 U8 r4 k3 O# l0 {+ V+ X9 d
if r<=0.5
9 b* p4 k6 ^: M disp('以上为上五层数据,因为r小于0.5,在稳定区域,所以方法稳定!')
$ J8 L2 g( W. q* I' m3 Oelse - `' x5 h6 N/ Y; @' |" Z
disp('以上为上五层数据,因为r大于0.5,不在稳定区域,所以方法不稳定!')% k: E5 ~! D% _* J% t9 g
end3 @: `3 M% ^' q- x/ I
2 f; A6 _% [2 e5 V4 a1 N. P有用的,大家可以直接用啊
; t* |7 N, W/ ~ e- U时间有限,其中的函数大家可以从程序中获知!!! [em05][em05]; P) t7 y* X. R) _% `- ]
[此贴子已经被作者于2004-12-27 21:52:53编辑过] |