- •Тема 6. Метод сеток для решения ДУ в частных производных
- •Задача о нагреве стержня, по которому пропускается ток
- •Одномерное нестационарное уравнение теплопроводности
- •Получение конечноразностной схемы
- •Явная схема
- •Реализация явной схемы
- •Неявная схема
- •Метод прогонки
- •Реализация метода прогонки
- •Неявная схема второго порядка Кранка-Николсона
- •Неявная схема второго порядка Кранка-Николсона
- •Пример решения
- •Задача Дирихле для двумерного уравнения Пуассона
- •Выбор сетки
- •Конечно-разностная схема
- •Метод простой итерации с релаксацией
- •Реализация метода простой итерации с релаксацией
- •Метод Зейделя
- •Метод продольно-поперечной прогонки
- •Метод продольно-поперечной прогонки (продолжение)
- •Метод продольно-поперечной прогонки (продолжение)
- •Программная реализация
- •Конец темы 6
Метод продольно-поперечной прогонки (продолжение)
Для |
j 2...m |
|
решаем систему |
|
|
|
|
|
|
|
|
|
|
|
||||||||
ak u k 1 / 2 |
bk u k 1 / 2 ck |
u |
k 1 / 2 |
d k ; |
|
|
|
|
|
|
|
|
|
|
|
|||||||
ij |
i 1, j |
|
ij |
i, j |
|
ij |
i 1, j |
ij |
|
|
|
|
|
|
|
|
u |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
ck h |
2 |
|
|
|
|
k |
|||
ak g |
i 1 / 2, j |
; |
ck |
g |
i 1 / 2, j |
; bk ak |
|
; d k h2 |
|
f |
|
L uk |
ij |
. |
||||||||
|
ij |
|
||||||||||||||||||||
ij |
|
|
ij |
|
|
ij |
ij |
ij |
ij |
|
hy ij |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
r |
|
Для i 2...n решаем систему
ak 1 |
g |
i, j 1/ 2 |
; ck 1 |
ij |
|
ij |
|
ak 1u k 1 |
bk 1u k 1 |
ck 1u k 1 |
|
d k 1 |
, |
|
|
|
|
|
|||||||
|
ij |
i, j 1 |
ij i, j |
|
ij |
i, j 1 |
|
ij |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
h |
2 |
|
|
|
|
|
|
|
|
k 1/ 2 |
|
g |
|
; |
bk 1 ak 1 ck 1 |
|
; |
d k 1 |
h2 |
|
f |
L uk 1/ 2 |
uij |
. |
||||||
|
|
|
|
|||||||||||||||
|
i, j 1/ 2 |
|
ij |
ij |
ij |
|
|
|
|
|
ij |
|
|
|
hx ij |
|
|
|
|
|
|
r |
|
|
|
ij |
r |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
06/25/19 |
21 |
Программная реализация
•for k=1:Kit
• |
ks(1)=…; |
et(1)=…; |
• |
for j=2:M1 |
for i=2:N1 |
•a=…b=…c=…d=…;
•z=b+a*ks(i-1);
•ks(i)=-c/z; et(i)=(d-a*et(i-1))/z;
•end;
•u(N1,j)=et(N1);
•For i=N:-1:1
•u(i,j)=ks(i)*u1(i+1,j)+et(i);
•End; end; end; (ij)
• |
ks(1)=…; |
et(1)=…; |
• |
for i=2:N1 |
for j=2:M1 |
•a=…b=…c=…d=…;
•z=b+a*ks(j-1);
•ks(j)=-c/z; et(j)=(d-a*et(j-1))/z;
•end;
•u(I,M1)=et(M1);
•For j=M:-1:1
•u(i,j)=ks(j)*u1(i,j+1)+et(j+1);
•End; end; end; (ij)
•Plot(x,u1);
•u=u1;
•t=t+tau;
•end;
06/25/19 |
22 |
Конец темы 6
• Ваши вопросы
06/25/19 |
23 |