- •4.Численные методы решения задач
- •Общая методика метода Гаусса. Система представлена в общем виде как:
- •4.2.Решение нелинейных уравнений
- •4.3. Методы построения аппроксимационных полиномов
- •Определить аппроксимационный многочлен
- •4.4.Численное дифференцирование и интегрирование
- •Ошибка вычисления интеграла определяется как
- •4.5.Методы решения дифференциальных уравнений. Метод Рунге-Кутта
- •4.6.Методы решения дифференциальных уравнений с частными производными
4.6.Методы решения дифференциальных уравнений с частными производными
Для решения уравнений с частными производными самым распространенным являются метод конечных разностей и метод конечных элементов.
Метод конечных разностей. В методе конечных разностей производные первого и второго порядка заменяются на конечные разности функцией:
; (4.6.1)
;
где h-шаг изменения по величине x.
Применительно к уравнению теплопроводности
(4.6.2)
где T=f(x,y,t)
Формулы конечных разностей для явной схемы будут иметь вид:
;
;
; (4.6.3)
;
;
где -температура в точке с координатами i,j по осям x,y соответственно, n-координата по времени.
Уравнение (4.6.2) после подстановки формул (4.6.3) будет иметь вид:
(4.6.4)
где x и y шаги по величинам x и y. Для реализации схемы (4.6.4) с равномерным шагом плоскость по которой ищут решение T(x,y,t) разбивается квадратной сеткой с шагом x=y.
Для решения задачи (4.6.2) для прямоугольной области задают начальные и граничные условия:
;
;
где и , а
и ;
область 1- незаштрехованная часть плоскости, область 2- заштрехованная часть плоскости.
Пример 1. Раписать схему решения уравнения
для плоскости и начальных данных для области 1- =500С и для области 2- =100С.
Исходя из (4.6.4) для каждой узла итерационные уравнения будут иметь вид:
; ;
; ;
; ;
; ;
; ;
;
; ;
; ;
; ;
; ;
; ;
; ;
; ;
; ;
; ;
; ;
; ;
; ;
; ;
; ;
; ;
; ;
; ;
; ;
; ;
Пример 2. Написать алгоритм и программу решения двухмерного уравнения теплопроводности конечно-разностным методом для пространства:
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 2 2 2 1 1 1 1
1 1 1 1 2 2 2 1 1 1 1
1 1 1 1 2 2 2 1 1 1 1
1 1 1 2 2 2 2 2 1 1 1
1 1 1 2 2 2 2 2 1 1 1
1 1 1 2 2 2 2 2 1 1 1
1 1 1 1 2 2 2 1 1 1 1
1 1 1 1 2 2 2 1 1 1 1
1 1 1 1 2 2 2 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
используя следующие параметры для типов клеток:
для типа 1: теплоемкость c=519, теплопроводность l=44.4, плотность r=1600, начальная температура t=100;
для типа 2: теплоемкость c=343, теплопроводность l=110, плотность r=8900, начальная температура t=1100;
с шагом по пространству 0.002 и по времени 0.00005; рассчитать температурное поле до времени 0.1.
uses crt;
var
f:text;
pole,tip,temp : array[1..15,1..11] of real;
h,t,delta,A,B,C,D,E:real;
l1,l2,c1,c2,r1,r2,t1,t2,point:real;
i,j:integer;
Begin
clrscr;
assign(f,'tip.txt');
reset(f);
for i:=1 to 15 do begin
for j:=1 to 11 do
read(f,tip[i,j]);
readln(f);
end;
close(f);
assign(f,'dat.txt');
reset(f);
readln(f,c1);
readln(f,c2);
readln(f,r1);
readln(f,r2);
readln(f,l1);
readln(f,l2);
readln(f,h);
readln(f,t);
readln(f,delta);
readln(f,t1);
readln(f,t2);
close(f);
for i:=1 to 15 do
for j:=1 to 11 do
if tip[i,j]=1 then pole[i,j]:=t1 else pole[i,j]:=t2;
point:=t;
while point<=delta do begin
clrscr;
for i:=2 to 14 do
for j:=2 to 10 do begin
if tip[i,j]=1 then begin
A:=(l1*t)/(c1*r1*h*h);
B:=A;
C:=-4*A+1;
D:=A;
E:=A;
end else begin
A:=(l2*t)/(c2*r2*h*h);
B:=A;
C:=-4*A+1;
D:=A;
E:=A;
end;
temp[i,j]:=A*pole[i+1,j]+B*pole[i,j+1] +C*pole[i,j]+D*pole[i-1,j]+E*pole[i,j-1];
end;
for i:=2 to 14 do
for j:=2 to 10 do
pole[i,j]:=temp[i,j];
point:=point+t;
for i:=1 to 15 do begin
for j:=1 to 11 do
write(' ',pole[i,j]:5:1);
writeln(' ');
end;
readln;
end;
End.
Результаты задачи 6 :
Файл tip.txt :
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 2 2 2 1 1 1 1
1 1 1 1 2 2 2 1 1 1 1
1 1 1 1 2 2 2 1 1 1 1
1 1 1 2 2 2 2 2 1 1 1
1 1 1 2 2 2 2 2 1 1 1
1 1 1 2 2 2 2 2 1 1 1
1 1 1 1 2 2 2 1 1 1 1
1 1 1 1 2 2 2 1 1 1 1
1 1 1 1 2 2 2 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
Файл dat.txt:
519
343
1600
8900
44.4
110
0.002
0.00005
0.1
100
1100
Поле температур после окончания расчета :
100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
100.0 109.4 128.2 161.6 200.4 217.1 200.4 161.6 128.2 109.4 100.0
100.0 123.9 171.0 255.2 354.0 396.6 354.0 255.2 171.0 123.9 100.0
100.0 144.2 229.1 379.0 563.0 641.8 563.0 379.0 229.1 144.2 100.0
100.0 167.0 288.0 488.3 719.0 815.5 719.0 488.3 288.0 167.0 100.0
100.0 193.4 349.6 584.2 821.1 914.2 821.1 584.2 349.6 193.4 100.0
100.0 219.8 409.8 676.7 900.1 979.2 900.1 676.7 409.8 219.8 100.0
100.0 231.0 435.1 715.3 930.5 1002.7 930.5 715.3 435.1 231.0 100.0
100.0 219.8 409.8 676.7 900.1 979.2 900.1 676.7 409.8 219.8 100.0
100.0 193.4 349.6 584.2 821.1 914.2 821.1 584.2 349.6 193.4 100.0
100.0 167.0 288.0 488.3 719.0 815.5 719.0 488.3 288.0 167.0 100.0
100.0 144.2 229.1 379.0 563.0 641.8 563.0 379.0 229.1 144.2 100.0
100.0 123.9 171.0 255.2 354.0 396.6 354.0 255.2 171.0 123.9 100.0
100.0 109.4 128.2 161.6 200.4 217.1 200.4 161.6 128.2 109.4 100.0
100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0