|
这是我为我女朋友的课程设计写的,如有不足,大家指点啊
* [& v; \& J7 q: |4 G6 f
' ?2 V6 o' ]) m. G( x6 u6 h3 A( D9 r t=input('请输入时间步长:');. c9 ?3 k8 d$ a$ q% o3 w" B% k+ l K* e
h=input('请输入x轴步长:');2 f9 b0 K C# @* I5 P
r=t/h^2;a=1-2*r;8 m0 i H) Z! n
A=[];& ?$ f6 I% E( C) ^2 _2 F
u=[];%第0时间层的数值" X$ H7 W# r. i _" q3 h
m=1/h;
1 r/ Y; _ c$ Q) ~! tj=0:h:1;
+ k) }6 A% ]6 _. A& w8 |; II=ones(size(j));
( c3 O4 F! U0 l+ x% s u=4*j.*(I-j);6 ?+ \; n8 _8 c" \
%第0时间层的值的计算
- t8 p( x- h' ?9 ?8 Z5 d9 x+ a: Odisp('5秒之后将会显示第0时间层的数值:')
w5 v9 l( G2 Apause+ z; I7 Q$ d; P6 V9 T% t
u
& K" k4 a) M! {7 t0 Pw=[];%第1时间层数值的计算- d9 {% }' N4 D! K
for j=2:m) m' S( ?- q- ^
w(j)=[r*u(j)+a*u(j-1)+r*u(j+1)];
- X3 j# b. e# |/ E' p r w(1)=0;w(m+1)=0;9 ]7 z& o4 l( b! V5 c- k2 n, w
end %通过第0层数值来求第1层的计算+ ~/ l4 R! {2 Q
disp('5秒之后将会显示第1时间层的数值:')
6 L- g; C$ a; [+ |+ A% U; I, lpause
# q1 t& d' R8 `w
+ l( [0 U$ L2 D' s' Mq=[];%第2时间层的数值
6 C! a; ~) b. P; `* k; L1 y6 v+ q2 hfor j=2:m
9 f/ A6 s+ O& d q(j)=[r*w(j)+a*w(j-1)+r*w(j+1)];
9 a" u9 Q! d) U% _" N q(1)=0;q(m+1)=0;
8 ]# j; F6 d, |- R6 o1 C" \% Send %通过第1层数值来求第2层的计算
* G! h( a2 h, J6 c7 bdisp('5秒之后将会显示第2时间层的数值:')
' a6 W6 [, D3 x" b+ K: Apause
2 F5 X) n5 ?$ r6 f! e% aq2 G% e: y& c# h1 l& ~) }, b9 Z
f=[];%第3时间层的数值# J* N6 ? Z7 R l7 V
for j=2:m) o0 y3 S3 [8 D M
f(j)=[r*q(j)+a*q(j-1)+r*q(j+1)];! ^+ x' N# M$ O5 z: D+ M
f(1)=0;f(m+1)=0;
) b e* Y$ S9 v1 b* e& H9 Lend %通过第2层数值来求第3层的计算
; }" W9 \. }! c$ Z* J# Vdisp('5秒之后将会显示第3时间层的数值:')" A7 x! K& g; }! v
pause+ {. }4 S0 A# s9 o* A
f
* C& C. R x& [/ S. v- c: k) @! Oe=[];%第4时间层的数值
/ K6 Q* x) |( p" o5 Z6 Ifor j=2:m
5 V0 e3 k, U- X) }* {- H3 D6 x e(j)=[r*f(j)+a*f(j-1)+r*f(j+1)];
, A' Q# ?: S" a8 ^ e(1)=0;e(m+1)=0;" W& K; a; N; I2 {, }, |, G T Z; e
end %通过第3层数值来求第4层的计算
. H* U1 J! r# \( }# R# F. m' x wdisp('5秒之后将会显示第4时间层的数值:')
4 g% a2 d% v, [) |7 w: zpause2 G) z: q; h0 q n
e
$ ]5 P3 D+ j" A% [/ H5 C; e6 |g=[];%第5时间层的数值
. T, V& B6 B: } |for j=2:m# @& ^4 N/ {4 r# j! b' I
g(j)=[r*e(j)+a*e(j-1)+r*e(j+1)];' I s( H4 @7 E! @% ]
g(1)=0;g(m+1)=0;
, H, g5 o8 b5 P0 M% j/ V0 R8 _end %通过第4层数值来求第5层的计算
/ L. Z; i& x+ C2 k- Zdisp('5秒之后将会显示第5时间层的数值:')1 V& h$ F- a) F0 A, i
pause7 ` C- T, t& F( A6 q; v; [& \3 y
g
3 l1 W' X1 t1 ^; |% r$ Q" dif r<=0.5
9 p9 g5 a% z' F disp('以上为上五层数据,因为r小于0.5,在稳定区域,所以方法稳定!')
" w/ R, g7 ?6 U" g4 Telse % m; `/ X0 |5 G( {, o3 t- k2 X
disp('以上为上五层数据,因为r大于0.5,不在稳定区域,所以方法不稳定!')
4 {4 [- X ?' _3 Send
2 f7 G, ]1 M# ?! E0 \
9 k# _, w: W' R有用的,大家可以直接用啊
0 t7 R6 o: G5 d* Q; a! ^$ X时间有限,其中的函数大家可以从程序中获知!!! [em05][em05]
0 ]) q% V5 ]" g! A) P$ Q[此贴子已经被作者于2004-12-27 21:52:53编辑过] |