2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Распределение температуры в шаре при его нагреве
Сообщение17.04.2012, 20:18 
Необходимо решить задачу прогрева шара. Программным методом. Создается неявная схема и решается система уравнений а после находится температура
Вот листинг программы:
$uses crt;
const mf=500;
type
     vector=array[1..mf] of real;
var
 i, j, N   : integer;
 T, alfa, beta  : vector;
 ai, bi, ci, fi : real;
 lamda, ro, c1, h, tau, a, q : real;
 T0, Th, R, t_end, time: real;
 f, g : text;
begin
 clrscr;
N:=100;
t_end:=30;
R:=0.01;
lamda:=46;
ro:=7800;
c1:=460;
q:=10000;
T0:=300;
 a:=lamda/c1*ro;
 tau:=t_end/100.0;
 h:=R/(N-1);
 for i:= 1 to N do
 T[i]:=T0;
 time:=0;
 while time<t_end do
  begin
   time:=time+tau;
   alfa[1]:=1.0;
   beta[1]:=0.0;
   for i:=2 to N-1 do
    begin
     ai:=((tau*a)/sqr(h))+((a*tau)/(i-1)*sqr(h));
     bi:=(1+((2*tau*a)/sqr(h)));
     ci:=((tau*a)/sqr(h))-((a*tau)/(i-1)*sqr(h));
     fi:=-T[i];
     writeln(fi);
     alfa[i]:=ai/(bi-ci*alfa[i-1]);
     beta[i]:=(ci*beta[i-1]-fi)/(bi-ci*alfa[i-1]);
    end;

  { T[N]:=((lamda*beta[N-1])-(h*q))/(lamda*(1-alfa[N-1])); }
  T[N]:=(2*a*tau*lamda*beta[N-1]-2*a*tau*h*q+sqr(h)*lamda*T[N])/(lamda*sqr(h)+2*a*tau*lamda*(1-alfa[N-1]));
   for i:= N-1 downto 1 do
    T[i]:=alfa[i]*T[i+1]+beta[i];
    end;
Assign(g,'temprs2.txt');
 Rewrite(g);
 for i:=1 to N do
  writeln(g,'  ',h*(i-1):6:6,'   ',T[i]:8:5);
 close(g);
end.

$

-- 17.04.2012, 20:19 --

Может кто решал такого рода задачи???

 
 
 
 Re: Распределение температуры в шаре при его нагреве
Сообщение17.04.2012, 20:44 
Аватара пользователя
Kazak46,

 i 
Код:
Во-первых, попробуйте тег "code" для для листинга; для того, чтобы Ваше сообщение можно было прочитать.
Во-вторых, подозреваю, многие захотят увидеть уравнения (гр. условия), решению которых посвящена эта программа.

После того, как мы получим возможность прочитать Ваше сообщение, можно будет понять --- вернуть ли его в "Помогите решить (М)", или в какой-то из разделов "Computer Science".

Используйте кнопку Изображение для редактирования своего сообщения.

Тема перемещена из "Помогите решить (М)" в карантин.
В теме Что такое карантин, и что нужно делать, чтобы там оказаться также описано, как исправлять ситуацию.
Как исправите - пишите сюда, чтобы тему куда-то там вернули.

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group