|
这是我为我女朋友的课程设计写的,如有不足,大家指点啊1 L% i' x0 G7 G1 A$ H0 H
+ N9 W- w7 B0 O: {; f
t=input('请输入时间步长:');
2 Z$ S0 g s8 d9 z9 [h=input('请输入x轴步长:');5 U ` }, a( d/ s5 B
r=t/h^2;a=1-2*r;
1 m, w& M8 Y0 c3 f0 QA=[];
& {' x1 c o, w+ c$ ^u=[];%第0时间层的数值
' E& Y& r0 d) R c1 i* r. B* h; X1 ~m=1/h;
: I' l- r' i! d/ {& T' \( I7 Vj=0:h:1;( W; Z2 x0 X1 t& D
I=ones(size(j));
( D4 I9 |+ [& A) c* L0 z u=4*j.*(I-j);
7 |5 O9 B) w8 H8 X! e8 K %第0时间层的值的计算
) R: v* W" R, c4 |) @disp('5秒之后将会显示第0时间层的数值:')3 E- g9 Z" O; p1 Y F% W
pause
K: r5 M! W, _u6 p: Z) ]% F4 h
w=[];%第1时间层数值的计算
+ Q% C, d0 H4 }7 }- d1 zfor j=2:m, S5 H& ]0 h" `4 |3 f
w(j)=[r*u(j)+a*u(j-1)+r*u(j+1)];4 |* A0 N5 j* L1 T& g' ~
w(1)=0;w(m+1)=0;8 X& d8 h8 H8 G5 X
end %通过第0层数值来求第1层的计算6 Q: @8 M% `" P" z
disp('5秒之后将会显示第1时间层的数值:')* w+ H9 S4 r& t# a- p
pause
' D) E6 I5 u; E7 aw3 {; V0 r9 E" h q; t
q=[];%第2时间层的数值2 ^2 S& H/ v8 [
for j=2:m+ M! N' }. O" Z4 j
q(j)=[r*w(j)+a*w(j-1)+r*w(j+1)];
! l9 H. d( u, }; `" ` q(1)=0;q(m+1)=0;' y/ I9 G. c: S& l; ]
end %通过第1层数值来求第2层的计算4 m. ?! I y) x4 L
disp('5秒之后将会显示第2时间层的数值:'). K `4 _* R$ | l5 ^% s2 Z& u
pause
" t* U; k1 [0 d. \& k' `5 ?) J) |q
. z) ?1 i% Y/ r% j- w7 if=[];%第3时间层的数值* \' M" y: @: ?3 { J
for j=2:m/ L4 s3 S8 H* g, g. @$ }2 S
f(j)=[r*q(j)+a*q(j-1)+r*q(j+1)];0 O) J- F4 d4 c( H/ E0 D
f(1)=0;f(m+1)=0;
1 Q2 d- u+ @* P6 g: U% r8 nend %通过第2层数值来求第3层的计算
3 V7 G4 |1 o2 s" Xdisp('5秒之后将会显示第3时间层的数值:')
; }. W! V' d. q! Y# ipause& {7 A1 _: c& y. Z
f
; ~( t- b! L9 p1 i, r* [% u- V8 `e=[];%第4时间层的数值
( _: y% s N$ M' X6 d$ d+ qfor j=2:m' j$ V; i" C$ D+ J
e(j)=[r*f(j)+a*f(j-1)+r*f(j+1)];# E4 `5 @$ s4 z# f
e(1)=0;e(m+1)=0;0 A [" O" B2 r9 p
end %通过第3层数值来求第4层的计算
; S/ q! C/ i% g8 edisp('5秒之后将会显示第4时间层的数值:')2 J' f" q! u! i/ K
pause
, {3 U3 y: T! ae
% `& d: z- q) H) }* Rg=[];%第5时间层的数值$ c$ B! ^7 u3 T. B( p* M8 p
for j=2:m
* D4 J9 j: r4 ~$ ~ i0 ^+ I g(j)=[r*e(j)+a*e(j-1)+r*e(j+1)]; f% Z8 X0 E8 s- V" r
g(1)=0;g(m+1)=0;7 z* ?) e% e! i: Q" D" o8 ~
end %通过第4层数值来求第5层的计算
* J9 l8 l# Y" g. F; l* d3 i& wdisp('5秒之后将会显示第5时间层的数值:')
& z. Y8 L+ N( r/ hpause
7 `* W* j4 Q7 Og
1 Z X% o0 z; p( e0 ]& Iif r<=0.5
) N% P( O, @- N2 j disp('以上为上五层数据,因为r小于0.5,在稳定区域,所以方法稳定!')
+ }! O& w0 u! @! Z4 z$ [4 v' H3 b# Velse ( m* w+ r2 p0 }, P8 l, Z
disp('以上为上五层数据,因为r大于0.5,不在稳定区域,所以方法不稳定!')3 |( s1 o; W3 t' @. K& R
end
4 B X, ?! h3 ^9 f) n2 `' s4 H
! U8 Y! Z+ V6 ] H9 S有用的,大家可以直接用啊
( z2 V1 S' Y' x8 w% y% i; C; z7 z时间有限,其中的函数大家可以从程序中获知!!! [em05][em05]# @) r9 f( N& [
[此贴子已经被作者于2004-12-27 21:52:53编辑过] |