Добавил:
bagiwow
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:выч методы не разобраны! / VAR49~1 / 6
.pas Program rasch_n6;
const h=0.1; nu=3.14159265359;
x_a=0; x_b=1;
n=round((x_b-x_a)/h);
t_a=0; t_b=1;
var fout: text;
u: array [0..n, 0..n] of real;
i,k:integer;
x,t:real;
function f(x_:real):real;
begin
f:=x_*(2*x_-0.5);
end;
function p(x_:real):real;
begin
p:=cos(2*x_);
end;
function q(t_:real):real;
begin
q:=t_*t_;
end;
function g(t_:real):real;
begin
g:=1.5;
end;
{----------------------------------------------}
begin
assign(fout, 'r6_out.txt');
rewrite(fout);
{подсчет значений в граничных узлах}
{k=0}
for i:=0 to n do
begin
x:=x_a+i*h;
u[i,0]:=f(x);
end;
{i=0}
for k:=0 to n do
begin
t:=t_a+k*h;
u[0,k]:=q(t);
end;
{i=10}
for k:=0 to n do
begin
t:=t_a+k*h;
u[10,k]:=g(t);
end;
{подсчет значений функции в строках - k=1..9}
{для k=1 - посчитаем из начального условия}
for i:=1 to 9 do
begin
x:=x_a+i*h;
u[i,1]:=u[i,0]+p(x);
end;
{для k=2..10}
for k:=2 to 10 do
for i:=1 to 9 do u[i,k]:=u[i+1,k-1]+u[i-1,k-1]-u[i,k-2];
{вывод в файл}
writeln(fout, 'U[i,k]','i':40);
write(fout, ' ');
for i:=0 to 10 do write(fout, i:8); writeln(fout);
for k:=0 to 10 do
begin
if k=5 then write(fout,'k ')
else write(fout,' ');
write(fout, k:2);
for i:=0 to 10 do write(fout, u[i,k]:8:3);
writeln(fout);
end;
close(fout);
end.
const h=0.1; nu=3.14159265359;
x_a=0; x_b=1;
n=round((x_b-x_a)/h);
t_a=0; t_b=1;
var fout: text;
u: array [0..n, 0..n] of real;
i,k:integer;
x,t:real;
function f(x_:real):real;
begin
f:=x_*(2*x_-0.5);
end;
function p(x_:real):real;
begin
p:=cos(2*x_);
end;
function q(t_:real):real;
begin
q:=t_*t_;
end;
function g(t_:real):real;
begin
g:=1.5;
end;
{----------------------------------------------}
begin
assign(fout, 'r6_out.txt');
rewrite(fout);
{подсчет значений в граничных узлах}
{k=0}
for i:=0 to n do
begin
x:=x_a+i*h;
u[i,0]:=f(x);
end;
{i=0}
for k:=0 to n do
begin
t:=t_a+k*h;
u[0,k]:=q(t);
end;
{i=10}
for k:=0 to n do
begin
t:=t_a+k*h;
u[10,k]:=g(t);
end;
{подсчет значений функции в строках - k=1..9}
{для k=1 - посчитаем из начального условия}
for i:=1 to 9 do
begin
x:=x_a+i*h;
u[i,1]:=u[i,0]+p(x);
end;
{для k=2..10}
for k:=2 to 10 do
for i:=1 to 9 do u[i,k]:=u[i+1,k-1]+u[i-1,k-1]-u[i,k-2];
{вывод в файл}
writeln(fout, 'U[i,k]','i':40);
write(fout, ' ');
for i:=0 to 10 do write(fout, i:8); writeln(fout);
for k:=0 to 10 do
begin
if k=5 then write(fout,'k ')
else write(fout,' ');
write(fout, k:2);
for i:=0 to 10 do write(fout, u[i,k]:8:3);
writeln(fout);
end;
close(fout);
end.