- •Тема 6. Метод сеток для решения ДУ в частных производных
- •Задача о нагреве стержня, по которому пропускается ток
- •Задача о растворении соли
- •Получение конечноразностной схемы
- •Явная схема
- •Реализация явной схемы
- •Неявная схема
- •Метод прогонки
- •Реализация метода прогонки
- •Неявная схема второго порядка Кранка-Николсона
- •Неявная схема второго порядка Кранка-Николсона
- •Пример решения
- •Задача Дирихле для двумерного уравнения Пуассона
- •Выбор сетки
- •Конечно-разностная схема
- •Метод простой итерации с релаксацией
- •Реализация метода простой итерации с релаксацией
- •Метод Зейделя
- •Метод продольно-поперечной прогонки
- •Метод продольно-поперечной прогонки (продолжение)
- •Метод продольно-поперечной прогонки (продолжение)
- •Программная реализация
- •Конец темы 6
Тема 6. Метод сеток для решения ДУ в частных производных
Одномерное нестационарное уравнение теплопроводности:
Явная и неявная схемы
Задача Дирихле для двумерного уравнения Пуассона
Метод простой итерации с релаксацией
Метод Зейделя
Метод продольно-поперечной прогонки
07/02/19 |
1 |
Задача о нагреве стержня, по которому пропускается ток
0 |
|
b |
z |
|
|
|
|
T(z,t) |
T(z,4c) |
|
Как получить такое |
|
|
||
|
T(z,3c) |
|
|
|
|
распределение не |
|
|
|
||
|
|
||
|
|
||
|
T(z,2c) |
|
проводя эксперимент? |
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
|
|
|
|
|
|
|
T(z,1c) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
T(z,0c)=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
b |
|
|
07/02/19 |
2 |
Задача о растворении соли
C(z,t)
1
z
0 |
b |
z |
|
Раствор соли
Слой каменной соли
07/02/19 |
3 |
ut
T
t
tk
Одномерное нестационарное уравнение теплопроводности
|
|
|
u |
|
u(0,t) 0 ; |
u(b,t) 1; |
u(x, 0) u0 (x). |
|
|
g |
|
f ; |
|||
|
|
||||||
|
|
|
x |
|
|
|
|
|
x |
|
|
|
|
Нужно найти неизвестную u(z,t)
|
• Область интегрирования |
|
0 x b, 0 t T |
•Выбираем равномерную сетку
h, (i 1)h, k , i 1... |
n1, k 0... |
K |
•Таблица искомого решения
x |
|
|
|
h |
|
i |
|
i |
|
|
||
Xi-1 xi Xi+1 |
b |
u |
|
|
u |
k |
; |
u(x t |
k |
) |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
07/02/19 |
|
|
|
|
|
|
|
|
|
|
|
4 |
Получение конечноразностной схемы
t |
ik xi 1/ 2 x xi 1/ 2 , k t (k 1) |
|||||||||||||||||||||
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
u |
|
|
u |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
g |
|
f |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ik |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t |
|
x |
x |
tk
|
|
|
|
|
|
|
u |
; |
u k 1 |
u k |
|
x |
x |
x |
|
|
t |
|
i |
i |
|||
i-1 |
i |
i+1 |
|
x |
|
|
|
||||
|
|
|
|
|
|
||||||
|
|
g |
u |
|
; |
gi 1/ 2uik 11 gi 1/ 2 gi 1/ 2 uik 1 gi 1/ 2uik 11 |
|||||
|
|
|
x |
|
|
|
|
h |
2 |
|
|
|
x |
|
|
|
|
|
|
07/02/19 |
5 |
Явная схема
u k 1 u k |
|
|
|
gi 1/ 2uik 1 |
gi 1/ 2 gi 1/ 2 |
uik gi 1/ 2uik 1 |
|
|
||
i |
i |
|
|
|
|
|
|
fi |
||
|
|
h2 |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
u k 1 |
u k |
|
gi 1/ 2uik 1 gi 1/ 2 gi 1/ 2 uik gi 1/ 2uik 1 |
f |
i |
|||||
|
|
|
||||||||
i |
i |
|
|
|
|
h2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Погрешность и Условие устойчивости: |
t |
|
h o( h2 )
1 |
h2 |
tk |
||
h N |
2 |
tk+1 |
||
1 |
||||
|
|
|
07/02/19 |
xi-1 xi xi+1 |
x |
6 |
|
|
Реализация явной схемы
• u(i)=u0; x(i)=(i-1)*h; gi(i)=G(x(i)+h/2); 1≤i≤N+1
•th2= tau/h^2;
•t=0;
•Plot(x,u);
•for k=1:K
•for i=2:N
•u1(i)=u(i)+th2*(gi(i-1)*u(i-1)-(gi(i-1)+gi(i))*u(i)+
• |
gi(i)*u(i))+tau*f(i); |
•end
•u1(1)=be0;
•u1(N1)=be1;
•Plot(x,u1);
•u=u1;
•t=t+tau;
•end;
•…
07/02/19 |
7 |
Неявная схема
u k 1 u k |
|
|
gi 1/ 2uik 11 |
gi 1/ 2 gi 1/ 2 |
uik 1 gi 1/ 2uik 11 |
|
||||||||||||||
|
i |
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
h2 |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
g |
|
|
u k 1 |
|
|
|
g |
|
h |
2 |
|
g |
|
u k 1 |
h |
2 |
u k h2 f |
|
||
i |
1/ 2 |
|
g |
i 1/ 2 |
i 1/ 2 |
|
u k 1 |
i 1/ 2 |
|
i |
||||||||||
|
i 1 |
|
|
|
|
i |
|
i 1 |
|
i |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
aiui 1 biui ciui 1 |
di , |
i 2...n. |
|||||
ai gi 1/ 2 ; |
c g |
i |
1/ 2 |
; |
|||
|
|
|
i |
|
|
||
b a c h2 / . |
|
||||||
i |
i |
i |
|
|
|
|
|
d |
i |
h2 |
/ uk h2 |
f |
; |
i 2...n. |
|
|
|
i |
|
i |
|
|
h o( h2 )
абсолютно устойчива
07/02/19
t
tk+1
t
1k
xi-1 xi xi+1 |
x |
|
8 |
Метод прогонки
Прямой ход:
c / b ; |
d |
1 |
/ b ; |
b 1; c 0; d |
1 |
0 |
|||
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
for i 2...n 1
i ci / bi ai i 1 ; i di ai i 1 / bi ai i 1 ;
Обратный ход:
u |
|
n1 |
; |
|
n1 |
1 |
n1 |
|
|
|
|
for i=n...1
ui iui 1 i .
07/02/19 |
9 |
Реализация метода прогонки
• |
u(i)=u0; x(i)=(i-1)*h; gi(i)=G(x(i)+h/2); |
1≤i≤N+1 |
• |
for k=1:K |
|
• |
c(1)=…; b(1)=…; d(1)-…; |
|
• |
for i=2:N |
|
• |
a(i)= |
|
• |
b(i)= |
|
• |
c(i)= |
|
• |
d(i)= … |
|
• |
end |
|
• |
ks(1)=-c(1)/b(1); et(1)=d(1)/b(1); |
|
•for i=2:N1
•z=b(i)+a(i)*ks(i-1);
•ks(i)=-c(i)/z; et(i)=(d(i)-a(i)*et(i-1))/z;
•end;
•u1(N1)=be1;
•For i=N:-1:1
•u1(i)=ks(i)*u1(i+1)+et(i);
•End;
•Plot(x,u1);
•u=u1;
•t=t+tau;
•end;
07/02/19 |
10 |