|
这是我为我女朋友的课程设计写的,如有不足,大家指点啊
) X. C; W8 v4 t/ X6 x2 C# H& Z
; y: F1 ~" z" Z t=input('请输入时间步长:');* _0 p" L3 F8 V. E6 A
h=input('请输入x轴步长:');. _/ U1 W6 g! O! o
r=t/h^2;a=1-2*r;
: R' w/ z& E9 o) ^% I6 q9 _A=[];3 U2 R7 B3 ]& V, B, _4 r1 p
u=[];%第0时间层的数值; m' \& Z8 E5 @6 k
m=1/h;2 [' k; N4 o( J M6 F
j=0:h:1;8 Q7 A& c* g3 l
I=ones(size(j));- Z2 {; B2 I2 s2 i0 k
u=4*j.*(I-j);
& ^& K2 X; a7 S0 T; ]5 [1 f %第0时间层的值的计算( p- e7 e5 |. t& U
disp('5秒之后将会显示第0时间层的数值:')
% \$ l1 }- l6 ?pause
' g, {% u$ h; Z. E0 S; Ru
+ b8 F. E3 C" }* O e+ Cw=[];%第1时间层数值的计算2 `: h# I# Z* T5 g+ U" |
for j=2:m4 D W% {; s2 `8 n" E/ \6 H3 o
w(j)=[r*u(j)+a*u(j-1)+r*u(j+1)];
( O' K- }6 t. K w(1)=0;w(m+1)=0;" i5 h' i# m o1 f" g
end %通过第0层数值来求第1层的计算
5 \* E O2 R& j1 b" Y! [disp('5秒之后将会显示第1时间层的数值:')
7 ?! I4 ]; P1 Z6 I, ]5 D7 F( vpause, ?! b; y! g$ M7 E
w, ^4 y- s! i% p+ }) ^
q=[];%第2时间层的数值0 A/ L5 ~( z% d3 o4 N# H. F* g
for j=2:m
/ v+ p. d; H$ s% R$ i4 l( I0 _ q(j)=[r*w(j)+a*w(j-1)+r*w(j+1)];. M; w" }* a$ K6 T8 h
q(1)=0;q(m+1)=0;
5 H: `" i: K/ q% ?8 Kend %通过第1层数值来求第2层的计算
' L2 I9 \% @4 l b& O$ e0 \disp('5秒之后将会显示第2时间层的数值:')# j, a) \! }4 o0 s) |4 j7 K
pause8 y/ a- ^% ^) |4 H# z
q/ U+ k! T3 L4 f ^7 y
f=[];%第3时间层的数值1 o2 S2 X3 Z4 G; Y A
for j=2:m4 h3 {# h2 k" D; c4 n
f(j)=[r*q(j)+a*q(j-1)+r*q(j+1)];, G& R# ]9 u& h6 t1 T4 @4 L# v% Q
f(1)=0;f(m+1)=0;
$ Z2 i! ]/ i3 l8 q2 qend %通过第2层数值来求第3层的计算
+ q" i4 U$ |+ f( fdisp('5秒之后将会显示第3时间层的数值:')& a% x4 R! x' A" [4 i0 H; F |0 n
pause
& k" G5 V- {9 A0 z( l) ~f
% v7 U6 {% C- @4 Ee=[];%第4时间层的数值
8 R3 a4 @9 [5 S+ ]1 K0 B7 G2 Zfor j=2:m
9 G; F; w% w, y) e- t3 w; D3 n e(j)=[r*f(j)+a*f(j-1)+r*f(j+1)];
* V1 B5 j, }% u. @! ? e(1)=0;e(m+1)=0;
) q' ~. }& Z# P. \8 ^% e+ bend %通过第3层数值来求第4层的计算
- | Z7 s1 c/ Edisp('5秒之后将会显示第4时间层的数值:')
" ]2 ^2 q. x4 p' _/ E" a7 dpause/ a5 U+ h& ]1 W8 Z0 s; k( N2 q
e0 j7 ]4 q( |7 G
g=[];%第5时间层的数值
3 H- Q# @7 g' N! G1 Bfor j=2:m
. |- v V; K* a g(j)=[r*e(j)+a*e(j-1)+r*e(j+1)];
4 t0 i# M4 M( [ c g(1)=0;g(m+1)=0;
' P2 a3 b5 [7 x( {/ Y4 E8 ]end %通过第4层数值来求第5层的计算
$ s1 g5 p* y, n; \( @disp('5秒之后将会显示第5时间层的数值:')
v! h0 v- z8 U8 w2 |7 L7 Opause. M5 L9 w0 p" B
g
) K. |, i$ k d, Z3 @) iif r<=0.52 X$ T" n9 Y& j! X) `0 k
disp('以上为上五层数据,因为r小于0.5,在稳定区域,所以方法稳定!')) u' L4 R9 J. g% h8 A- [/ S
else ! a0 X4 k; Y3 i8 @3 f
disp('以上为上五层数据,因为r大于0.5,不在稳定区域,所以方法不稳定!')$ u. `; `! e1 c3 Q* b
end- O! b; d% \; K1 S( w: ~
3 P% a' A5 t. j: _& e' |( d' t
有用的,大家可以直接用啊 1 o" O! l9 g6 f/ m, V
时间有限,其中的函数大家可以从程序中获知!!! [em05][em05]
" m& V0 N" h6 {/ t[此贴子已经被作者于2004-12-27 21:52:53编辑过] |