2010
: .. , , . .-..
5 , .., 2010 10.
c 2- .
, 2010
: -
: .
. (, t), D = { (, t)|0 < < , 0 < t < } (1) u (x, t) = f(x) (2)
. (3)
(1)(3) , , , (q), .
. t → kt (1)
k =1.
D = { (, t))|0 < < , 0 < t < } h τ t (. 1). c (x1,t1), (xi,tj), , u(x, t) uij. xi=ih, i=0,1,,n, h=a/n, tj= jτ, j=0,1,,m, τ=T/m.
(1) , . 1 . :
λui+1,j (1+2λ) ui, j + λui-1,j = ui,j 1 (4)
(1) (τ + h2). λ = τ / h2.
. 1 . 2
(4) (1) , (4) uij.
. (5)
(4)(5) , uij (4). (4) , (4) . , , j, j 1.
, . (j = 0) ui0 = f (xi). (4)(5).
|
|
(4)
ai ui-1 2bi ui + ci ui+1 = fi , i= 1, 2, , n-1 (6)
c0u1 2b0u0 = f0 (7)
aNuN-1-2bNuN=fN. (8)
u0, u1, u2 ,...
:
ui-1=iui+Qi(*)
u0=c0/2b0·u1+(-f0/2b0) (9)
1 = c0 /2b0, Q1 = - f0 / 2b0;
i, Qi , (*) (6):
ai (i ui + Qi) 2bi ui + ci ui+1 = fi ,
(ai i 2bi) ui + ci ui+1 = fi ai Qi
ui =
ui = i+1ui+1 + Qi+1,
1, Q1, 2, Q2, ..
uN-1 = PN uN +Q N;
uN-1 = 2bN /aN ·uN + fN /aN;
.
: uN =
uN (*) ui i = N-1 0.
, ui .
(4) λ = τ / h2 > 0. (4) ,
(1) , . 2.
λ < 1/2, . . τ < h2 /2. , τ, . , , τ , . , . (4) . , h, τ → 0 (4) (5) (1)(3).
(1)(3) CALC.
CALC (4) .
: h ; τ t; N ; U N + 1 , CALC ; , Q N 1 / /.
: U N + 1 ( ), .
CALC :
1) U, P, Q:
2) , , N;
3) U .
. CALC, 2- D = { (, t)|0 < < , 0 < t < }. .
1. , CALC . 1.
2. CALC .
|
|
3. - , F(x) u (x, 0).
4. .
5. u .
: X [ 0, 1 ] .
u(, 0) = f () . q=1000, Ψ=100, α = 100.
1. .., ... . .: . .- . . - 1989 ., 430 .
2. .. / . ., . . , .. . .4-; . .: . . 2006 . 636 .
1
Pascal
program PAR_5;
const ht=0.02;
n=10;
hx=1/n;
var j,i,i1,N1,N2:integer;
x,y,t,T1,al,B1,A1:real;
u:array [0..n] of real;
P:array [0..n] of real;
Q:array [0..n] of real;
XP:array [0..n] of real;
begin
XP[0]:=0.0;
XP[10]:=1.0;
u[0]:=10;
u[10]:=20;
T1:=9*HT;
T:=0;
for i:=1 to n do
begin
x:=i*HX;XP[i]:=x;
u[i]:=f(x);
end;
writeln(T:8:5);
for i:=0 to n do write(u[i]:6:3);
writeln;
for j:=1 to 40 do
begin
calc; T:=T+HT;
if (T>T1) then begin writeln(T:8:5);
for i:=0 to n do write(u[i]:6:3);
writeln;
T1:=T1+10*HT;end;
end;
end.
5