• Nie Znaleziono Wyników

Równania różniczkowe cząstkowe (RRCz) → równanie eliptyczne → równanie Poissona

N/A
N/A
Protected

Academic year: 2021

Share "Równania różniczkowe cząstkowe (RRCz) → równanie eliptyczne → równanie Poissona"

Copied!
39
0
0

Pełen tekst

(1)

Równania różniczkowe cząstkowe (RRCz)

→ równanie eliptyczne

→ równanie Poissona

1. Klasyfikacja RRCz, przykłady

2. Metody numerycznego rozwiązywania równania Poissona a) FFT (met. bezpośrednia)

b) metoda różnic skończonych

c) układ równań z jawnie zdefiniowaną macierzą d) metody iteracyjne bez konstrukcji macierzy:

- metoda Jakobiego, Gaussa-Seidla, zbieżność - całka działania

- relaksacja, nadrelaksacja - metoda zagęszczania siatki - relaksacja wielosiatkowa

(2)

2

Równania różniczkowe cząstkowe – klasyfikacja równań

Ogólna postać RRCz 2 rzędu zależnego od n zmiennych

i zakładamy

Zakładając, że: wówczas RRCz jest:

eliptyczne jeśli (A jest dodatniookreślona)

paraboliczne jeśli:

hiperboliczne jeśli wartości własne A:

(3)

Przykłady RRCz

Eliptyczne - równanie Poissona

Opisuje rozwiązania stacjonarne. Gdzie się pojawia?

Rozkład potencjału elektrycznego (grawitacyjnego)

ε - „stała” dielektryczna (w określonych podobszarach Ω), f -gęstość ładunku (masy)

stacjonarne rozwiązania równania dyfuzji (s – źródło ciepła)

Jedno z równań Naviera-Stokesa (stacjonarny przepływ cieczy lepkiej)

Ω Γ

ε 1 ε 2

to równaniem

(4)

4 Paraboliczne – równanie dyfuzji ciepła

(k – wsp. przewodności cieplnej, S – źródło ciepła )

Hiperboliczne – równanie falowe

Opisują drgania mechaniczne np. membrany w 2D (f – wymuszenie, β - tłumienie ) lub rozchodzenie się fal elektromagnetycznych np. w światłowodzie

T

1

T

2

S

4 zmienne niezależne - ale mamy tylko 3 pochodne 2 rzędu w równaniu

(5)

Eliptyczne RRCz na przykładzie równania Poissona

Aby rozwiązanie równania eliptycznego było jednoznaczne musi ono spełniać określone warunki na brzegu obszaru

– rozwiązujemy tzw. problem brzegowy RRCz.

Typy warunków brzegowych (Г - brzeg):

1. Dirichleta

jednorodne

niejednorodne

2. Neumanna

3. mieszane (Robina)

(6)

6 Metoda różnic skończonych w 1D/2D

Wprowadzamy siatkę przestrzenną z równoodległymi węzłami

Rozwiązania u(x) poszukujemy w położeniach węzłowych.

Dyskretyzujemy rów. Poissona zastępując pochodne ciągłe ilorazami różnicowymi (np. 2 pochodna → iloraz trójpunktowy symetryczny)

1D

2D

(7)

Rozwiązywanie równania Poissona przy użyciu FFT (fast Poisson solver) Przypomnienie → FFT w 1D:

- wartości potencjału w węzłach sieci prostej

-wartości potencjału w węzłach sieci odwrotnej (transformata)

(8)

8 Po wstawieniu transformat odwrotnych do zdyskretyzowanego równania Poissona:

dla otrzymujemy

korzystając z relacji otrzymamy

→ rozwiązanie uzyskamy wykonując transformację odwrotną (poprzedni slajd)

→ jest ono periodyczne

→ czy istnieje problem dla m=n=0? (zero w mianowniku) –

nie ponieważ przyczynek od km=kn=0 pochodzi od funkcji stałej,

którą możemy dodać do naszego rozwiązania (tak aby spełniało np. WB)

(9)

Warunki brzegowe:

→ jednorodne WB Dirichleta wówczas stosujemy transformację sinusową

Stosując zdyskretyzowaną postać rów. Poissona korzystamy z relacji

co prowadzi do wyrażenia

Po obliczeniu wszystkich dokonujemy transformacji odwrotnej potencjału

(10)

10 Warunki brzegowe cd.:

→ niejednorodne Dirichleta np. i jednorodne w pozostałejczęści brzegu Rozwiązanie można zapisać w postaci (zasada superpozycji)

