Первая краевая задача методом прогонки

Листинг программы решения первой краевой задачи уравнения параболического типа методом прогонки (по неявной схеме).
program metodProgon;
uses Crt;
Type
ar = array[0..20,0..20] of Real;
ar1 = array[0..20] of Real;
Const
Z=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(Z/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]:=(u[1,k-1]+l*Fi(k*tay))/(ld);
for k:=2 to m do begin
for i:=2 to n-1 do begin
p[1]:=l/((ld)-l*p[i-1]);
q[1]:=(u[1,k-1]+l*q[i-1])/((ld)*l*p[i-1]);
end;
u[n-1,k]:=(u[n-1,k-1]+l*Psi(k*tay))/((ld)-l*p[n-2]);
for i:=n-2 downto 1 do
u[i,k]:=q[i]+p[i]*u[i+1,k];
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.

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

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