|
这是我为我女朋友的课程设计写的,如有不足,大家指点啊
1 v) F' ]3 E' e0 I1 e" G/ b9 e) Z5 c$ L8 z
t=input('请输入时间步长:');
# r) L2 I! E/ V. t3 Uh=input('请输入x轴步长:');
$ ~# \; y/ L; g- T" `r=t/h^2;a=1-2*r;- ?/ ~. G; W# Z) f. ]9 p
A=[];8 D* N: |$ ^6 E% S4 T
u=[];%第0时间层的数值
6 ]/ w; z- E' k" F% s: cm=1/h;
3 @. k f7 B% }j=0:h:1;
8 g, X( f, L1 I. Y4 hI=ones(size(j));; h _9 r! j$ ?2 p
u=4*j.*(I-j);
; f% v% r) h r. o( R% t %第0时间层的值的计算. f, D, H3 Q9 C* a
disp('5秒之后将会显示第0时间层的数值:')
. x+ k+ s @- |+ `1 v/ w' E% ipause$ l* ]+ ~5 _+ g# K" t; R
u
) m& z1 O3 J2 w1 @, pw=[];%第1时间层数值的计算
- _% w6 q, J+ u0 ? W7 |for j=2:m
6 L: N/ |3 i- H) Z+ [ w(j)=[r*u(j)+a*u(j-1)+r*u(j+1)];
2 ^" k4 P6 W; r6 l" q7 L. M w(1)=0;w(m+1)=0;9 y! n% \- V: ~
end %通过第0层数值来求第1层的计算4 z: e# m/ \6 T# E- U% C( z( N# J. y; d
disp('5秒之后将会显示第1时间层的数值:')
2 v# Z, b1 X$ p" p0 Bpause
2 V6 x: N, T: T+ P6 l, rw! G f: V) f' B
q=[];%第2时间层的数值7 G- K9 S$ e" y6 `8 G/ n
for j=2:m9 }3 {' H4 }* ~- o4 @: C
q(j)=[r*w(j)+a*w(j-1)+r*w(j+1)];
/ {" |5 Q8 e) U, X7 v6 N9 e: {4 K q(1)=0;q(m+1)=0;
) Y+ S4 M# l$ X0 b8 s; Jend %通过第1层数值来求第2层的计算# H0 Y g. {3 Q; \; F% J4 z6 F
disp('5秒之后将会显示第2时间层的数值:')
! R" c4 w3 q# n4 @, { ^! ?pause7 V, B! |$ G! t
q
/ J. G, v# E, _ ^, l# b: A, {f=[];%第3时间层的数值
' O" n$ Q! S7 p* W* a1 ufor j=2:m
- V) \7 ^6 m9 U& | f(j)=[r*q(j)+a*q(j-1)+r*q(j+1)];
6 m; k+ b. H% { A% ~ f(1)=0;f(m+1)=0;; `, x- [6 X0 [$ I
end %通过第2层数值来求第3层的计算+ q# `/ A" R c/ F9 k0 d. t
disp('5秒之后将会显示第3时间层的数值:')
8 q8 T6 Z) k- t& Qpause( U, m+ W% m$ C8 m* K/ W4 ^
f2 y5 j: I" v* P4 P( l
e=[];%第4时间层的数值
7 H W; M L) y$ a, nfor j=2:m
5 D+ ]( ?, Y0 L$ w" C/ q: D e(j)=[r*f(j)+a*f(j-1)+r*f(j+1)];6 T9 S1 S: e3 l I% M. r. E
e(1)=0;e(m+1)=0;5 R4 `+ `* W2 w" d$ k# G: z' g- e
end %通过第3层数值来求第4层的计算$ |" J7 d8 `: M: _: k" D
disp('5秒之后将会显示第4时间层的数值:')# Y; p1 {/ Q) v/ K
pause
1 @ Y/ Y8 R7 u" t# T5 E4 ke( k+ R8 R; j U4 h
g=[];%第5时间层的数值7 ~1 v" p* w9 f" I! [
for j=2:m' Q7 ~# `. _! o
g(j)=[r*e(j)+a*e(j-1)+r*e(j+1)];
' S7 T# L8 Z, W; S+ F1 f7 E g(1)=0;g(m+1)=0;
, P4 I) w, R3 _* s `end %通过第4层数值来求第5层的计算' s6 p G j, X$ y2 `: H
disp('5秒之后将会显示第5时间层的数值:')
. i' k, }7 X6 h% L( r0 z' @pause# v7 z1 R% G# j$ N5 U
g
% C8 E0 u8 P4 o- T1 m' Bif r<=0.5
, o* A: g& R0 A" O- r disp('以上为上五层数据,因为r小于0.5,在稳定区域,所以方法稳定!'). S' R/ F+ C- K d$ L5 p
else ; m5 `* N6 w( L* k8 T0 S7 _1 ?
disp('以上为上五层数据,因为r大于0.5,不在稳定区域,所以方法不稳定!')# ]3 Y; O4 ` o) z7 Z" D; v+ H3 [# A
end# D# u6 @; f8 M5 Y
9 Y g0 z) L/ V h W) x. H1 x) X
有用的,大家可以直接用啊 4 n, Y7 T' J5 F' K- N: i
时间有限,其中的函数大家可以从程序中获知!!! [em05][em05]" Q, m. H- z8 V
[此贴子已经被作者于2004-12-27 21:52:53编辑过] |