Z warunkami

(11)

Po wstawieniu u do zdyskretyzowanego r. Poissona dostaniemy

Wkład od u

b pochodzi tylko od węzłów i=N-1 leżących na prawym brzegu (zakładamy że poza brzegiem ub=0)

Czyli modyfikujemy tylko prawą stronę równania (gęstość) – dalej postępujemy jak w przypadku warunków jednorodnych Dirichleta.

(12)

12 Warunki brzegowe cd.:

→ warunki von Neumanna

→ dla jednorodnych warunków v.N.

stosujemy transformację kosinusową, która automatycznie spełnia WB

(13)

→ niejednorodne WB. Neumana

np. na prawym brzegu

Znowu zakładamy postać rozwiązania na brzegu

z warunkami:

niezerowy wkład do wartości + znikanie pochodnej

= jednorodne WB v. Neumanna

= transformacja kosinusowa

Znika wartość na brzegu, ale daje wkład do pochodnej

(14)

14 Do równania różnicowego

wstawiamy dla l=N-1 (pozostałe wyrazy =0)

I otrzymujemy równanie ze zmodyfikowaną prawą stroną dla transformacji kosinusowej:

(15)

Zalety:

→ metoda szybka (jedynie FMG może być szybsza)

i bezpośrednia (daje wynik po skończonej liczbie operacji)

→ dobrze działa na siatce prostokątnej

→ transformacje wykonywane na jednej tablicy potencjału (potrzebujemy jeszcze 2 tablicę dla prawej strony RRCz) Wady:

→ zastosowanie tylko do obszarów o regularnych kształtach:

prostopadłościan, sfera, cylinder

→ nie uwzględnia powierzchni brzegowej w środku np. elektrody włożone do obszaru, w którym szukamy potencjału

Biblioteki: Math Kernel Library (Fortran, C/C++) → Fast Poisson Solver

(wykorzystuje pakiet FFTW)

(16)

16 Jeszcze o metodzie bezpośredniej rozwiązywania r. Poissona.

Skorzystajmy ze zdyskretyzowanej postaci równania w 1D

→ generuje ono jedno równanie dla ustalonej wartości l.

Zapisując je dla l=0,2,3,...,N-1 otrzymamy układ równań

przykład

→ Jak wprowadzić warunki brzegowe?

(17)

Uwzględniamy warunki brzegowe:

→ Dirichleta (3 kroki)

→ von Neumanna

np.: na prawym brzegu

(18)

18 Postać macierzowa operatora Laplace'a w 2D i 3D

2D

reindeksacja węzłów

5 przekątnych:

3D (analogicznie )

7 przekątnych:

(19)

Kiedy opłaca się rozwiązywać rów. Poissona znajdując rozwiązanie Ax=b?

→ tylko wtedy gdy używamy algorytmów dla macierzy rzadkich

→ w 1D UARL rozwiążemy przy użyciu LU dla macierzy trójdiagonalnych z nakładem ~O(n)

→ w 2D UARL też rozwiążemy stosując LU ale dla macierzy pięcioprzekatniowych

→ w 3D można stosować

i) LU jeśli liczba węzłów jest mała

ii) iLU jako preconditioner dla metod iteracyjnych (BiCGStab,GMRES, TFQMR itp.)

(20)

20 Metody iteracyjne

Punktem wyjścia jest układ równań (jeszcze w postaci macierzowej)

Który rozwiązywać będziemy iteracyjnie

M jest macierzą iteracji, która posiada wartości i wektory własne

Metoda iteracyjna jest zbieżna wtedy i tylko wtedy, gdy promień spektralny spełnia warunek

Co dają metody iteracyjne:

→ jeśli M jest macierzą rzadką to koszt jednej iteracji jest rzędu O(n), dla pełnej macierzy O(n2)

→ jeśli rozwiązanie startowe jest „bliskie” dokładnemu to ilość iteracji może być mała (rel. wielosiatkowe)

→ zazwyczaj prosta konstrukcja macierzy M, a w przypadku rów. Poissona nie trzeba jej nawet tworzyć (zysk w postaci ograniczenia zajętej pamięci)

→ jak w każdej procedurze iteracyjnej mogą jednak wystąpić problemy ze zbieżnością, zbieżność silnie zależy od postaci macierzy iterującej/schematu relaksacyjnego

(21)

Zbieżność metody iteracyjnej

Dla przepisu iteracyjnego mamy

Mamy dostępną bazę w

postaci wektorów własnych M:

