БЕСПЛАТНОЕ РЕШЕНИЕ ЗАДАЧ

Разностная схема Кранка-Николсона

Программа решения первой краевой задачи для уравнения параболического типа по разностной схеме Кранка-Николсона методом прогонки.

program krunk;
uses Crt;
Type
ar = array[0..20,0..20] of Real;
ar1 = array[0..20] of Real;
Const
La=1;
h=0.1;
tay=0.00167;
m=10;
var 
u: ar;
p,q:ar1;
i,k,n:integer;
l,ld:Real;

function F(x:Real):real;
begin
F:=3*x*(1-x)+0.12;
end;
function Fi(x:Real):real;
begin
Fi:=2*(x+0.06);
end;
function Psi(x:Real):real;
begin
Psi:=0.84;
end;

BEGIN
ClrScr;
n:=Trunc(La/h+0.5);
for k:=1 to m do begin
u[0,k]:=Fi(k*tay);
u[n,k]:=Psi(k*tay);
end;
for i:=1 to n-1 do
u[i,0]:=f(i*h);
k:=1;
l:=tay/sqrt(h);
ld:=1+2*l;
p[1]:=l/(ld);
q[1]:=((1-2*l)*u[1,k]+l*(u[0,k]+u[0,k+1]+u[2,k]))/(ld);
for k:=1 to m-1 do begin
for i:=2 to n-2 do begin
p[1]:=l/((ld)-l*p[i-1]);
q[1]:=(1-2*l)*u[1,k]+l*(u[i-1,k]+u[i+1,k+1])+l*q[i-1];
end;
q[n-1]:=(1-2*l)*u[n-1,k]+l*(u[n-2,k]+u[n,k]+u[n,k+1]+l*q[n-2])/
((ld)-l*p[n-2]);
u[n-1,k+1]:=q[n-1];
for i:=n-2 downto 1 do
u[i,k+1]:=q[i]+p[i]*u[i+1,k+1];
end;

writeln('Rezyltati vichisleniy');
write('');
for i:=0 to n do
write('',i:2,'');
Writeln();
write('');
for i:=0 to n do
write('',i*h:1:2,'');
for k:=0 to m do begin
Writeln();
write(k:2,'|');
for i:=0 to n do begin
write(u[i,k]:1:3,'');
end;
end;
Writeln();
Writeln('Kolichestvo razbieniy po osi Ox= ',n:2);
Writeln('Shag razbieniya= ',h:1:5);
Writeln('Shag po vremennomy slou= ',tay:1:5);
Writeln('Kolichestvo shagov= ',m:2);
while not keypressed do;
END.

Оставить комментарий

Вы должны быть авторизованы , чтобы оставить или оценить комментарий.

Онлайн всего: 8
Гостей: 8
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте