Скачиваний:
45
Добавлен:
15.06.2014
Размер:
471.55 Кб
Скачать

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

 

aiui 1

biui ciui 1 di ,

 

i 2...n.

 

 

 

 

 

 

 

 

 

di gi 1 / 2uik 1 gi 1 / 2 gi 1 / 2

uik gi 1 / 2

uik 1

 

 

 

 

 

 

 

 

 

2h2 / uk 2h2 f

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

i

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ai

gi 1/ 2

;

 

tk+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ci gi 1/ 2 ;

 

 

tk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b a c 2h2

/ .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

i

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

06/25/19

 

 

 

 

 

 

 

xi-1 xi xi+1

 

 

 

 

 

x

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

u

2u

 

t

z2

1

u

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1; u

 

x 1 0; u

 

t 0

0

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

x 0

 

 

 

 

 

 

 

12

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

 

 

u

 

 

 

u

 

g( x, y, u)

 

g( x, y, u)

f ( x, y, u)

 

 

 

 

 

 

x

 

y

 

y

 

x

 

 

 

 

 

 

 

 

0 x a, 0 y b

Г : u(0, y) 0 ( y);

u(a, y) 1( y);

u(x,0) 0 ( x);

u( x,b) 1(x).

06/25/19

13

Выбор сетки

 

hxhy

 

 

(i 1)h

, ( j 1)h , i 1...n1,

j 1...m1

 

 

x

y

 

 

 

 

 

 

 

y

u

h

 

u

; u(x , y )

 

 

 

ij

i i

 

yj+1

yj

yj-1

xi-1 xi xi+1

x

06/25/19

14

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

gi 1/ 2, jui 1, j gi 1/ 2, j

gi 1/ 2, j ui, j gi 1/ 2, jui 1, j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hx2

 

 

 

gi, j 1/ 2ui, j 1

 

 

 

 

ui, j gi, j 1/ 2ui, j 1

 

 

gi, j 1 / 2 gi, j 1/ 2

 

 

 

 

 

 

 

hy2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L u

L u

 

 

 

 

;

i 2... n1, j 2... m1.

f

i

, j

 

hx i, j

hy i, j

 

 

 

 

 

 

 

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

u

0

;

u

1

;

j 2... m,

1, j

j

 

n1, j

j

 

 

ui,1 i0 ; ui,m1 i1; i 2..n

06/25/19

15

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

k 1

 

 

k

 

 

k

 

 

k

 

 

k

 

a u

b u

c u

d u

e ,

u%

 

 

 

 

ij

ij i 1, j

ij i 1, j

ij i, j 1

ij i, j 1

ij

 

 

k 1

k 1

(1

 

 

k

 

u

)u

.

 

u%

 

 

ij

r ij

r

 

ij

 

i 2..n 1 j 2..m 1

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

0 r 2

06/25/19

y

yj+1

yj

yj-1

xi-1 xi xi+1

x

 

16

Реализация метода простой итерации с релаксацией

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);

06/25/19

17

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

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 d<eps then continue;

End; //k

surf (x,y,u);

06/25/19

18

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

 

 

 

 

 

 

 

 

 

 

u k 1/ 2

u k

 

 

 

 

 

 

 

 

 

 

 

L u k 1/ 2

L u k f

ij

 

 

 

ij

 

ij

,

 

 

 

 

 

 

 

 

hx ij

hy ij

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u k 1

u k 1/ 2

 

L u k 1/ 2

L u k 1

 

 

 

f

ij

 

 

 

ij

ij

,

 

 

 

 

 

 

 

hx ij

hy ij

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Преобразуем

 

 

 

 

 

u k 1/ 2

 

 

 

 

 

 

 

 

 

u k

 

 

L u k 1/ 2

 

 

ij

 

L u k

f

ij

 

 

ij

,

 

 

 

 

 

 

hx ij

 

 

 

 

 

hy ij

 

 

 

 

 

 

 

 

 

 

 

u k 1

r

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u k 1/ 2

L u k 1

 

 

 

ij

L u k 1/ 2

 

f

ij

 

ij

 

,

 

 

 

 

 

 

 

hy ij

 

 

r

 

hx ij

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

06/25/19

19

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

y

y

 

 

yj+1

yj+1

yj

y

yj-1

yjj-1

xi-1 xi xi+1

x

xi-1 xi xi+1

x

06/25/19

20