Założenia:

błąd w k-tej iteracji

(22)

22 Konstrukcja macierzy iterującej

Założenia: 1)

2) zbieżność:

3) tempo zbieżności

Metoda Jakobiego:

diagonala macierz trójkątna dolna

macierz trójkątna górna

(23)

Metoda Jakobiego cd. (warunki brzegowe Dirichleta → niejawne)

Przepis iteracyjny (macierzowy):

Przepis dla pojedynczego węzła siatki

→ to wzór relaksacyjny:

(24)

24 Otrzymaliśmy wzór relaksacyjny dla metody Jakobiego

→ nie musimy już konstruować macierzy

(ta ma prostą konstrukcję, a jej współczynniki są zawarte w równaniu)

→ w obliczeniach musimy użyć dwóch tablic/wektorów, dla starego i nowego rozwiązania,

metoda Jakobiego to relaksacja globalna

→ jaka jest zbieżność tej metody?

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

0 2 4 6 8 10 12 14 16 18 20

li

nr

eigenvalues - Jakobi

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35

0 2 4 6 8 10 12 14 16 18 20 nodes

vec1

-0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4

0 2 4 6 8 10 12 14 16 18 20 nodes

vec10

-0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4

0 2 4 6 8 10 12 14 16 18 20 nodes

vec20

Przykład:

20 węzłów, i=1,2,...,20

zanika wolno

zanika wolno

zanika szybko

i) metoda Jakobiego jest zbieżna

ii) są wartości własne o modułach bliskich 1 → metoda jest wolno zbieżna

(25)

Zbieżność metody Jakobiego

Tempo zbieżności (eliminacji błędu)

zależy od promienia spektralnego M

→ im więcej węzłów N tym bardziej promień spektralny zbliża się do 1

→ zagęszczanie siatki spowoduje spowolnienie działania metody Jakobiego Algorytm

(26)

26 Metoda Gaussa-Seidla

Średnia arytmetyczna:

sąsiada z prawej strony (k) oraz z lewej strony (k+1) Dla laplasjanu (po wymnożeniu przez D-1) otrzymamy:

(27)

→ Ze względu na jednoprzekątniową postać L i U wzór działa jak podstawienie. Pozbywając się macierzy, dostaniemy wzór relaksacyjny.

→ wyliczając nową wartość w węźle i-tym korzystamy z wartości w węźle (i-1) już zmienionym w bieżącej Iteracji

→ metoda GS to relaksacja lokalna

(rozwiązanie znajdziemy dysponując tylko jednym wektorem rozwiązań)

Wzór iteracyjny w metodzie GS

Przykład. Macierz iteracji w metodzie GS

Algorytm GS

Jakie ma wartości i wektory własne?

(28)

28 Wartości i wektory własne macierzy iteracji M w metodzie Guassa-Seidla

(dla laplasjanu w 1D), n=20

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

0 2 4 6 8 10 12 14 16 18 20

| li |

nr

eigenvalues - GS-Jakobi

GS Jakobi

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35

0 2 4 6 8 10 12 14 16 18 20 nodes

vec1

-0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4

0 2 4 6 8 10 12 14 16 18 20 nodes

vec2

-0.2 0 0.2 0.4 0.6 0.8 1

0 2 4 6 8 10 12 14 16 18 20 nodes

vec8

→ wartości własne są nieujemne

→ wektory własne odpowiadające najwyższym wartościom własnym

są wolnozmienne (w m. Jakobiego wektory te były szybko- i wolno-zmienne)

→ m. Gaussa-Seidla ma własności wygładzające błąd (cechę tę wykorzystujemy w relaksacji wielosiatkowej)

→ promień spektralny M w metodzie GS jest nieznacznie mniejszy niż w m. Jakobiego, ale dla k=1000 ...

(29)

Co oznacza zwrot: „własności wygładzające” w praktyce?

Przykład.

Porównanie szybkości tłumienia błędu w metodach GS i Jakobiego w przypadku równania Laplace'a (brak niejednorodności).

Generujemy wektor szybko-zmienny (najmniejsza wartość własna macierzy iterującej Jakobiego), które stanowi rozwiązanie początkowe

-0.1 -0.08 -0.06 -0.04 -0.02 0 0.02 0.04 0.06 0.08 0.1

0 50 100 150 200

1-st iteration

Jakobi GS

-0.1 -0.08 -0.06 -0.04 -0.02 0 0.02 0.04 0.06 0.08 0.1

0 50 100 150 200

2-nd iteration

