Скачиваний:
30
Добавлен:
09.12.2013
Размер:
2 Кб
Скачать
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.
Соседние файлы в папке VAR49~1
  • #
    09.12.20137 Кб296.EXE
  • #
    09.12.20132 Кб306.pas
  • #
    09.12.20131 Кб30R6_OUT.TXT
  • #
    09.12.201370 Кб30ЗАD8D0~1.MCD
  • #
    09.12.2013166 Кб29ЗАD8D4~1.MCD
  • #
    09.12.201341 Кб30ЗАДАНИ~1.MCD
  • #
    09.12.201351 Кб29ЗАДАНИ~2.MCD