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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кранка-Николсона

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bi

 

 

 

ci

 

 

d i ,

i 2 ... n .

 

 

 

 

 

a i u i 1

 

 

u i

 

u i 1

 

 

 

 

 

g

 

 

 

 

 

 

k

 

g

 

 

g

 

 

 

k g

 

 

 

k

 

 

 

d

i

i

1 / 2

u

 

i 1 / 2

i 1 / 2

u

i 1 / 2

u

 

 

 

 

 

 

 

i 1

 

 

 

 

 

 

 

 

 

i

 

i 1

 

 

2 h 2 / u k

 

2 h 2 f

i

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a i

g i 1 / 2

;

 

 

 

 

 

 

 

 

 

 

tk+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ci

g i 1 / 2 ;

 

 

 

 

 

 

 

 

 

 

 

 

 

tk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

i

a

i

c

i

2 h 2 / .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

05.01.2011

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi-1

xi

 

xi+1

x

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

u

 

2 u

1

 

 

 

 

 

u

 

 

 

 

 

 

 

 

t

z 2

 

 

 

 

 

 

 

 

 

 

 

1;

u

 

x 1 0;

u

 

t 0 0

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

05.01.2011

12

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

 

 

 

u

 

 

 

 

u

 

 

 

 

g ( x , y , u )

 

 

 

 

g ( x , y , u )

 

 

 

f ( x , y , u )

 

 

 

 

 

 

x

 

 

x

y

 

 

y

 

 

 

 

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

 

 

 

 

05.01.2011

13

Выбор сетки

 

(i 1) h x ,

( j 1) h y ,

i 1 ...n1,

j 1 ...m1

 

hx h y

 

 

 

 

 

 

 

 

y

 

u h

 

 

u ( xi , y i )

 

 

u ij

 

yj+1

yj

yj-1

xi-1 xi xi+1

x

05.01.2011

14

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

g i 1 / 2 , j

u i 1, j g i 1 / 2 , j g i 1 / 2 , j

 

 

 

 

 

 

 

 

 

 

u i , j g i 1 / 2 , j u i 1, j

 

 

 

 

 

 

 

 

 

 

 

 

h x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g i , j 1 / 2

u i , j 1 g i , j 1 / 2 g i , j 1 / 2

 

 

 

g i , j 1 / 2

 

 

 

 

u i , j

u i , j 1

 

 

 

 

 

 

 

 

h y2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Lh x

 

 

 

 

 

 

f i , j ;

 

 

i

2 ... n1, j 2 ... m 1 .

u i , j Lh y u i , j

 

 

Граничные значения: u1, j 0j ; u n 1, j 1j ; j 2 ... m ,

 

 

 

 

0

 

 

 

 

1

; i 2 ..n

u

i ,1

; u

i ,m 1

 

 

i

 

 

i

 

05.01.2011

 

 

 

 

 

 

 

 

 

15

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

u k 1

a

 

 

 

 

k

b

 

 

 

k

 

 

c

 

 

 

k

d

 

 

 

k

e

 

,

ij

u

ij

u

 

 

ij

u

ij

u

ij

 

ij

 

 

i 1, j

 

 

i 1, j

 

 

 

 

i , j 1

 

 

i , j 1

 

 

 

 

k 1

 

 

 

u k 1

(1

 

)

 

k .

 

 

 

 

 

 

 

 

 

 

 

u

 

 

 

u

 

 

y

 

 

 

 

 

 

 

 

 

ij

 

 

r

 

ij

 

 

 

 

 

r

 

 

ij

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

2 ..n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j 2 ..m 1

yj+1

yj

yj-1

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

0 r 2

xi-1 xi xi+1

x

05.01.2011

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

05.01.2011

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

05.01.2011

18

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k 1 / 2

 

 

 

k

 

 

 

 

 

k 1 / 2

 

 

 

 

 

 

 

 

 

 

 

 

 

u

u

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L

 

 

 

k

 

 

 

 

 

 

 

 

 

ij

 

 

ij

,

 

L

h x

u

h y

u

 

f

ij

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ij

 

 

ij

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k 1

 

 

k 1 / 2

 

L u k 1 / 2

L

 

u k 1

 

 

 

f

 

 

u

u

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ij

 

 

ij

 

 

h x

 

ij

 

h y

 

ij

 

 

 

 

 

 

ij

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Преобразуем

 

 

 

 

 

k 1 / 2

 

 

 

 

u ijk 1 / 2

 

 

 

 

 

 

k

 

 

 

 

 

 

 

u ijk

 

 

 

 

 

 

 

 

 

L

 

 

 

f

 

 

 

 

 

L

h x

u

h y

u

ij

,

 

 

 

 

 

 

 

 

 

 

 

 

 

ij

 

 

 

 

 

 

r

 

 

 

 

 

 

ij

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u ijk 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u ijk 1 / 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u k 1

 

 

 

u k 1 / 2

 

 

 

 

 

 

L

h y

 

 

 

 

 

 

 

L

h x

f

ij

 

 

 

,

 

 

 

 

 

 

 

 

 

 

ij

 

 

 

r

 

 

ij

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

05.01.2011

19

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

y

 

y

 

 

 

 

 

yj+1

yj+1

yj

yj

yj-1

yj-1

 

xi-1 xi xi+1

x

xi-1 xi xi+1

x

05.01.2011

20