Jakobi GS

-0.1 -0.08 -0.06 -0.04 -0.02 0 0.02 0.04 0.06 0.08 0.1

0 50 100 150 200

10-th iteration

Jakobi GS

→ widać że m. GS bardzo szybko tłumi wysokozmienny błąd

(30)

30 Tempo zbieżności relaksacji GS możemy kontrolować dodając do równania

parametr zbieżności

Inaczej: mieszamy stare i nowe rozwiązanie

→ w<1 podrelaksacja (obniżamy tempo zbieżności)

→ w=1 zwykła relaksacja

→ w>1 nadrelaksacja (tu powinniśmy uzyskać przyśpieszenie obliczeń) (dowód zbieżności metody GS dla pokazany na wykładzie z Metod Numerycznych dla układu równań liniowych)

Pytanie: kiedy zatrzymać relaksację?

(31)

Kiedy zatrzymać relaksację?

Jakość rozwiązania równania Poissona możemy sprawdzić na dwa sposoby:

1) badając normę euklidesową wektora reszt

2) licząc całkę działania dla pola elektrycznego

→ całka działania osiąga minimum dla rozwiązania dokładnego (zasada wariacyjna Rayleigha-Ritza)

Przykład. Rozwiązujemy metodą relaksacji (Jakobi,GS, nadrelaksacja) równanie Poissona w 1D

0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

u(x)

u(it=0)=0 u(x) gest/15

(32)

32

0 0.5 1 1.5 2 2.5 3 3.5

0*10 0 1*10 4 2*10 4 3*10 4

||b-Ax|| 2

iterations u(it=0)=0

Jakobi GS - w=1.0 GS - w=1.5 GS - w=1.9

1*10 -12 1*10 -10 1*10 -8 1*10 -6 1*10 -4 1*10 -2 1*10 0 1*10 2

0*10 0 1*10 4 2*10 4 3*10 4

||b-Ax|| 2

iterations u(it=0)=0

Jakobi GS - w=1.0 GS - w=1.5 GS - w=1.9

-8*10 -3 -7*10 -3 -6*10 -3 -5*10 -3 -4*10 -3 -3*10 -3 -2*10 -3 -1*10 -3 0*10 0

0*10 0 1*10 4 2*10 4 3*10 4

S

iterations u(it=0)=0

Jakobi GS - w=1.0 GS - w=1.5 GS - w=1.9

→ m. Jakobiego najwolniejsza

→ nadrelaksacja tym szybsza im większa wartość parametru zbieżności (ale nie jest to regułą – zależy często od WB)

→ co lepsze do warunku zakończenia?: ||r||

2 czy całka działania?

Jeśli całka działania osiąga minimum to w kolejnych iteracjach już się nie zmieni

→ to wygodny warunek zatrzymania relaksacji.

Dla normy wektora reszt pojawia się problem, który jest wynikiem dokładności rozwiązania numerycznego i precyzji obliczeń

→ trudno określić warunek zakończenia relaksacji

(33)

Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

Np. stosując:

1) metodę zagęszczania siatki 2) relaksację wielosiatkową

Zagęszczanie siatki – najprostsze.

1) Znajdujemy rozwiązanie na najrzadszej siatce (czerwone węzły, krok na siatce k=4) stosując wzór relaksacyjny

oraz uśredniając gęstość w komórce otaczającej aktualny węzeł (żółty obszar)

(34)

34 2) Przechodzimy na siatkę o dwukrotnie mniejszym oczku siatki,

wartości w nowych węzłach (niebieskie) interpolujemy liniowo wartościami z węzłów sąsiednich

Siatka rzadka: czerwone węzły Siatka gęsta: niebieskie węzły

węzeł środkowy:

(35)

35 3) na rzadszej siatce relaksujemy równanie

4) powtarzamy operacje (2) i (3) na kolejnych gęstszych siatkach Przykład.

-0.1 -0.08 -0.06 -0.04 -0.02 0 0.02 0.04 0.06

1 10 100 1000

S

iteration

overrelaxation - multigrid

k=16 k=8 k=4 k=2 k=1

k=16

10 20 30 40 50 60 70 80 90 100 110 120

y

-0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2

k=8

0 20 40 60 80 100 120

y

-0.3 -0.2 -0.1 0 0.1 0.2 0.3

k=4

0 20 40 60 80 100 120 140

y

-0.25 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2 0.25

k=2

0 20 40 60 80 100 120 140

y

-0.25 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2 0.25

