Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OIT / Презентации выч методов / лекция6_Сеток метод ДУЧП.ppt
Скачиваний:
34
Добавлен:
11.05.2015
Размер:
560.13 Кб
Скачать

Тема 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