|
这是我为我女朋友的课程设计写的,如有不足,大家指点啊
7 {& u2 A! W W+ ~8 u4 |. q* E' F# o" Q5 w8 C
t=input('请输入时间步长:');7 l7 ]* t; \% N( V) ^1 I
h=input('请输入x轴步长:');
* F" B C2 a0 G- |5 C4 p9 t: Yr=t/h^2;a=1-2*r;
0 b7 r5 o+ }) U' B3 Y! t5 L/ FA=[];
v5 l6 W6 s$ P* ?% Mu=[];%第0时间层的数值
4 m4 E1 a; M x) n1 A% d3 em=1/h;. ]* Q: w, @4 O. d4 A9 F( A+ B7 T; N
j=0:h:1; I1 ~) q' q& q; K/ ]% d
I=ones(size(j));) U! E* s9 u% `
u=4*j.*(I-j);1 X+ e- v$ k4 U7 g
%第0时间层的值的计算7 D! a1 J' i* n
disp('5秒之后将会显示第0时间层的数值:')! f/ d$ v6 }8 q/ S
pause
8 A7 p+ l, l; l+ ]: Pu
t# [0 ^6 ~, H" Z# p: U1 b5 ^5 E" Jw=[];%第1时间层数值的计算7 C* n* }; L$ Q
for j=2:m6 Y- B9 L; I b, d% e4 s2 e5 Y1 M
w(j)=[r*u(j)+a*u(j-1)+r*u(j+1)];
* a4 ?8 {5 j) s y5 D$ Y w(1)=0;w(m+1)=0;$ Q' T' v3 x3 n. i9 p' G$ |7 b
end %通过第0层数值来求第1层的计算
; ]' {* L* H1 t$ I4 K% w9 cdisp('5秒之后将会显示第1时间层的数值:')
0 }- ?' b# i* Z% Zpause
- n% @. M8 ?5 Kw7 b: Z6 g8 a$ u! D9 P0 z
q=[];%第2时间层的数值8 W8 l# e% g% M& t
for j=2:m
, p+ @' Q& s5 }' r* c/ q$ ~ q(j)=[r*w(j)+a*w(j-1)+r*w(j+1)];! t X: |' i: X! O
q(1)=0;q(m+1)=0;
& s- Q( Z( {' }$ n/ x6 C: i7 Xend %通过第1层数值来求第2层的计算7 m" l3 e# o) ?7 J/ B
disp('5秒之后将会显示第2时间层的数值:')0 y) T! h4 B4 _, W) f# s! G
pause
7 f G1 \+ o( d- a+ F% I% C& Wq
6 K' C5 f8 z1 j5 G6 n/ X1 [1 {f=[];%第3时间层的数值
3 I( _( Z& t0 W; \) yfor j=2:m
7 j" n# k' z, n5 F$ U! S f(j)=[r*q(j)+a*q(j-1)+r*q(j+1)];8 c6 _1 C3 G# x# E
f(1)=0;f(m+1)=0;) i2 x5 ~" A( M( Z( j0 d+ c
end %通过第2层数值来求第3层的计算" v- U5 {5 R3 J2 I/ u# I
disp('5秒之后将会显示第3时间层的数值:'): b+ y9 |" i% ] _) H
pause: @, V1 Q9 ?$ V% G& O. H
f" W6 g% v U: V! K0 D; L
e=[];%第4时间层的数值7 h6 G* f9 u( H5 c& p3 b0 x+ Z- @
for j=2:m
6 E( N {1 M1 ^3 p e(j)=[r*f(j)+a*f(j-1)+r*f(j+1)];4 j3 R+ R# @4 v4 e, v
e(1)=0;e(m+1)=0;
1 [, N8 I: L5 N, F7 Y0 M) b* z3 wend %通过第3层数值来求第4层的计算
" m V2 n7 y+ Sdisp('5秒之后将会显示第4时间层的数值:')
8 h5 z* G9 B1 {1 s R% tpause" l, w# E& \9 B
e: \, N- Y% _+ V7 s
g=[];%第5时间层的数值
5 i. w) K* P5 l9 O$ W4 _for j=2:m3 A5 ^( I- b; D* k8 Y
g(j)=[r*e(j)+a*e(j-1)+r*e(j+1)];
2 t( X- d- x0 k: G+ L q* B k' _ g(1)=0;g(m+1)=0;' v/ s! {& u# H8 k) x& m7 K
end %通过第4层数值来求第5层的计算; w& F( _) W: ]8 E7 n3 j! \% ]% P
disp('5秒之后将会显示第5时间层的数值:')
( O7 h8 p1 l! z& J1 n1 s7 P# u' Wpause; a8 I/ X$ f& Q
g
- J/ ^ x' a, Q9 rif r<=0.5
6 I5 R% }1 N" h {, s. a. U disp('以上为上五层数据,因为r小于0.5,在稳定区域,所以方法稳定!')
6 J' Q$ D4 ?3 R/ ?else
" J8 T$ [1 j# L4 o' k! }- ~ disp('以上为上五层数据,因为r大于0.5,不在稳定区域,所以方法不稳定!')
. }- \# l8 i% ~! b8 r5 V) A' Jend* h9 X& Z# N4 f% `0 B$ \. Z
7 Q4 n H8 A9 ^/ W
有用的,大家可以直接用啊
. e# r3 h: u* [' O6 ? A7 y% u时间有限,其中的函数大家可以从程序中获知!!! [em05][em05]8 m5 v% ~3 I2 ^
[此贴子已经被作者于2004-12-27 21:52:53编辑过] |