-0.1 -0.05 0 0.05 0.1 0.15 0.2 0.25 0.3

1 10 100 1000 10000

S

iteration Overrelaxation

w=1.1 w=1.2 w=1.3 w=1.4 w=1.5 w=1.6 w=1.7 w=1.8 w=1.9

gestosc

0 20 40 60 80 100 120 140 x

0 20 40 60 80 100 120 140

y

-80 -60 -40 -20 0 20 40 60 80

k=1

0 20 40 60 80 100 120 140 x

0 20 40 60 80 100 120 140

y

-0.25 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2 0.25

(36)

36 schemat prostego zagęszczania siatki

start koniec

na każdej siatce iteracja do pełnej zbieżności

ten czynnik spowalnia metodę

Zamiast jednokierunkowego zagęszczania siatki

możemy użyć schematu wielosiatkowego (multigrid method) np. najprostszego dwusiatkowego

tu szukamy rozwiązania

tu szacujemy błąd (wolnozmienny)

na każdej siatce wykonujemy tylko kilka iteracji

Relaksacja wielosiatkowa

(37)

Procedura iteracji dwusiatkowej dla równania

1. na siatce (Δx) wykonujemy n1 iteracji, dostajemy:

2. liczymy wektor reszt (Δx):

Uwaga: wektor błędu e(Δx) zawiera składowe wolnozmienne - znajdźmy go na siatce (2dx) 3. rzutujemy wektor reszt na rzadszą siatkę używając (macierzowego) operatora restrykcji

4. teraz znajdujemy przybliżone rozwiązanie dla e(2Δx) tj. eliminujemy wpływ błędu wolnozmiennego - wykonujemy tylko n2 iteracji

5. Wektor błędu e(2Δx) rzutujemy na siatkę gęstszą używając (macierzowego) operatora prolongacji

6. poprawiamy przybliżone rozwiązanie na siatce (Δx)

Uwaga: wektory x(Δx) oraz e(Δx) stanowią tylko przybliżenia ich dokładnych odpowiedników

(38)

38 Operator restrykcji/prolongacji – jak je skonstruować?

Najpierw zobaczmy co chcemy uzyskać

restrykcja:

zostawiamy tylko węzły niebieskie

prolongacja:

generujemy węzły czerwone x3 , x5 i x7 (węzły brzegowe x1 i x9 – bez zmian np. ze względu na WB Dirichleta)

Przykład dla siatki 1D

(39)

W relaksacji wielosiatkowej możmy stosować różne schematy

4-siatkowa relaksacja typu V-cycle

Pełna relaksacja wielosiatkowa - szukamy rozwiązania na siatce (Δx*k) [1]

- rozwiązania rzutujemy je na siatkę (Δx*k/2) [2]

i wykonujemy N(k/2) iteracji

- szukamy błedu na siatce (Δx*k) [3]

- poprawiamy rozwiązanie na siatce (Δx*k/2) [4]

- rzutujemy rozwiązanie na siatkę (Δx*k/4) [5]

i wykonujemy N(k/4) iteracji

- szukamy błędu na siatce (Δx*k/2) [6] oraz (Δx*k) [7]

- poprawiamy błąd na siatce (Δx*k/2) [8] oraz rozwiązanie na siatce (Δx*k/4) [9]

- rzutujemy rozwiązanie na siatkę (Δx*k/8) [10]

Cytaty

Powiązane dokumenty

Wykaż twierdzenie Prochorowa na prostej rzczywistej.. Czy zachodzi

Każda reszta modulo n ma wielu reprezentantów, na przykład reszta 1 modu- lo 5 jest reprezentowana przez każdą z liczb 1, 6, −19, 11,.. W przeciwnym przypadku, a nazywamy

Na zajęciach rozwiążemy równanie Poissona dla układu pokazanego na Rys.1 postępując następu- jąco: i) zdyskretyzujemy równanie na regularnej siatce przy użyciu

Do każdej całki pierwszej wyświetlić na wykresie w Matlabie pole kierunkowe.. Podać znaczenie geometryczne charakterystyk oraz

Wówczas wyrażenie na okres wahadła fizycznego przekształca się w wyrażenie na okres wahadła matematycznego (przy czym symbol d (odległość osi od środka masy)

Dla dodatniej liczby naturalnej n znaleźć wzór na największą potęgę liczby pierwszej p dzielącą n!4. Rozłożyć na czynniki pierwsze

Pokaż, że u jest funkcją harmoniczną na

Równania różniczkowe cząstkowe liniowe jednorodne