Рис. IX.4. Пространственно-временная сетка, используемая для решения одномерного уравнения теплопроводности
Подставим данные выражения в исходное уравнение ut uxx и
разрешим получившееся уравнение относительно значений функции на верхнем временном слое. В результате получаем:
u |
|
u |
|
k |
[u |
|
2u |
|
u |
|
]. |
(IX.10) |
|
i 1 j |
ij h2 |
ij 1 |
ij |
ij 1 |
|||||||||
|
|
|
|
|
|
|
|||||||
Формула (IX.10) решает поставленную задачу, поскольку она выражает решение в данный момент времени через решение в предыдущий момент времени.
Для решения смешенной краевой задачи необходимо аппроксимировать производную в граничном условии на правом конце:
ux (1, t) [u(1, t) g(t)].
Используя конечно-разностную аппроксимацию, получаем:
h1 [uin uin 1 ] [uin gi ].
208
Из (IX.11) находим:
uin |
uin 1 hgi |
. |
(IX.12) |
|
|||
|
1 h |
|
|
Формулы (IX.10), (IX.12) позволяют начать вычисления по явной схеме.
Алгоритм вычислений по явной схеме реализуется следующей последовательностью действий:
1. Находим решение на сеточном слое t t , используя явную формулу:
u2 j u1 j |
k |
[u1 j 1 |
2u1 j |
u1 j 1 ], |
j 2,3, , n 1 (IX.13) |
||||
|
|||||||||
|
h2 |
|
|
|
|
|
|
|
|
2. Находим величину и2л по формуле (IX.12): |
|
|
|||||||
|
|
u2,n |
u2,n 1 hg2 |
. |
|
(IX.14) |
|||
|
|
|
|
||||||
|
|
|
|
|
1 h |
|
t t . |
|
|
Завершив шаги 1, 2, получаем решение при |
Для |
||||||||
получения решения |
при |
t 2 t |
повторяют |
шаги |
1,2, |
||||
поднявшись на одну строку вверх, т.е. увеличив i на единицу и используя uij с предыдущей строки. Аналогично вычисляется
решение в последующие моменты времени t 3 t,4 t,
У явной схемы имеется один существенный недостаток: если шаг по времени оказывается достаточно большим по сравнению с шагом по х, то погрешности округления могут стать настолько большими, что полученное решение теряет смысл, т. е. решение становится неустойчивым. Можно показать, что для применимости явной схемы должно выполняться условие k / h2 0.5.
Пример IX.2. Найти в пакете МАТLАВ решение краевой задачи уравнения теплопроводности (IX.8) с начальными условиями:
T (x,0) 0, если х 25, |
|
1, если х 25 |
|
где x [1, 50], и граничными условиями: |
|
T (t,1) 0, |
T (t,50) 0 , |
209
на временном интервале [0, 49].
Решение:
>>Nt=50; % число шагов по времени >>Nx=50; % Число узлов координатной сетки
>>t=1:Nt;
>>x=1:Nx;
% задание начальных и граничных условий
>>f(1,x)=0;
>>f(t,1)=0;
>>f(t,Nx)=0;
>>f(1,25)=1;
%вычисление решения в последовательные моменты времени в
%соотношении с (10.10)
>>for t=2:Nt
for x=2:Nx-1 f(t,x)=f(t-1,x)+0.15*(f(t-1,x-1)-2*f(t-1,x)+f(t-1,x+1));
end;
end;
>>surf(f) % визуализация численного решения (рис. IX.5)
Рис. IX.5. Численное решение уравнения теплопроводности
Получим явную вычислительную схему для нахождения численного решения УЧП гиперболического типа, на примере волнового уравнения:
2U |
|
1 |
2U . |
(IX.15) |
|
2 x |
2 |
||||
|
t 2 |
|
Запишем уравнение (IX.15) в конечных разностях:
ui j 1 2ui j |
ui j 1 |
|
|
1 |
|
ui 1 j |
2ui j |
ui 1 j |
. |
(IX.16) |
h2 |
|
2 |
|
|
2 |
|
||||
|
|
|
|
|
|
|
||||
Полученное уравнение позволяет выразить значение функции и в момент времени ti 1 через значения функции в предыдущие моменты времени:
ui 1 j |
2 |
|
2 |
ui j 1 2ui j ui j 1 2ui j ui 1 j . (IX.17) |
|
|
|
||
|
|
h |
|
|
Разностная схема (IX.17) устойчива, если h / .
Отметим, что для начала вычислений в соответствии с (IX.17) необходимо знать значения функции в моменты времени t0 и t1 . Данное обстоятельство обусловлено тем, что мы решаем уравнение второго порядка по времени. Для нахождения решений в моменты времени t0 и t1 необходимо использовать, например, начальное условие для первых производных функции u (рис. IX.6).
210 |
211 |
|
Рис. IX.6. Решение волнового уравнения в моменты времени t=0, 9, 24, 49
Пример IX.3. Найти в пакете МАТLАВ решение краевой задачи волнового уравнения (IX.14), в котором 1,с начальными условиями:
U (x,0) sin(x), |
|
где x [0, 2 ], и граничными условиями: |
|
U (0, t) 0, |
U (2 ,t) 0 |
на временном интервале [0,59].
Решение:
>>Nt=60; % число шагов по времени >>Nx=100; % число узлов по координате % задание начальных и граничных условий
>>U(1,j)=sin(2*pi*(j-1)/(Nx-1); % начальное условие
>>U(2,j)=U(1,j); % граничное условие
>>a=1;k=1;
>>for i=2:Nt
212
for j=2:Nx-1
U(i+1,j)=a.^2*k*(U(i,j+1)-2*U(i,j)+U(I,j-1))+2*U(I,j)-U(i-1,j); end;
end;
% визуализация решений уравнения в выбранные моменты времени
>>j=1:Nx; >>plot(2*pi*(j-1)/(Nx-1),U(1,j))
>>hold on
>>plot(2*pi*(j-1)/(Nx-1),U(10,j),':') >>plot(2*pi*(j-1)/(Nx-1),U(25,j),'--') >>plot(2*pi*(j-1)/(Nx-1),U(50,j),'-')
9.4. Неявная разностная схема для уравнения параболического типа
Построим неявную разностную схему для уравнения теплопроводности. Рассмотрим задачу нахождения решения УЧП
ut uxx , |
0 x 1, |
0 t , |
(IX.18) |
|
с граничными условиями |
|
|
|
|
u(0,t) 0, |
0 t , |
|
||
|
|
|
||
u(1,t) 0, |
|
|
|
|
и начальными условиями |
|
|
|
|
u(x,0) 1, |
0 x 1. |
|
||
Воспользуемся следующими конечно-разностными аппроксимациями частных производных ut и uxx :
ut (x, t) k1 [u(x, t k) u(x, t)],
uxx (x, t) h 2 [u(x h, t k) 2u(x, t k) u(x h, t k)]
+ 1h 2 [u(x h, t) 2u(x, t) u(x h, t),
где λ – выбирается из отрезка [0,1].
213
Отметим, что uxx аппроксимируется взвешенным средним
центральных разностных производных в момент времени t и (t+k). При λ = 0.5 получаем обычное среднее двух центральных производных, при λ = 0 получаем обычную явную схему, о которой упоминалось ранее.
После замены частных производных ut , uxx в задаче (IX.18) получаем разностную задачу:
1 |
(ui 1, j ui, j ) |
|
(ui 1 j 1 2ui 1 j ui 1, j 1 ) |
1 |
(uij 1 2uij uij 1 ), |
|||
k |
h2 |
h2 |
||||||
|
ui,1 |
0, |
|
|
||||
|
|
|
i 1,2, , m, |
(IX.19) |
||||
|
|
|
|
|
||||
|
|
|
ui,n |
0, |
|
|
|
|
|
|
|
u1 j 1, |
j 1,2, , n 1. |
|
|||
Перенесем все неизвестные значения и с верхнего временного слоя (с индексом (i+ 1)) в левую часть уравнения:
rui j 1 (1 2r )ui 1, j 1 |
|
(IX.20) |
|
r(1 ) ui, j 1 [1 2r(1 )]ui j r(1 )ui j 1 , |
|||
|
|||
где r k / h 2 .
Схема уравнения системы (IX.20).
|
j 1 |
j |
|
j 1 |
i 1 |
r |
1 1r |
|
r |
i |
r(1 ) |
1 2r (1 ) |
|
r(1 ) |
Если i фиксировано, а j изменяется от 2 до (n-1), соотношения (IX.20) определяют систему (n-2) уравнений с (n-2) неизвестными ui 1,2 , ui 1,3 , ui 1,4 , , ui 1,n 1 , которые являются решением задачи во внутренних узлах сетки на временном слое t=(i+1)∆t.
Наглядное представление о структуре каждого уравнения дает таблица.
Обсудим более подробно алгоритм решения смешанной краевой задачи одномерного уравнения теплопроводности для случаев λ= 0.5 (схема Кранка-Никольсона), h=∆=0.2, k=∆t = 0.08 (при этом r = k/h2=2). В данном случае сетка содержит 6 узлов вдоль оси х. В соответствии с вычислительной схемой (IX.20), двигаясь слева направо j = 2, 3, 4, 5 по первым двум слоям (j=1), получаем следующие четыре уравнения:
u21 3u22 u23 u11 u12 u13 1,
u22 |
3u23 |
u24 |
u12 |
u13 |
u14 |
1, |
(IX.21) |
|
u23 |
3u24 |
u25 |
u13 |
u14 |
u15 |
1, |
||
|
||||||||
u24 |
3u25 |
u26 |
u14 |
u15 |
u16 |
1. |
|
Перепишем уравнения в матричной форме:
3 |
1 |
0 |
0 |
u22 |
|
1 |
|
|
|
|
|
|
|
|
|
1 |
3 |
1 |
0 |
|
u23 |
|
1 . |
0 |
1 |
3 |
1 |
u24 |
|
1 |
|
|
0 |
1 |
3 |
|
|
|
|
0 |
|
u25 |
|
1 |
|||
Матрица данной системы называется трехдиагональной. В наиболее общем виде трехдиагональная система имеет вид:
b1 |
c1 |
0 |
|
0 |
||
a |
1 |
b |
2 |
c |
2 |
0 |
|
|
|
|
|||
0 |
|
a2 |
b3 |
c3 |
||
|
|
. |
|
. . |
||
. |
|
|
||||
. |
|
. |
|
. . |
||
|
|
. |
|
. . |
||
. |
|
|
||||
|
|
. |
|
. . |
||
. |
|
|
||||
Для нахождения ее эквивалентному виду:
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
an 1 |
0 |
|
x1 |
|
d1 |
|
||
0 |
|
x |
2 |
|
d |
2 |
|
|
|
|
|
|
|
||
0 |
|
x |
3 |
|
d |
3 |
|
. |
|
|
|
|
|
|
|
|
. |
|
|
. |
|
. |
|
. |
|
. |
|
|
. |
|
|
|
|
|
|
|
|
|
|
cn 1 |
. |
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
bn |
xn |
|
d n |
|
|||
решения преобразуем систему к
215
214
|
|
1 |
c1 |
|
1 |
0 |
|
0 |
0 |
. .
. .
. .. .
где
0 |
0 . . . . |
0 |
|
x |
1 |
|
d1 |
|
||
c2 |
|
|
|
|
x |
|
|
|
|
|
0 . . . . |
0 |
|
2 |
d 2 |
|
|||||
1 |
c . . . . |
0 |
|
|
|
|
d |
|
||
x |
|
|
||||||||
. |
. |
3 |
. |
|
|
3 |
|
|
3 |
|
. . . . |
|
. |
|
|
. |
|
, |
|||
. |
. |
. . . . |
. |
|
. |
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
. |
. . . . |
cn 1 |
|
|
. |
|
|
||
. |
|
|
|
|||||||
. |
. |
. . . an 1 |
bn |
|
|
|
|
|
|
|
|
|
|
|
|||||||
xn |
|
d n |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c |
c |
|
/ b |
, |
|
|
|
|||
|
|
|
|
|
1 |
|
|
1 |
|
1 |
|
|
|
|
c j 1 |
|
|
c j 1 |
|
|
|
, |
|
j 1,2, , n 2 , |
|||||
b j 1 |
|
|
|
|
|
|
||||||||
|
|
a j c j |
|
|
|
|
|
|
|
|||||
|
|
|
|
d |
|
d |
1 |
/ b , |
||||||
|
|
|
|
|
1 |
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
d |
j 1 |
a |
j |
d |
|||
|
|
d |
|
|
|
|
|
|
j |
. |
||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
j 1 |
|
|
b j 1 a j c j |
||||||||
Решение системы (IX.21) находится последовательно снизу вверх. Для нахождения решения на следующем шаге во времени следует вновь решить аналогичную систему. Отметим, что объем вычислений на каждом шаге больше, чем в явной схеме, но хорошую точность удается получить даже при гораздо большем шаге.
Предваряя решение смешанной краевой задачи, запишем в явном виде систему линейных уравнений для схемы с λ = 1:
1 2r |
r |
|
|
|
|
ui 1,2 |
|
ui,1 |
r ui,1 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
1 2r |
r |
|
|
|
|
|
|
|
|
ui,2 |
|
|
||
|
|
|
|
ui 1,3 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
, ( IX.22) |
||
|
|
|
|
|
|
|
|
||||||||
|
|
r |
1 2r |
r |
|
|
|
|
|
u |
|
|
|
||
|
|
|
u |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
i 1,n 2 |
|
|
|
i,n 2 |
|
|
|
|
|
|
r |
1 |
2r u |
|
u |
|
r u |
i,n |
|
||||
|
|
|
|
|
|
|
|
i 1,n 1 |
|
|
i,n 1 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
216 |
|
|
|
|
|
|
|
|
|
где ui,1 = и(t,0), ui,n = и(t,1), которую будем использовать далее
при решении смешанной краевой задачи для уравнения параболического вида.
Пример IX.4. Найти в пакете МАTLАВ решение смешанной краевой задачи УЧП
ut uxx , |
|
с начальными условиями |
|
u(0, x) sin( x) x, |
0 x 1, |
и граничными условиями
u(t,0) 0, u(t,1) 1
с использованием неявной разности схемы (λ=1).
Для нахождения решения смешанной краевой задачи необходимо:
1. Создать файл U1.m (листинг IX.2), содержащий описание функции, возвращающей значения решения смешанной краевой задачи.
Листинг IX.2. Файл U1.m function z=U1(u,A,r,Nt,Nx)
%u - матрица, содержащая начальные и граничные условия
%А – матрица системы (IX.22)
%r=k/h2 – переменная, введенная в (IX.20)
%Nt – число шагов по времени
%Nx – число узлов по координате
z=u; u1=u(1:1,2:Nx-1); for i=1:Nt-1
a=r*z(i,1); b=r*z(i, Nx); u1(1,1)=u1(1,1)+a;
u1(1,Nx-2)=u1(1,Nx-2)+b; u2=A^-1*u1';
u1=u2';
for j=2:Nx-1 z(i+1,j)=u2(j-1,1);
end;
end;
217