|
这是我为我女朋友的课程设计写的,如有不足,大家指点啊
2 y! Z4 o" G$ d h7 z! I
8 I/ J' D) x9 z t=input('请输入时间步长:');
7 l& O- N1 n+ Xh=input('请输入x轴步长:');
5 [, z/ ]5 Y6 ar=t/h^2;a=1-2*r;
% ^' j% ~* s" s8 c" nA=[];( P" a" q8 h: l* c- Q) m
u=[];%第0时间层的数值
8 O4 y5 ~, {" l( t/ Z. Bm=1/h;: ?/ G( B2 b9 Q7 H
j=0:h:1;; g2 D8 C5 x4 E6 X/ R& T$ {
I=ones(size(j));8 G' t& i% K& {0 w. C
u=4*j.*(I-j);6 g# }7 |9 l1 j' e8 `8 D" s5 K" k/ y
%第0时间层的值的计算, I6 K, O8 c# O: e
disp('5秒之后将会显示第0时间层的数值:')0 I& p U8 W8 f( [! M6 x
pause
/ n( y" W0 a5 o$ {1 }# X3 iu1 D0 r" j/ n" @" Y' S/ @
w=[];%第1时间层数值的计算
& w4 h+ Q. u! ]9 `. ~0 s$ z3 Lfor j=2:m( r/ k# D% O) L, F
w(j)=[r*u(j)+a*u(j-1)+r*u(j+1)];* |; V- b* d1 q; d7 {- R0 F
w(1)=0;w(m+1)=0;
9 c+ T1 `' u2 P2 ]end %通过第0层数值来求第1层的计算
0 P9 M6 H' L+ t% [7 A2 Rdisp('5秒之后将会显示第1时间层的数值:')
U0 J4 V$ z' n {3 m8 dpause! d! u/ _% q9 k- t9 r
w
, K) S4 T S2 x) _( t# e1 O" {q=[];%第2时间层的数值5 i. m2 J* F& c F
for j=2:m
4 c/ r2 J" J% S7 p' p5 k q(j)=[r*w(j)+a*w(j-1)+r*w(j+1)];
4 o( h0 {# n) p; o5 l7 n. H q(1)=0;q(m+1)=0;, _3 L$ [4 R! z5 s) k7 c" ^/ u; P
end %通过第1层数值来求第2层的计算% u W W" M; o0 V
disp('5秒之后将会显示第2时间层的数值:')
2 w: z0 }! x# |* m T1 N0 kpause
$ F/ W m* |7 d9 B* M: Uq
4 a* O5 W z) T, ff=[];%第3时间层的数值4 G3 p; P+ d/ ?7 J1 y& U) r5 ?( ^
for j=2:m
8 \& B' ?: a7 y* ?) g. y f(j)=[r*q(j)+a*q(j-1)+r*q(j+1)];
* ^+ } b6 m8 K/ b6 U" B; @. g f(1)=0;f(m+1)=0;
' w- z3 I+ L# n/ B; ^' G5 ~4 o" ^end %通过第2层数值来求第3层的计算! _3 k/ _" ~9 }: @& s8 f
disp('5秒之后将会显示第3时间层的数值:')
# c. k, J- j- G& {$ fpause7 M& Q4 h. X7 E& @9 @% S
f4 t# Z, s: C2 R+ R8 H1 w1 Q: L; ~
e=[];%第4时间层的数值3 b2 J& K# k( l6 p: T. k6 `; s+ r
for j=2:m
6 W9 U/ _8 I: s4 ]" b+ E e(j)=[r*f(j)+a*f(j-1)+r*f(j+1)];* c4 N0 H; ~4 s8 a% e
e(1)=0;e(m+1)=0; q7 B! Z, @" Q0 [
end %通过第3层数值来求第4层的计算
0 t+ I( N- B" P2 \. |disp('5秒之后将会显示第4时间层的数值:')
$ n W, F5 J' {pause3 e3 ?$ |6 q& B+ j! b: E! ~+ O
e
3 o: l& h% H- t0 z5 m9 R+ o `g=[];%第5时间层的数值
/ w& t8 z4 e% t$ @, q0 m# cfor j=2:m
' b# j7 _6 R" |5 Z( t* A% u( e n g(j)=[r*e(j)+a*e(j-1)+r*e(j+1)];8 b, P6 i# {1 c* X: w
g(1)=0;g(m+1)=0;! K( s4 a- `- O3 [& F
end %通过第4层数值来求第5层的计算
, m. ^8 _- r' r6 k( _4 Adisp('5秒之后将会显示第5时间层的数值:')$ c- {. l8 u# t3 p
pause
$ _$ U4 y7 j. c: Lg: n9 u' W6 J/ l: K9 y
if r<=0.5' J% O9 a/ m E! [8 a3 R% x5 A0 z
disp('以上为上五层数据,因为r小于0.5,在稳定区域,所以方法稳定!')% t. _( p$ O7 x; A$ {2 L
else 8 t9 H+ K/ a v/ M2 A0 m
disp('以上为上五层数据,因为r大于0.5,不在稳定区域,所以方法不稳定!'). U& U. G' \/ n9 ?( k4 }* l
end9 s$ M3 E1 Z3 W; X& T. K, l
; X' I% s# W% j; K有用的,大家可以直接用啊
& `8 ^5 ]1 d' ?, q时间有限,其中的函数大家可以从程序中获知!!! [em05][em05]
7 [ T% \/ Q2 R[此贴子已经被作者于2004-12-27 21:52:53编辑过] |