procedure TForm1.Button1Click(Sender: TObject);
var N,M:integer;
Q,k0,E,cp,v0,ro2,T0,c2,Tgor,I,J,k,z,shag,JJ:integer;
L,alfai,betai,beta1,h,tau,kap,a1,a2,lamda1,lamda2,
alfa2,alfa1,ro1,R,eta0,ai,bi,ci,tz:real;
beta, Fi,teta:array of array of Extended;// Двойной массив
alfa:array of Extended;// массив
//Константы
begin
shag:=0;
N:=15;
M:=4000;
JJ:=10;
alfa1:=0.5;
alfa2:=0.5;
lamda1:=0.084;
lamda2:=4;
cp:=1000;
c2:=660;
ro1:=0.3;
v0:=1;
ro2:=1500;
Tgor:=1480;
T0:=315;
Q:=15130000;
k0:=500000000;
E:=126000;
R:=8.34;
eta0:=0.077;
kap:=(alfa1*lamda1+alfa2*lamda2)/(ro1*cp+ro2*c2);
L:=0.1;
tz:=1;//sqr(L)/kap;
h:=L/N;
tau:=0.1;
a1:= (tz*kap)/sqr(L);
a2:= (tz*v0)/L;
ai:=a2/h-a1/sqr(h);
ci:=-a1/sqr(h);
bi:=(-2*a1)/(sqr(h))-1/tau+a2/h;
//SH:=10;
Memo2.Lines.Add('KAP='+FloatToStr(KAP));
Memo2.Lines.Add('L='+FloatToStr(L));
Memo2.Lines.Add('H='+FloatToStr(H));
Memo2.Lines.Add('A1='+FloatToStr(A1));
Memo2.Lines.Add('A2='+FloatToStr(A2));
Memo2.Lines.Add('Ai='+FloatToStr(AI));
Memo2.Lines.Add('Ci='+FloatToStr(CI));
Memo2.Lines.Add('Bi='+FloatToStr(BI));
Memo2.Lines.Add('h='+FloatToStr(h));
Memo2.Lines.Add('tau='+FloatToStr(tau));
SetLength(TETA, N+1,M+1); //Дарозии массыв
SetLength(Fi, N+1,M+1);
SetLength(alfa, N+1);
SetLength(beta, N+1,M+1);
alfa[1]:=0;
beta[1,0]:=1;
for k:=0 to M do
begin
teta[0,k]:=1;
end;
for z:=1 to N-1 do
Begin
teta[z,0]:=0;
end;
for J:=0 to M-1 do
begin
for i:=1 to N-1 do
begin
Fi[i,j]:=(-teta[i,j]/tau)-tz*k0*(1-teta[i,j])*exp(-(E)/(R*(T0+teta[i,j]*(Tgor-T0))));
end;
for i:=2 to N do
begin
alfa[i]:=ai/(bi-ci*alfa[i-1]);
beta[i,j]:=-(ci*beta[i-1,j]-Fi[i-1,j])/(bi-ci*alfa[i-1]);
end;
teta[N,j+1]:=beta[N,j]/(1-alfa[N]);
for i:=N-1 downto 1 do
begin
teta[i,j+1]:=alfa[i+1]*teta[i+1,j+1]+beta[i+1,j];
end;
end;
J:=1;
repeat
for i:=0 to N-1 do
begin
shag:=shag+1;
if shag>=1 then
begin
//Memo1.Lines.Add(FloatToStr(teta[N,j+1]));
memo1.Lines.Add('TETA('+INTTOSTR(I)+','+INTTOSTR(J)+') = '+FLOATTOSTR(TETA[I,J]));
shag:=0;
end;
end;
J:=J+JJ;
until j>M-1;
end;
end;