|
这是我为我女朋友的课程设计写的,如有不足,大家指点啊
/ D# G! u- F& J9 d) S
5 k, B3 S }3 q t=input('请输入时间步长:');
1 I! t G( ]( @, |( th=input('请输入x轴步长:');' T% T' k5 g. l$ E! a
r=t/h^2;a=1-2*r;6 p O" P. S+ [2 S- R* d
A=[];
2 z8 l1 d6 T, |4 ]2 ^3 {' Z1 Mu=[];%第0时间层的数值- P5 ^- j( e! |. c/ `& ]3 h5 m8 U; o1 `
m=1/h;( d6 _9 ~! m0 h) d, W/ [
j=0:h:1;
9 I; Z+ e: L7 o+ m7 OI=ones(size(j));4 d) K. E0 a0 v2 h
u=4*j.*(I-j);' L* ?3 e! Q! }: v! u" C
%第0时间层的值的计算3 B( o' s& Z0 B4 |8 B) [
disp('5秒之后将会显示第0时间层的数值:')8 S% c5 l5 y/ U/ g0 M( m
pause
. N, O! A' L) p5 N! @$ Bu
9 A) P, { e- I, I* ~! M+ }# ww=[];%第1时间层数值的计算
& l1 p( [3 \/ Y! nfor j=2:m
" m, x/ ]' t5 I0 e w(j)=[r*u(j)+a*u(j-1)+r*u(j+1)];' z8 I& k/ i0 s% O7 q4 K( T
w(1)=0;w(m+1)=0;
# \0 t# @* o! \, jend %通过第0层数值来求第1层的计算0 s/ |( ~3 t; {, t
disp('5秒之后将会显示第1时间层的数值:')
% d* [" t! X% Ppause
& p' D7 E) g3 B/ w& c( Z( W) T7 kw
, c5 C1 n9 z# X# m: k$ X& Mq=[];%第2时间层的数值
- k+ A1 v7 x d( F: K7 e: C8 `for j=2:m
5 d0 p |2 p, h( O( H7 ~5 l% A q(j)=[r*w(j)+a*w(j-1)+r*w(j+1)];$ \; C. z' _; Z# b& {5 T
q(1)=0;q(m+1)=0;
6 N( Y) d, y1 \( z( Rend %通过第1层数值来求第2层的计算5 r2 _. q4 h& p8 p9 T2 O
disp('5秒之后将会显示第2时间层的数值:'); X, A) o4 f2 J; M8 ^9 |- {: ?
pause. n% z6 g9 n1 O5 }
q
: Y+ g E6 h3 V+ m5 Tf=[];%第3时间层的数值9 V4 Q! l3 k4 n
for j=2:m) {. X# `6 ~, ~
f(j)=[r*q(j)+a*q(j-1)+r*q(j+1)];
0 V! {- T& x/ D5 N+ k( f/ e f(1)=0;f(m+1)=0;" F* u1 H7 o& \
end %通过第2层数值来求第3层的计算
0 \( T- N' A0 M8 a3 n1 l' h2 jdisp('5秒之后将会显示第3时间层的数值:')
7 O J- S0 T2 k8 {0 o+ Zpause, T8 L, d. l1 {4 I$ M
f5 `$ i# t# q. X: W4 P
e=[];%第4时间层的数值8 ^3 z1 {3 Q) E7 A8 v+ \7 @
for j=2:m
! Q$ m M2 |% @ e(j)=[r*f(j)+a*f(j-1)+r*f(j+1)];
4 S( Y8 ~" n3 B8 Z$ k- \1 y: Q e(1)=0;e(m+1)=0;" e! Z! |. w. ?
end %通过第3层数值来求第4层的计算 g, C( H% Q, E# d; m" x* b+ ]
disp('5秒之后将会显示第4时间层的数值:')
4 `! y3 e7 }, H5 @& ]pause
" ?: l, r) |& Z7 \e- o/ B, t' f2 W
g=[];%第5时间层的数值
/ i, R* x4 }) O+ e. l6 C. d- ^for j=2:m1 A, c7 ?9 ?/ E/ l: | t1 J/ U
g(j)=[r*e(j)+a*e(j-1)+r*e(j+1)];
( B5 L/ t8 w2 w& C g(1)=0;g(m+1)=0;3 w$ E s4 A6 B6 T+ g9 D
end %通过第4层数值来求第5层的计算: W; Z; b2 A0 N( C1 s, s
disp('5秒之后将会显示第5时间层的数值:')1 D% Z2 ~( F& |8 ^# b j; u( u
pause6 `0 K& l1 t( u8 z- Q$ Q* I2 l: N5 I
g* [- G/ t3 h. ?5 u+ I4 }4 U
if r<=0.5
9 U! g; u8 t1 { disp('以上为上五层数据,因为r小于0.5,在稳定区域,所以方法稳定!'). V" c' ], h9 w. v4 }
else
8 G5 b1 E# a& [; J0 H% T1 \# a8 g# I disp('以上为上五层数据,因为r大于0.5,不在稳定区域,所以方法不稳定!')/ [2 {3 p) @$ x+ p+ B2 V
end) N! t& O2 Y- T, _( e; `
! D" g8 b' B. R$ `- C有用的,大家可以直接用啊 2 q: p6 `' n) j$ P
时间有限,其中的函数大家可以从程序中获知!!! [em05][em05]# _' C. I. s7 H6 F2 @
[此贴子已经被作者于2004-12-27 21:52:53编辑过] |