Метод сеток для решения ДУ в частных производных

Содержание

Слайд 2

09/02/2023 Задача о нагреве стержня, по которому пропускается ток 0 b

09/02/2023

Задача о нагреве стержня, по которому пропускается ток

0

b

z

T

0

b

T=0

T=1c

T=2c

T=3c

T=4c

Как получить такое распределение

не проводя эксперимент?
Слайд 3

09/02/2023 Одномерное нестационарное уравнение теплопроводности Область интегрирования Сетка Таблица искомого решения b T

09/02/2023

Одномерное нестационарное уравнение теплопроводности

Область интегрирования
Сетка
Таблица искомого решения

b

T

Слайд 4

09/02/2023 Получение конечноразностной схемы

09/02/2023

Получение конечноразностной схемы

Слайд 5

09/02/2023 Явная схема Погрешность и Условие устойчивости:

09/02/2023

Явная схема

Погрешность и Условие устойчивости:

Слайд 6

09/02/2023 Реализация явной схемы 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;

09/02/2023

Реализация явной схемы

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;

Слайд 7

09/02/2023 Неявная схема

09/02/2023

Неявная схема

Слайд 8

09/02/2023 Метод прогонки Прямой ход: Обратный ход:

09/02/2023

Метод прогонки

Прямой ход:

Обратный ход:

Слайд 9

09/02/2023 Реализация метода прогонки 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)=…;

09/02/2023

Реализация метода прогонки

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;
Слайд 10

09/02/2023 Неявная схема второго порядка Кранка-Николсона

09/02/2023

Неявная схема второго порядка Кранка-Николсона

Слайд 11

09/02/2023 Неявная схема второго порядка Кранка-Николсона

09/02/2023

Неявная схема второго порядка Кранка-Николсона

Слайд 12

09/02/2023 Пример решения

09/02/2023

Пример решения

Слайд 13

09/02/2023 Задача Дирихле для двумерного уравнения Пуассона

09/02/2023

Задача Дирихле для двумерного уравнения Пуассона

Слайд 14

09/02/2023 Выбор сетки

09/02/2023

Выбор сетки

Слайд 15

09/02/2023 Конечно-разностная схема Граничные значения:

09/02/2023

Конечно-разностная схема

Граничные значения:

Слайд 16

09/02/2023 Метод простой итерации с релаксацией Параметр релаксации

09/02/2023

Метод простой итерации с релаксацией

Параметр релаксации

Слайд 17

09/02/2023 Реализация метода простой итерации с релаксацией For k=1:Kit for i=2:N

09/02/2023

Реализация метода простой итерации с релаксацией
For k=1:Kit
for i=2:N
for j=2:M
a=… b=… c=…

d=… e=…
up= a*u(i-1,j)+b*u(i+1,j)+c*u(i,j-1)+d*u(i,j+1)+e;
u1(i,j)=wr*up+(1-wr)*u(i.j);
end;end; //ij
for i=2:N
u1(i,1)=be0; u1(i,M1)=be1;
for j=2:M
u1(1,j)=al0; u1(N1,j)=al1;
u=u1;
End; //k
surf (x,y,u1);
Слайд 18

09/02/2023 Метод Зейделя For k=1:Kit d=0; for i=2:N for j=2:M a=…

09/02/2023

Метод Зейделя

For k=1:Kit
d=0;
for i=2:N
for j=2:M
a=… b=… c=… d=… e=…
up= a*u(i-1,j)+b*u(i+1,j)+c*u(i,j-1)+d*u(i,j+1)+e;
If

abs(u(i,j)-up)>d then d= abs(u(i,j)-up);
u(i,j)=wr*up+(1-wr)*u(i.j);
end;end; //ij
for i=2:N
u(i,1)=be0; u(i,M1)=be1;
for j=2:M
u(1,j)=al0; u(N1,j)=al1;
If dEnd; //k
surf (x,y,u);
Слайд 19

09/02/2023 Метод продольно-поперечной прогонки Преобразуем

09/02/2023

Метод продольно-поперечной прогонки

Преобразуем

Слайд 20

09/02/2023 Метод продольно-поперечной прогонки (продолжение)

09/02/2023

Метод продольно-поперечной прогонки (продолжение)

Слайд 21

09/02/2023 Метод продольно-поперечной прогонки (продолжение) Для решаем систему Для решаем систему

09/02/2023

Метод продольно-поперечной прогонки (продолжение)

Для решаем систему

Для решаем систему

Слайд 22

09/02/2023 Программная реализация for k=1:Kit ks(1)=…; et(1)=…; for j=2:M1 for i=2:N1

09/02/2023

Программная реализация

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;