95
Metody obliczeniowe fizyki i techniki I 30h wykładu, 15h projektu Treść wykładu: -rozwiązywanie numeryczne zwyczajnych i cząstkowych równań różniczkowych fizyki i techniki - podstawowe metody numeryczne

Metody obliczeniowe fizyki i techniki I - galaxy.uci.agh ...galaxy.uci.agh.edu.pl/~bszafran/mofit/wyk1.pdf · (metoda Newtona), Interpolacja wielomianowa (Lagrange’a) całkowanie

  • Upload
    vudieu

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Metody obliczeniowe fizyki i techniki I

30h wykładu, 15h projektu

Treść wykładu: -rozwiązywanie numeryczne zwyczajnych i cząstkowych równań różniczkowych fizyki i techniki - podstawowe metody numeryczne

Główna metoda omawiana w czasie wykładu- metoda różnic skończonych (MRS)

Definicja pochodnej (Leibnitz, Newton)f’(x)=lim

dx→0[f(x+dx)-f(x)]/dx

W MRS pracuje się na skończonym dx, poszukując schematów pozwalających na dokładne, stabilnerachunki.

Rachunki numeryczne – prowadzone od początku teorii równańróżniczkowych dla problemów, w których rozwiązanie analitycznenie jest znane.

(Newton, Euler, Lagrange, Gauss, Adams, etc.)

1. Metody różnicowe dla równań zwyczajnych:

Zbieżność, stabilność. Schematy jawne i niejawne. Problemy sztywne.Optymalizacja kroku czasowego. Schematy wielokrokowe i Rungego Kutty.

Pomocnicze metody numeryczne: rozwiązywanie równań nieliniowych(metoda Newtona), Interpolacja wielomianowa (Lagrange’a)całkowanie metodami Newtona-Cotesa.

2. Zwyczajne problemy brzegowe. Metoda strzałów.

3. Całkowanie numeryczne cd. Kwadratury Gaussa, całki wielowymiarowe, generatory liczb przypadlowych.

4. Równanie Poissona oraz różniczkowe równanie własne.Metoda Numerova.

Metody relaksacji punktowej oraz globalnej, nadrelaksacji oraz metody wielosiatkowe.

Metody pomocnicze: rozwiązywanie URL metodami dokładnymi(eliminacja Gaussa, metoda dekompozycji LU) oraz iteracyjnymi metody Gaussa-Seidla, Jakobiego).

5. Optymalizacja Monte Carlo. Schemat Metropolisa. Algorytmy genetyczne, algorytmy stadne, symulowane wygrzewanie

6. Równanie adwekcji. Schematy jawne i niejawne. Kryterium CFL. Analiza von Neumanna.

7. Równanie dyfuzji / równanie przewodnictwa cieplnego. Schemat Cranka-Nicolson.

8. Równanie falowe. Schemat Newmarka

Konsultacje: piątek 8:30-10:00, [email protected]

Równania różniczkowe:

równania opisujące relacje spełniane przez pochodne nieznanej (poszukiwanej) funkcji

cząstkowe: funkcja więcej niż jednej zmienna, np.: czas i położenie

u

x

t

t+dt

np. wychylenie u(x,t) struny w położeniu x i czasie t

równania cząstkowe: nie zawsze jedną ze zmiennych jest czas, ale zawsze opisują obiekty rozciągłe

druga zasada dynamiki Netwonadla struny

równania różniczkowe zwyczajne: jedna zmienna niezależnanp. czas dla elementów punktowych, nierozciągłych

v(t)

R C L

napięciowe prawo Kirchoffarównanie liniowe drugiego rzędu

r=(x,y)

układ równań: ruch w polu centralnym

(nieliniowe) równania Lotki-Volterry

z – populacja zajęcy, w– wilków naturalne tempo wzrostu pop. zajęcy (pod nieobecność w),– zaniku wilków bez z

parametry oddziaływania populacji

układ równań nieliniowych2 rzędu – problem początkowypo zadaniu x(t=0),y(t=0),x’(t=0), y’(t=0).

układ r. 1 rzędunieliniowe

zwyczajne zagadnienie brzegowe (zamiast czasu, położenie w 1D -element rozciągły opisany jedną współrzędną)

np. równanie Eulera-Bernoulliego: wygięcie jednorodnego elastycznegopręta pod wpływem rozłożonego obciążenia w(x)

lewy koniec: zamocowanyi podparty

prawy koniec:swobodny

zwyczajne rzędu drugiego lub wyższego+ warunki na funkcje i pochodne na końcach przedziału

Zaczynamy od rozwiązywania równań zwyczajnych

1) prostsza analiza niż dla cząstkowych

2) wprowadzimy pojęcia zbieżności, dokładności, stabilności itd.przydatne do metod rozwiązywania równań cząstkowych

3) jedna z metod rozwiązywania równań cząstkowych(metoda linii) - sprowadzamy równanie cząstkowe do układu równań zwyczajnych

Metoda linii:

układy równań różniczkowych zwyczajnych - po dyskretyzacji przestrzennej cząstkowego równania różniczkowego

równanie adwekcji (konwekcji)

xx1 x2 x3 x4 x5

centralny iloraz na pochodną przestrzenną

un(t)=u(xn,t)

x

układ N równań zwyczajnych

t

zwyczajne równania różniczkowe rzędu pierwszego [oraz ich układy]

warianty:liniowe(układy równańliniowych rozwiązuje się analitycznie)inna forma – nieliniowe

=0 –jednorodne

jeśli f=f(t) (nie zależy od y)rozwiązanie – całka nieoznaczona

jeśli f=f(y) (nie zależy od t) równanie autonomiczne

(nie podlega zaburzeniom zależnym od t)

zagadnienie początkowe:

równanie różniczkowe + warunek początkowy

jeśli f=f(t) rozwiązanie: całka oznaczona

Równanie różniczkowe zwyczajne dowolnego rzędumożna sprowadzić do układu równań pierwszego rzędu

wystarczy jeśli potrafimy efektywnie rozwiązać układ równań rzędu pierwszego

Przykład:

Zmiana oznaczeń

Definicja traktowana jakojedno z równań do rozwiązania

Równanie na najwyższą pochodną- jedyne „niedefinicyjne”

Układ ró w

nań d o rozwią zania

O konieczności numerycznego rozwiązywania RRZ 1R:

analitycznie rozwiązać można układ równań liniowych. nieliniowe: na ogół nie.

V2

V1

r1

r2

V3

r3

Układ 2 ciał oddziaływujących grawitacyjnie- analitycznie rozwiązany przez Newtona

Układ 3: ciał – nie posiada analitycznego rozwiązania

ponadto: automaty mające reagować na otoczenie (np. sondy kosmiczne)nie znają postaci analitycznej f : ta jest brana z pomiarów bez wzoru na f skazani jesteśmy na rachunki numeryczne

zazwyczaj nie znamy rozwiązańanalitycznych równań nieliniowych

metoda różnic skończonych dla zwyczajnego równania różniczkowego:podstawowe pojęcia analizy metod na przykładzie jawnego schematu Eulera

1) dyskretyzacja zmiennej czasowej2) przybliżenie różnicowe równania różniczkowego3) błąd lokalny 4) błąd globalny5) zbieżność6) propagacja błędu dla równań liniowych 7) rząd dokładności metody8) bezwzględna stabilność metody i region bezwzględnej stabilności9) błędy zaokrągleń a optymalny krok czasowy

Numeryczne rozwiązywanie problemu początkowego

jeśli potrafimy rozwiązaćukład równań rzędu pierwszego-rozwiążemy każdy różniczkowy problem początkowy

metoda ma zapewnić zadaną dokładność przy pomocy minimalnej liczby wywołań f (przy maksymalnym kroku czasowym)

przy dyskusji metod– zakłada się, że wyliczenie f jest kosztowne – [jeśli nie jest kosztowne – nie ma problemu]

Dyskretyzacja zmiennej czasowej

t

tn+1 tn+2

n n+1 n+2 itd.

Numeryczne rozwiązywanie problemu początkowego

dyskretyzacja zmiennej czasowej sprowadza równaniaróżniczkowe do różnicowych (metoda różnic skończonych)

im więcej znamy pochodnychw punkcie t tym większe otoczeniet możemy dobrze przybliżyćobciętym rozwinięciem Taylora

tw. Taylora - między t a t istnieje taki punkt , że

ograniczenie na resztę: maksymalna wartość czwartej pochodnej u w okolicy tstąd O(t4)

twierdzenie Taylora

• szereg Taylora

• y(t + ∆t) = y(t) + ∆tdydt |t + ∆t2

2d2ydt2 |t + · · · + ∆tn

n!dN ydtN |t + . . .

• twierdzenie Taylora

• y(t + ∆t) = y(t) +∑N

n=1

[∆tn

n!d2ydt2 |t]

+ ∆tN+1

(N+1)!dN+1ydtN+1 |τ , gdzie τ ∈ (t, t + ∆t)

• reszta znika w granicy małego kroku czasowego

• lim∆t→0

(∆tN+1

N!dN+1ydtN+1 |τ

)= 0

• tempo zbieznosci do zera jest ∆tN+1, co oznaczamy(

∆tN+1

(N+1)!dN+1ydtN+1 |τ

)= O(∆tN+1)

Bartłomiej Szafran

rózniczkowanie numeryczne: dwupunktowy iloraz róznicowypierwszej pochodnej

• szereg Taylora:

• y(t + ∆t) = y(t) + ∆t dydt |t + ∆t2

2d2ydt2 |t + · · · + ∆tn

n!dN ydtN |t + . . .

• y(t + ∆t) = y(t) + ∆t dydt |t + O(∆t2)

• ∆t dydt |t = y(t + ∆t)− y(t) + O(∆t2)

• dydt |t =

y(t+∆t)−y(t)∆t + O(∆t)

Bartłomiej Szafran

rózniczkowanie numeryczne: schemat centralny trójpunktowy

• szereg Taylora:

• y(t + ∆t) = y(t) + ∆t dydt |t + ∆t2

2d2ydt2 |t + ∆t3

3!d3ydt3 |t + ∆t4

4!d4ydt4 |t + . . .

• y(t − ∆t) = y(t)− ∆t dydt |t + ∆t2

2d2ydt2 |t − ∆t3

3!d3ydt3 |t + ∆t4

4!d4ydt4 |t + . . .

• y(t + ∆t)− y(t − ∆t) = 2∆t dydt |t + 2 ∆t3

3!d3ydt3 |t + . . .

• y(t + ∆t)− y(t − ∆t) = 2∆t dydt |t + O(∆t3)

• dydt |t =

y(t+∆t)−y(t−∆t)2∆t + O(∆t2)

• zamiast

• dydt |t =

y(t+∆t)−y(t)∆t + O(∆t)

Bartłomiej Szafran

rózniczkowanie numeryczne: schemat centralny pieciopunktowy

• szereg Taylora:

• y(t + ∆t) = y(t) + ∆t dydt |t + ∆t2

2d2ydt2 |t + ∆t3

3!d3ydt3 |t + ∆t4

4!d4ydt4 |t + . . .

• y(t − ∆t) = y(t)− ∆t dydt |t + ∆t2

2d2ydt2 |t − ∆t3

3!d3ydt3 |t + ∆t4

4!d4ydt4 |t + . . .

• y(t + ∆t)− y(t − ∆t) = 2∆t dydt |t + 2 ∆t3

3!d3ydt3 |t + O(∆t5) (1)

• y(t + 2∆t) = y(t) + 2∆t dydt |t + 4 ∆t2

2d2ydt2 |t + 8 ∆t3

3!d3ydt3 |t + 16 ∆t4

4!d4ydt4 |t + . . .

• y(t − 2∆t) = y(t)− 2∆t dydt |t + 4 ∆t2

2d2ydt2 |t − 8 ∆t3

3!d3ydt3 |t + 16 ∆t4

4!d4ydt4 |t + . . .

• y(t + 2∆t)− y(t − 2∆t) = 4∆t dydt |t + 2 · 8 ∆t3

3!d3ydt3 |t + O(∆t5) (2)

• 8 · (1)− (2)→

• dydt |t = 1

12∆t [y(t − 2∆t)− 8y(t − ∆t) + 8y(t + ∆t)− y(t + 2∆t)] + O(∆t4)

• etc.

Bartłomiej Szafran

rózniczkowanie numeryczne: schemat centralny pieciopunktowy

•-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

-5 -4 -3 -2 -1 0 1 2 3 4 5

2punkty3punkty

5punktow

• Rysunek pokazuje róznice miedzy dokładna pochodna funkcji gaussowskiej exp(−x2)oraz jej przyblizeniem ilorazem róznicowym przy ∆x = 1

5 , z ilorazem 2, 3 oraz 5punktowym

Bartłomiej Szafran

błąd lokalny schematu różnicowegodefinicja: odchylenie wyniku numerycznegood dokładnego uzyskane w pojedynczymkroku, w którym na starcie wstawiono dokładne rozwiązanie(dokładny warunek początkowy)

Jawny schemat Eulera

można wyliczyć bo znamyt i u(t)

błąd lokalny jawnego Eulera w kroku tn-1 tn

wg tw. Taylora

ln =

przepis na pojedynczy krokz u(t) do u(t+t)

Jawny schemat Eulera

...

krok wcale nie musi być taki sam dla każdego n,ale tak przyjmiemy do analizy

stosowany wielokrotnie:

dokładny [np. exp(t) dla du/dt=u]

u

t

u0

jawny Eulerkrok wykonywanywg nachylenia (wartości f)z początku przedziałut+t

każdy krok wykonywany z nachyleniembranym z chwili, w której krok się zaczyna

W każdym kroku wprowadzamy nowy błąd. Błędy się akumulują.Zmniejszamy krok t: Błąd lokalny zmaleje, ale wykonamy więcej kroków. Czy opłaca się zmniejszać kroki czasowe?

Definicja: Błąd globalny e=rozwiązanie dokładne w chwili t minus rozwiązanie numeryczne w chwili t

„Czy się opłaca” znaczy: Czy błąd globalny maleje gdy t maleje ? a jeśli tak - czy maleje do zera? („czy możliwe jest dokładne rozwiązanie

równania różniczkowego uzyskane jako granica schematu różnicowego”)

Jawny schemat Eulera

Jawny schemat EuleraCzy błąd całkowity maleje gdy t maleje ?Czy maleje do zera?

eksperyment numeryczny

problem początkowy:u’=u, u(0)=1

z rozwiązaniem dokładnym u(t)=exp(t)

0 . 0 0 0 0 . 0 0 2 0 . 0 0 4 0 . 0 0 6 0 . 0 0 8 0 . 0 1 0t

0 . 4

0 . 6

0 . 8

1 . 0

u

100t=0.001

dokładny

jawny Euler

0 . 0 0 0 0 . 0 0 2 0 . 0 0 4 0 . 0 0 6 0 . 0 0 8 0 . 0 1 0t

0 . 0 0 4 0

0 . 0 0 8 0

0 . 0 1 2 0

0 . 0 1 6 0

0 . 0 2 0 0

ue

(błą

d gl

obal

ny)

= d

okła

dny

- nu

mer

yczn

y

Jawny schemat EuleraCzy błąd globalny maleje gdy t maleje ?Czy maleje do zera?

eksperyment numeryczny

problem początkowy:u’=u, u(0)=1

z rozwiązaniem dokładnym u(t)=exp(t)

zmniejszajmy krok czasowy, jaki wynik w chwili t=0.01 ? [1/e=.3678794]

n t un exp(-1)-un

10 10-3 0.34867 1.920 10-2

102 10-4 0.36603 1.847 10-3

103 10-5 0.36769 1.840 10-4

104 10-6 0.36784 1.839 10-5

błąd globalny w chwili t=0.01 wydaje się zmieniać liniowoz krokiem czasowym

100

interpretacja: błąd lokalny rzędu t2

popełniony n = t/t razy daje błąd globalny rzędu t

Definicja:

Metody różnicowa jest zbieżna jeśli błąd globalny

znika do zera w chwili T gdy z t do 0

zmniejszajmy krok czasowy, jaki wynik w chwili t=0.01 ? [1/e=.3678794]

n t un exp(1)un

10 10-3 0.34867 1.920 10-2

102 10-4 0.36603 1.847 10-3

103 10-5 0.36769 1.840 10-4

104 10-6 0.36784 1.839 10-5

błąd globalny w chwili t=0.01 wydaje się zmieniać liniowoz krokiem czasowym

Definicja:

Metody różnicowa jest zbieżna jeśli błąd globalny

znika do zera w chwili T gdy z t do 0

rząd zbieżności metody jest k, jeśli w granicy t →0 błąd globalny znika jak O(tk)

Zazwyczaj rząd zbieżności metody jest o jeden niższy niż rząd błędu lokalnego (popełnianego w jednym kroku).

Rząd zbieżności metody Eulera – pierwszy.

Metoda Eulera jest metodą pierwszego rzędu.

Nie ma wolniej zbieżnej metody

Prezentacja o zastosowaniu metody Eulera dla cząstki w minimum potencjału (oscylator anharmoniczny).Szu1.pdf

case study: wneka potencjału

•-1.4

-1.2

-1

-0.8

-0.6

-0.4

-0.2

0

-2 -1 0 1 2 3 4

EEV

x• czastka o energii E = −0.6 [J]. Energia potencjalna zalezna od połozenia x [m]

V (x) = − exp(−x2)− 1.2 exp(−(x − 2)2)[J]

• wyznaczyc obszar dostepny dla czastki: V (x) ¬ E

• równania na punkty zwrotne V (x) = E

• równanie - zazwyczaj nieliniowe - do rozwiazania f (x) ≡ V (x)− E = 0

Bartłomiej Szafran

równania dynamiki Newtona

• czastka o energii E = −0.6 [J]. Energia potencjalnaV (x) = − exp(−x2)− 1.2 exp(−(x − 2)2)[J]

• zobaczmy: rozwiazanie równania Newtona

• m = 1 kg

• d2xdt2 = F

m = − 1m

dVdx

• równanie zwyczajne rzedu N mozna sprowadzic do układu N równan pierwszego rzedu:

• dxdt ≡ v (*)

• dvdt = − 1

mdVdx (**)

• warunki brzegowe:

• x(t = 0) = 2.83288 [m], v(t = 0) = 0 (***)

• (*,**,***) tworza zagadnienie poczatkowe (zagadnienie Cauchy)

• schemat róznicowy: pochodne zastepujemy przez ilorazy róznicowe

• z twierdzenia Taylora:

• dydt =

y(t+dt)−y(t)∆t + O(∆t)

Bartłomiej Szafran

jawny schemat Eulera do równania Newtona

• równanie rózniczkowe: dydt |t = f (t, y)

• yn+1 = yn + f (tn, yn)∆t

• równania:

• dxdt ≡ v

• dvdt = − 1

mdVdx

• xn+1 = xn + vn∆t

• vn+1 = vn − 1m

dVdx |xn ∆t

Bartłomiej Szafran

jawny schemat Eulera do równania Newtona

• xn+1 = xn + vn∆t

• vn+1 = vn − 1m

dVdx |xn ∆t

• dt = 0.01

•-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25 30

x

v

x [m

], v

[m/s

]

t

•-1.4

-1.2

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

0 5 10 15 20 25 30

Ek

V

V,E

k [

J]

t[s]

Bartłomiej Szafran

jawny schemat Eulera do równania Newtona

• xn+1 = xn + vn∆t

• vn+1 = vn − 1m

dVdx |xn ∆t

• dt = 0.01, wynik do 100 sekund

•-1.5

-1

-0.5

0

0.5

1

1.5

-1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5

v[m

/s]

x[m]

"fort.1" u 2:3

• wykres (x, v) tzw. portret fazowy

• jawny schemat Eulera - nie zachowuje scisle energii, ona jest generowana w programie.Tempo generacji, lub zaniku energii zalezy od schematu róznicowego.

Bartłomiej Szafran

jawny schemat Eulera do równania Newtona

• dt = 0.01, wynik do 100 sekund

• -1.5

-1

-0.5

0

0.5

1

1.5

-1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5

v[m

/s]

x[m]

"fort.1" u 2:3

• zobaczmy co dalej sie stanie: wynik do 1000 sekund

•-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

-10 -5 0 5 10 15 20 25 30

v

x

"fort.1" u 2:3

• ciało opusciło zasieg potencjału i oddala sie ze stała predkoscia w prawo

• V (x) = −e−x2− 1.2 e−(x−2)2

Bartłomiej Szafran

jawny schemat Eulera do równania Newtona

• T = 100 s, ∆t = .01

•-1.5

-1

-0.5

0

0.5

1

1.5

-1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5

v[m

/s]

x[m]

"fort.1" u 2:3

• ∆t = .001

• -1.5

-1

-0.5

0

0.5

1

1.5

-1 -0.5 0 0.5 1 1.5 2 2.5 3

"fort.1" u 2:3

∆t = .0001

• -1.5

-1

-0.5

0

0.5

1

1.5

-1 -0.5 0 0.5 1 1.5 2 2.5 3

"fort.1" u 2:3

• dla lepszych schematów wystepujapodobne problemy

• gdy mniejszyc krok ∆t wystapia, alepózniej:

• co zrobic - ustalic jaki zakres czasu nasinteresuje, do niego dobrac krok czasowy

• dobra metoda : o błedzie lokalnym rzeduwyzszego niz 2 pozwoli wykonac mniejkroków (pracowac z wiekszym ∆t

Bartłomiej Szafran

jawny schemat Eulera do równania Newtona

• wprowadzmy opory ruchu:

• dxdt = v

• dvdt = − 1

mdVdx − αv

• α = 0.05, ∆t = 0.01

•-1.5

-1

-0.5

0

0.5

1

-1 -0.5 0 0.5 1 1.5 2 2.5 3

"fort.1" u 2:3

• wykres (x, v) - układ znajduje jedno z minimów potencjału

• minimum mozna znalezc szukajac numerycznie zer V ′(x).

Bartłomiej Szafran

jawny schemat Eulera do równania Newtona

• α = 0.5, v(x), ∆t = 0.01

•-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3

"fort.1" u 2:3

• α = 5, v(x), ∆t = 0.01

•-0.25

-0.2

-0.15

-0.1

-0.05

0

1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9

"fort.1" u 2:3

Bartłomiej Szafran

jawny schemat Eulera do równania Newtona

• duzy współczynnik tłumienia α = 201,

• v(t), ∆t = 0.01

•-1500

-1000

-500

0

500

1000

1500

0 2 4 6 8 10 12 14

v

t

"fort.1" u 1:3

• gdy α∆t > 2 rachunek eksploduje

• ciało wykonuje skoki o rosnacej z czasem amplitudzie

• predkosc zmienia znak i rosnie z kroku na krok

• problem: bezwzglednej niestabilnosci jawnego schematu Eulera

Bartłomiej Szafran

bezwzgledna stabilnosc schematu Eulera

• DF: schemat dla danego równania i dla danego ∆t jest bezwglednie stabilny jesligenerowane wartosci pozostaja skonczone przy n→∞

• z układu równan, problematyczny jest czynnik z α

• dxdt = v

• dvdt = − 1

mdVdx − αv

• zajmiemy sie wiec równaniem

• dvdt = −αv , rozwiazanie analityczne v(t) = v(0) exp(−αt)

• vn+1 = vn − ∆tαvn

• vn+1 = vn(1− ∆tα)

• jesli |1− ∆tα| > 1, vn+1 dazy do nieskonczonosci z n

• dla α > 0 schemat bezwzglednie stabilny jesli ∆tα < 2

Bartłomiej Szafran

region bezwzglednej stabilnosci jawnego schematu Eulera

• problem modelowy:

• dvdt = zv , z zespolona

• vn+1 = vn + ∆tzvn

• vn+1 = vn(1 + ∆tz)

• bezwzglednie stabilny dla

• |1 + ∆tz| < 1: czarny obszar na rysunku (region bezwzlednej stabilnosci jawnegoschematu Eulera)

•-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Im(z

)Δt

Re(z)Δt

"fort.1"

• dla duzych "współczynników tłumienia" <(z) < 0 rozwiazanie dokładne C exp(zt) gasnie,a numeryczne eksploduje

Bartłomiej Szafran

inny schemat Eulera

• dvdt = zv , z liczba zespolona

• jawny:• vn+1−vn

∆t = zvn, z zespolona• vn+1 = vn + ∆tzvn

• vn+1 = vn(1 + ∆tz)

• bezwzgledna stabilnosc: |1 + ∆tz| < 1.

•-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Im(z

)Δt

Re(z)Δt

"fort.1"

• niejawny:• vn−vn−1

∆t = zvn, z zespolona• vn = vn−1 + ∆tzvn

• vn =vn−1

1−∆tz

• bezwzgledna stabilnosc: |1− ∆tz| > 1.

•• region bezwzglednej stabilnosci: czarny. Jesli Re(z) < 0 niejawny Euler pozostaje

bezwzglednie stabilny niezaleznie od kroku czasowego

Bartłomiej Szafran

niejawny schemat Eulera

• dvdt = f (t, v)

• jawny:• vn+1 = vn + f (tn, vn)∆t• działa jak podstawienie

• niejawny:• vn+1 = vn + f (tn+1, vn+1)∆t• działa jak równanie na vn+1 –

nieliniowe jesli f – nieliniowe

Bartłomiej Szafran

niejawny schemat Eulera

• dvdt = f (t, v)

• vn+1 = vn + f (tn+1, vn+1)∆t

• rozwiazanie dla leniwych programistów:

• iteracja: vµ+1n+1 = vn + f (tn+1, v

µn+1)∆t

• na starcie np. v1n+1 = vn

• jesli vµ+1n+1 = vµn+1, w praktyce |vµ+1

n+1 − vµn+1| < ε −→ vn+1 = vµ+1n+1

Bartłomiej Szafran

iteracja czasowa w niejawnym Eulerze

• dvdt = −αv

• ∆t = 0.01, α = 20

• vµ+1n+1 = vn − αvµn+1

• v1 = 1

• v12 = 1

• vµ+12 = 1− αvµn+1

µ vµ22 0.83 0.844 0.83365 0.8333446 0.833331

• zbiega sie, lecz wymagane kilka iteracji

Bartłomiej Szafran

iteracja czasowa w niejawnym Eulerze

• dvdt = −αv

• ∆t = 0.01, α = 200

• vµ+1n+1 = vn − αvµn+1

• v1 = 1

• v12 = 1

• vµ+12 = 1− αvµn+1

µ vµ22 -13 34 -55 116 -21

• tam gdzie jest problem dla jawnego Eulera ze stabilnosciabezwzgledna, tam niejawny Euler rozwiazywany przez prostaiteracje sie nie sprawdza

• potrzebny inny sposób wykonywania kroku w niejawnymEulerze

• Przepis niejawnego Eulera: vn+1 = vn + f (tn+1, vn+1)∆t , jestrównaniem nieliniowym. Potrzebne metody dedykowane dorozwiazywania równania nieliniowego.

Bartłomiej Szafran

Rozwiazywanie równan nieliniowych. Case study: przestrzendostepna dla ciała o danej energii

•-1.4

-1.2

-1

-0.8

-0.6

-0.4

-0.2

0

-2 -1 0 1 2 3 4

EEV

x• czastka o energii E = −0.6 [J]. Energia potencjalna zalezna od połozenia x [m]

V (x) = − exp(−x2)− 1.2 exp(−(x − 2)2)[J]

• wyznaczyc obszar dostepny dla czastki: V (x) ¬ E

• równania na punkty zwrotne V (x) = E

• równanie - zazwyczaj nieliniowe - do rozwiazania f (x) ≡ V (x)− E = 0

Bartłomiej Szafran

równania nieliniowe: metoda bisekcji

• rozwiazanie równania nieliniowego: najprostsza zmetod – bisekcja

0 osaczyc zero : f (b) > 0 oraz f (a) < 0, i := 1

1 mi = a+b2

2 albo f (a)f (m) < 0 wtedy b := m

3 albo f (b)f (m) < 0 wtedy a := m

4 i := i + 1

5 jesli |a− b| > zadanej precyzji wyznaczeniazera, wracamy do 1)

• z kazdym krokiem przedział, w którym poszukujemy zera (dokładnosc jego oszacowania)skraca sie o połowe

Bartłomiej Szafran

metoda bisekcji

•-1.4

-1.2

-1

-0.8

-0.6

-0.4

-0.2

0

2 2.5 3 3.5 4

EEEEEEEV

x

1

2

3

45678910

•-1.1

-1

-0.9

-0.8

-0.7

-0.6

-0.5

-0.4

-0.3

2.4 2.5 2.6 2.7 2.8 2.9 3

V

x

1

2

3

4

5678910

• f (x) ≡ V (x)− E = 0, na rysunkach V (x)

-0.62

-0.6

-0.58

-0.56

-0.54

2.78 2.8 2.82 2.84 2.86 2.88 2.9

Vx

4

5

6

7

8910

• metoda bisekcji: reaguje tylko na znak funkcji,ignoruje wartosc oraz kształt krzywej

• dokładnosc wyznaczenia zera scisle okreslonaprzez liczbe wywołan funkcji

Bartłomiej Szafran

metoda bisekcji

•0.00000001

0.00000010

0.00000100

0.00001000

0.00010000

0.00100000

0.01000000

0.10000000

1.00000000

0 5 10 15 20

|f(x)|

i• zbieznosc f (x) ≡ V (x)− E = 0, dla kolejnych iteracji i

Bartłomiej Szafran

potrzeba linearyzacji

-0.62

-0.6

-0.58

-0.56

-0.54

2.78 2.8 2.82 2.84 2.86 2.88 2.9

V

x

4

5

6

7

8910

• Wolna zbieznosc. Problem, jesli wyliczenief (x) trwa np. 48h.

• Trzeba przyspieszyc.• Kazda funkcja gładka w małym przedziale

(w duzym zoomie) zachowuje sie jak funkcjaliniowa.

• Mozliwosc przyspieszenia rachunków zwykorzystaniem linearyzacji funkcjinieliniowej w okolicach zera

• Metoda: nazywana metoda stycznych,metoda Newtona albo metodaNewtona-Raphsona

Bartłomiej Szafran

metoda Newtona-Raphsona (stycznych, Newtona)

-0.62

-0.6

-0.58

-0.56

-0.54

2.78 2.8 2.82 2.84 2.86 2.88 2.9

V

x

4

5

6

7

8910

• rozwiniecie w szereg Tayloraf (x) = f (x0) + (x − x0)f ′(x)|x0 + (x − x0)2f ′′(x)|x0 + . . .

• szukamy f (x) = 0, x0 to okolice zera f (x), jesli jestesmy blisko(x − x0)2 - zaniedbywalne w porównaniu z wyrazem liniowym(x − x0)

• rozwiniecie w szereg Taylora 0 = f (x) ' f (x0) + (x − x0)f ′(x0)

• liczymy 0 = f (x0) + (x − x0)f ′(x0)→ x = x0 − f (x0)f ′(x0)

• procedura iteracyjnej poprawy oszacowania zera xn+1 = xn − f (xn)f ′(xn)

• w porównaniu do metody bisekcji wykorzystuje nie tylko znak funkcji, lecz jej (1) wartoscoraz (2) pochodna (wysokosc nad osia i nachylenie wykresu)

Bartłomiej Szafran

metoda Newtona-Raphsona

• metoda N-R sprowadza sie do linearyzacji funkcji i przewidzenia, gdzie liniowa funkcjaprzetnie os x

• jestesmy w punkcie x0 - prowadzimy prosta, która przechodzi przez punkt (x0, f (x0)) orazma nachylenie dane przez f ′(x0)

• równanie prostej : F (x) = f (x0) + (x − x0)f ′(x0).

• szukamy jej zera: dostajemy przepis jak poprzednio:

• procedura iteracyjnej poprawy oszacowania zera xn+1 = xn − f (xn)f ′(xn)

• uwaga: dla funkcji liniowej procedura uzyskuje dokładny wynik w jednej iteracji (tempozbieznosci bisekcji w ogóle nie zalezy od zachowania f (x) w okolicach zera).

Bartłomiej Szafran

metoda Newtona-Raphsona

• procedura iteracyjnej poprawy oszacowania zera xn+1 := xn − f (xn)f ′(xn)

Bartłomiej Szafran

metoda Newtona-Raphsona

• V (x)− E = 0, E = −0.6

• f (x) = −e−x2− 1.2 e−(x−2)2

+ 0.6

• f ′(x) = 2 xe−x2− 1.2 (−2 x + 4) e−(x−2)2

• procedura iteracyjnej poprawy oszacowania zera xn+1 := xn − f (xn)f ′(xn)

Bartłomiej Szafran

metoda Newtona-Raphsona wyniki

• f (x) = V (x)− E

• f (x) = −e−x2− 1.2 e−(x−2)2

+ 0.6

• f ′(x) = 2 xe−x2− 1.2 (−2 x + 4) e−(x−2)2

•-0.65

-0.6

-0.55

-0.5

-0.45

-0.4

-0.35

2.8 2.85 2.9 2.95 3 3.05 3.1

V

x

1

2345678910

Bartłomiej Szafran

metoda Newtona-Raphsona wyniki

• f (x) = V (x)− E

• f (x) = −e−x2− 1.2 e−(x−2)2

+ 0.6

• f ′(x) = 2 xe−x2− 1.2 (−2 x + 4) e−(x−2)2

-0.60006

-0.60004

-0.60002

-0.6

-0.59998

-0.59996

-0.59994

2.83281 2.83282 2.83283 2.83284 2.83285 2.83286 2.83287 2.83288 2.83289 2.83290

V

x

3

45678910

Bartłomiej Szafran

metoda Newtona-Raphsona wyniki

• f (x) = V (x)− E

• f (x) = −e−x2− 1.2 e−(x−2)2

+ 0.6

• f ′(x) = 2 xe−x2− 1.2 (−2 x + 4) e−(x−2)2

-0.60005

-0.60004

-0.60003

-0.60002

-0.60001

-0.60000

-0.59999

-0.59998

-0.59997

2.83282 2.83283 2.83284 2.83285 2.83286 2.83287 2.83288 2.83289 2.83290

V

x

3

45678910

Bartłomiej Szafran

metoda Newtona-Raphsona a bisekcji - porównanie tempazbieznosci

•0.00000001

0.00000010

0.00000100

0.00001000

0.00010000

0.00100000

0.01000000

0.10000000

1.00000000

1 1.5 2 2.5 3 3.5 4

|f(x)|

i• metoda Newtona

•0.00000001

0.00000010

0.00000100

0.00001000

0.00010000

0.00100000

0.01000000

0.10000000

1.00000000

0 5 10 15 20

|f(x)|

i• metoda bisekcji

Bartłomiej Szafran

metoda Newtona-Raphsona

• zbieznosc procedury, x - punkt startowy, x3 - punkt osiagniety w trzeciej iteracji

• xn+1 = xn − f (xn)/f ′(xn)

•-2

-1

0

1

2

3

4

-2 -1 0 1 2 3 4

f(x)

x3

f(x3)

x

"fort.3"u1:3"fort.3"u1:2"fort.3"u1:4

• zbieznosc ograniczona do okolicy zera - styczna moze wyprowadzic iteracje do ±∞• powodzenie metody zalezy od punktu startowego. bisekcja nie moze sie nie powiesc.

• rekomendowana metoda: zblizyc sie do okolic zera metoda bisekcji. dokładne połozenieokreslic metoda Newtona.

Bartłomiej Szafran

metoda Newtona-Raphsona

• xn+1 = xn − f (xn)/f ′(xn)

• jesli pochodna nie jest dana w formie analitycznej (sama funkcja nie musi byc) mozemyzastosowac przyblizenie pochodnej.

• punkt zbieznosci iteracji nie moze ulec zmianie

• pochodna f ′(x) ' f (x+dx)−f (x−dx)2dx

Bartłomiej Szafran

metoda Newtona-Raphsona

• zbieznosc - wartosci w kolejnych iteracjach, z ilorazem róznicowym zamiast pochodnej,start od x = 3

• dokładna pochodna

•0.00000001

0.00000010

0.00000100

0.00001000

0.00010000

0.00100000

0.01000000

0.10000000

1.00000000

1 1.5 2 2.5 3 3.5 4

|f(x)|

i• dx = 0.1

•0.00000001

0.00000010

0.00000100

0.00001000

0.00010000

0.00100000

0.01000000

0.10000000

1.00000000

1 1.5 2 2.5 3 3.5 4 4.5 5

|f(x)|

i

• dx = 0.5

•0.00000001

0.00000010

0.00000100

0.00001000

0.00010000

0.00100000

0.01000000

0.10000000

1.00000000

1 2 3 4 5 6 7 8 9|f(x)|

i

Bartłomiej Szafran

metoda Newtona dla wykonania kroku w niejawnym schemacieEulera

• dvdt = f (t, v)

• vn+1 = vn + f (tn+1, vn+1)∆t

• F (vn+1) ≡ vn + f (tn+1, vn+1)∆t − vn+1

• F (vn+1) = 0

• vµ+1n+1 = vµn+1 −

F (vµn+1)

F ′(vµn+1)

• Metoda Newtona dla niejawnego Eulera:

• vµ+1n+1 = vµn+1 −

vn + f (tn+1, vµn+1)∆t − vµn+1

f ′v (tn+1, vµn+1)∆t − 1

Bartłomiej Szafran

metoda Newtona dla wykonania kroku w niejawnym schemacieEulera

• dvdt = f (t, v) = −αv

• v1 = 1, α = 200, dt = 0.01

• vµ+1n+1 = vµn+1 −

vn + f (tn+1, vµn+1)∆t − vµn+1

f ′v (tn+1, vµn+1)∆t − 1

• pochodna w mianowniku z ilorazu róznicowego

µ vµ22 0.333333333 0.333333334 0.33333333

• zbieznosc w jednej iteracji, bo prawa strona jest liniowafunkcja v

Bartłomiej Szafran

• dvdt = f (t, v) = −αv

• v1 = 1, α = 2000 , dt = 0.01

• vµ+1n+1 = vµn+1 −

vn + f (tn+1, vµn+1)∆t − vµn+1

f ′v (tn+1, vµn+1)∆t − 1

• pochodna w mianowniku z ilorazu róznicowego

µ vµ22 0.0476193 0.0476194 0.047619

• zbieznosc w jednej iteracji, bo prawa strona jest liniowafunkcja v , niezaleznie od α

Bartłomiej Szafran

niejawny Euler dla problemu nieliniowego

• dvdt = −αv2

• v1 = 1, α = 2000 , dt = 0.01

• vµ+1n+1 = vµn+1 −

vn + f (tn+1, vµn+1)∆t − vµn+1

f ′v (tn+1, vµn+1)∆t − 1

• pochodna w mianowniku z ilorazu róznicowego

µ vµ22 0.51213 0.29074 0.21305 0.20036 0.2000

• dla problemu nieliniowego kilka iteracji potrzebne zbieznoscwymaga kilku iteracji

Bartłomiej Szafran

niejawny Euler dla układu równan

• układ równan rózniczkowych

• dxdt = v

• dvdt = − 1

mdVdx

• przepis metody

• xn+1 = xn + ∆tvn+1

• vn+1 = vn + ∆t(− 1

mdVdx |xn+1

− αvn+1

)• układ równan nieliniowych:

• F1(xn+1, vn+1) = xn+1 − xn − ∆tvn+1

• F2(xn+1, vn+1) = vn+1 − vn − ∆t(− 1

mdVdx |xn+1

− αvn+1

)• jak rozwiazac ?

Bartłomiej Szafran

układy równan nieliniowych: metoda Newtona

• f1(x, y) = 0

• f2(x, y) = 0

• linearyzacja wokół (x0, y0) - przyblizonego rozwiazania.

• chcemy znalezc poprawione rozwiazanie:

• f1(x, y) ' f1(x0, y0) + (x − x0) ∂f1∂x |x0,y0 + (y − y0) ∂f1

∂y |x0,y0 = 0

• f2(x, y) ' f2(x0, y0) + (x − x0) ∂f2∂x |x0,y0 + (y − y0) ∂f2

∂y |x0,y0 = 0

• albo

• ∆x ∂f1∂x |x0,y0 + ∆y ∂f1

∂y |x0,y0 = −f1(x0, y0)

• ∆x ∂f2∂x |x0,y0 + ∆y ∂f2

∂y |x0,y0 = −f2(x0, y0)

• mamy wiec układ równan liniowych

Bartłomiej Szafran

układy równan nieliniowych: metoda Newtona

• ∆x ∂f1∂x |x0,y0 + ∆y ∂f1

∂y |x0,y0 = −f1(x0, y0)

• ∆x ∂f2∂x |x0,y0 + ∆y ∂f2

∂y |x0,y0 = −f2(x0, y0)

• wersja macierzowa

• (∂f1∂x

∂f1∂y

∂f2∂x

∂f2∂y

)|x0,y0

(∆x∆y

)= −

(f1(x0, y0)f2(x0, y0)

)(1)

• dla wiekszej liczby równan podobnie

• po rozwiazaniu: x := x + ∆x, y := y + ∆y , iteracja az do zbieznosci (az 0 po prawejstronie URL)

• macierz w układzie (1) - macierz Jakobiego

• dla porównania metoda Newtona w wersji skalarnej

•dfdx|x0 ∆x = −f (x0) (2)

Bartłomiej Szafran

układy równan nieliniowych: metoda Newtona

• przykład, szukamy minimum przez zera pochodnych czastkowych

• W (x, y) =[

(x − 2)2 + 5(y − 2)2]m

• f1(x, y) = ∂W∂x , f2(x, y) = ∂W

∂y

• x0 = −1, y0 = 5

• (∂f1∂x

∂f1∂y

∂f2∂x

∂f2∂y

)|x0,y0

(∆x∆y

)= −

(f1(x0, y0)f2(x0, y0)

)(3)

• x0 := x0 + ∆x• y0 := y0 + ∆y• A(1,1)=(f1(x0+dx,y0)-f1(x0-dx,y0))/2/dx• A(1,2)=(f1(x0,y0+dx)-f1(x0,y0-dx))/2/dx• A(2,1)=(f2(x0+dx,y0)-f2(x0-dx,y0))/2/dx• A(2,2)=(f2(x0,y0+dx)-f2(x0,y0-dx))/2/dx• b(1,1)=-f1(x0,y0)• b(2,1)=-f2(x0,y0)• CALL DGESV(2,1,A,2,IPIV,B,2,INFO)• x0=x0+b(1,1)• y0=y0+b(2,1)

• zapis w fortranie• DGESV -procedura biblioteki Lapack do

rozwiazywania URL metoda eliminacji Gaussa (D -dla podwójnej precyzji)

• DGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO)

Bartłomiej Szafran

układy równan nieliniowych: metoda Newtona

• przykład, szukamy minimum przez zera pochodnych czastkowych

• W (x, y) =[

(x − 2)2 + 5(y − 2)2]m

• (∂f1∂x

∂f1∂y

∂f2∂x

∂f2∂y

)|x0,y0

(∆x∆y

)= −

(f1(x0, y0)f2(x0, y0)

)(4)

• m = 1

• x0 = −1, y0 = 5

• iteracja 1: x0 = 2, y0 = 2

• prawa strona 0

• rozwiazanie na ∆x = ∆y = 0

• dla m = 1 problem jest liniowy i rozwiazanie znajdywane jest w jednej iteracji

Bartłomiej Szafran

układy równan nieliniowych: metoda Newtona

• przykład, szukamy minimum przez zera pochodnych czastkowych

• W (x, y) =[

(x − 2)2 + 5(y − 2)2]m

• (∂f1∂x

∂f1∂y

∂f2∂x

∂f2∂y

)|x0,y0

(∆x∆y

)= −

(f1(x0, y0)f2(x0, y0)

)(5)

• m = 1.1

• x0 = −1, y0 = 5

• kolejne iteracje

• 1.500000394866 2.499998129975 1

• 1.916669647455 2.083321215826 2

• 1.986129145712 2.013815760162 3

• 1.997783537491 2.001838719405 4

• 1.999927331282 2.000008482681 5

• 1.999999999350 2.000000000052 6

• 2.000000000000 2.000000000000 7

Bartłomiej Szafran

układy równan nieliniowych: metoda Newtona

• przykład, szukamy minimum przez zera pochodnych czastkowych

• W (x, y) =[

(x − 2)2 + 5(y − 2)2]m

• (∂f1∂x

∂f1∂y

∂f2∂x

∂f2∂y

)|x0,y0

(∆x∆y

)= −

(f1(x0, y0)f2(x0, y0)

)(6)

• m = 1.1• x0 = −1, y0 = 5• kolejne iteracje• 1.499999356312 2.500000155948 1• 1.916666542404 2.083333374075 2• 1.986111087431 2.013888887976 3• 1.997685179557 2.002314752344 4• 1.999614189268 2.000385415209 5• 1.999935673622 2.000061922966 6• 1.999993872899 2.000005019027 7• 1.999999731925 2.000000215575 8• 1.999999988634 2.000000009139 9• 1.999999999518 2.000000000387 10• 1.999999999980 2.000000000016 11• 1.999999999999 2.000000000001 12• 2.000000000000 2.000000000000 13

Bartłomiej Szafran

układy równan nieliniowych: metoda Newtona

• przykład, szukamy minimum przez zera pochodnych czastkowych

• W (x, y) =[

(x − 2)2 + 5(y − 2)2]m

• (∂f1∂x

∂f1∂y

∂f2∂x

∂f2∂y

)|x0,y0

(∆x∆y

)= −

(f1(x0, y0)f2(x0, y0)

)(7)

• m = 2• x0 = −1, y0 = 5• kolejne iteracje• -0.000006994044 3.999992181766 1• 0.666651510561 3.333316393392 2• 1.111085267360 2.888860004025 3• 1.407366569194 2.592546948859 4• 1.604875633793 2.394991719098 5• 1.736530641875 2.263268444557 6• 1.824274105496 2.175423250990 7• 1.882729971647 2.116815289242 8• 1.921641008955 2.077676621811 9• 1.947492820829 2.051484331730 10• 1.964595579855 2.033873729959 11• 1.975805570047 2.021912335928 12• 1.983015500820 2.013617574155 13• 1.987541799822 2.007659911907 14• 1.990672912459 2.003316707631 15• 1.994209620579 2.000776327964 16• 1.997936857455 2.000070449518 17• 1.999843222727 2.000001112630 18• 1.999999907312 2.000000000221 19• 1.999999999991 2.000000000000 20• 2.000000000000 2.000000000000 21

Bartłomiej Szafran

niejawny Euler dla problemu oscylatora anharmonicznego

• xn+1 = xn + ∆tvn+1

• vn+1 = vn + ∆t(− 1

mdVdx |xn+1

− αvn+1

)• układ równan nieliniowych:

• F1(xn+1, vn+1) = xn+1 − xn − ∆tvn+1

• F2(xn+1, vn+1) = vn+1 − vn − ∆t(− 1

mdVdx |xn+1

− αvn+1

)• (

∂F1∂xn+1

∂F1∂vn+1

∂F2∂xn+1

∂F2∂vn+1

)|xµ

n+1,vµ

n+1

(xµ+1

n+1 − xµn+1vµ+1

n+1 − vµn+1

)= −

(F1(xµn+1, v

µn+1)

F2(xµn+1, vµn+1)

)(8)

Bartłomiej Szafran

niejawny Euler dla problemu oscylatora anharmonicznego

• xn+1 = xn + ∆tvn+1

• vn+1 = vn + ∆t(− 1

mdVdx |xn+1

− αvn+1

)• układ równan nieliniowych:

• F1(xn+1, vn+1) = xn+1 − xn − ∆tvn+1

• F2(xn+1, vn+1) = vn+1 − vn − ∆t(− 1

mdVdx |xn+1

− αvn+1

)• (

∂F1∂xn+1

∂F1∂vn+1

∂F2∂xn+1

∂F2∂vn+1

)|xµ

n+1,vµ

n+1

(xµ+1

n+1 − xµn+1vµ+1

n+1 − vµn+1

)= −

(F1(xµn+1, v

µn+1)

F2(xµn+1, vµn+1)

)(9)

(1 −∆t

∆tm

d2Vdx2 |xµ

n+1

1 + ∆tα

)|xµ

n+1,vµ

n+1

(xµ+1

n+1 − xµn+1vµ+1

n+1 − vµn+1

)= −

(F1(xµn+1, v

µn+1)

F2(xµn+1, vµn+1)

)(10)

Bartłomiej Szafran

jawny schemat Eulera do równania Newtona

• jawny (α = 0)• T = 100 s, ∆t = .01

•-1.5

-1

-0.5

0

0.5

1

1.5

-1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5

v[m

/s]

x[m]

"fort.1" u 2:3

• ∆t = .001

• -1.5

-1

-0.5

0

0.5

1

1.5

-1 -0.5 0 0.5 1 1.5 2 2.5 3

"fort.1" u 2:3

∆t = .0001

• -1.5

-1

-0.5

0

0.5

1

1.5

-1 -0.5 0 0.5 1 1.5 2 2.5 3

"fort.1" u 2:3

• niejawny (α = 0) - numeryczna dysypacja• T = 100 s, ∆t = .01

•• ∆t = .001

• ∆t = .0001

Bartłomiej Szafran

niejawny Euler iteracja pierwszego kroku

• α = 0• dt=0.01• 2.832880020142 0.000000000000• 2.832779943898 -0.010007624574• 2.832779943900 -0.010007624349•• dt=0.1• 2.832880020142 0.000000000000• 2.822825171371 -0.100548486206• 2.822826802654 -0.100532173375• 2.822826802653 -0.100532173385

• α = 201• dt=.1• 2.832880020142 0.000000000000• 2.832405640967 -0.004743791674• 2.832405641151 -0.004743789832• jawny Euler eksplodował nawet przy

dt=0.01• bariera bezwzglednej stabilnosci pokonana

Bartłomiej Szafran

zródło

do 15 iter=1,100 0011 continueA(1,1)=1A(1,2)=-dtA(2,1)=dt/xm*(fu(x+dx)+fu(x-dx)-2*fu(x))/dx**2A(2,2)=1+dt*alphab(1,1)=-F1(x,v)b(2,1)=-F2(x,v)write(17,13) x,v,f1(x,v),f2(x,v)CALL DGESV(2,1,A,2,IPIV,B,2,INFO)x=x+b(1,1)v=v+b(2,1)li=li+1if(li.lt.5) goto11xo=xvo=vwrite(18,13) iter*dt,x,v,fu(x)+xm*v**2/215 continue12 format (2f20.12,1i,1f20.12)13 format (100f20.12)end

function fu(x)implicit double precision(a-h,o-z)fu=-exp(-x*x)-1.2*exp(-(x-2)*(x-2))end

function f1(x,v)implicit double precision(a-h,o-z)common/xovo/xo,vo,dt,xm,alpha,dxf1=x-xo-dt*vend

function f2(x,v)implicit double precision(a-h,o-z)common/xovo/xo,vo,dt,xm,alpha,dxf2=v-vo-dt*(-1/xm*(fu(x+dx)-fu(x-dx))/2/dx-alpha*v)end

Bartłomiej Szafran

Schemat Eulera jako wzór prostokatów

• równanie rózniczkowe 1 rzedu w t : df (t)dt = P(t, f )

• f (t+dt)−f (x,t)dt = P(t, f ) - jawny schemat Eulera

• f (t+dt)−f (x,t)dt = P(t + dt, f ) - niejawny schemat Eulera

• przypadek trywialny: df (x,t)dt = P(t)

• f (x, t + dt) = f (x, t) +∫ t+dt

tP(t′)dt′

• przepis jawnego Eulera jesli funkcje podcałkowa przyblizymyprzez P(t)

• f (x, t + dt) ' f (x, t) + P(t)dt• wzór dokładnie całkuje funkcje stała, w funkcji liniowej sie

myli (pomija ja), tak ze bład jest rzedu całki z funkcji liniowej,czyli O(dt2):

• f (x, t + dt) = f (x, t) + P(t)dt + O(dt2)

inin

Bartłomiej Szafran

Wzór trapezów

• dokładniejsza formuła: wzór trapezów

• f (x, t + dt) = f (x, t) +∫ t+dt

tP(t′)dt′

• całka pod krzywa na podstawie wzoru napole trapezu:

• f (x, t + dt) ' f (x, t) + dt P(t)+P(t+dt)2

• wzór dokładnie całkuje funkcje liniowa, wfunkcji kwadratowej sie myli

• f (x, t + dt) = f (x, t) +P(t)+P(t+dt)

2 dt + O(dt3) •• dokładniejszy w czasie o jeden rzad.• implementacja dla równan Newtona...

Bartłomiej Szafran

schemat trapezów dla układu równan

• xn+1 = xn + ∆t2 (vn+1 + vn)

• vn+1 = vn + ∆t2

(− 1

mdVdx |xn+1

− αvn+1 − 1m

dVdx |xn − αvn

)• układ równan nieliniowych:

• F1(xn+1, vn+1) = xn+1 − xn − ∆t2 vn+1 − ∆t

2 vn

• F2(xn+1, vn+1) = vn+1 − vn − ∆t2

(− 1

mdVdx |xn+1

− αvn+1

)− ∆t

2

(− 1

mdVdx |xn − αvn

)• (

∂F1∂xn+1

∂F1∂vn+1

∂F2∂xn+1

∂F2∂vn+1

)|xµ

n+1,vµ

n+1

(xµ+1

n+1 − xµn+1vµ+1

n+1 − vµn+1

)= −

(F1(xµn+1, v

µn+1)

F2(xµn+1, vµn+1)

)(11)

(1 −∆t

2∆t2m

d2Vdx2 |xµ

n+1

1 + ∆t2 α

)|xµ

n+1,vµ

n+1

(xµ+1

n+1 − xµn+1vµ+1

n+1 − vµn+1

)= −

(F1(xµn+1, v

µn+1)

F2(xµn+1, vµn+1)

)(12)

Bartłomiej Szafran

schemat trapezów

• wzór trapezów (α = 0)• T = 100 s, ∆t = .01

• -1.5

-1

-0.5

0

0.5

1

1.5

-1 -0.5 0 0.5 1 1.5 2 2.5 3

"fort.18"u2:3

• ∆t = .1

• -1.5

-1

-0.5

0

0.5

1

1.5

-1 -0.5 0 0.5 1 1.5 2 2.5 3

"fort.18"u2:3

∆t = .2

• -1.5

-1

-0.5

0

0.5

1

1.5

-1 -0.5 0 0.5 1 1.5 2 2.5 3

"fort.18"u2:3

• niejawny Euler (α = 0)• T = 100 s, ∆t = .01

•• ∆t = .001

• ∆t = .0001

Bartłomiej Szafran

schemat trapezów i Eulera: zachowanie energii

• wzór trapezów (dt=0.2, 0.1, .01)

•-0.62

-0.6

-0.58

-0.56

-0.54

-0.52

-0.5

-0.48

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

E[J]

t[s]

"dtk1.dat"u1:4"dtk2.dat"u1:4

"dtk01.dat"u1:4

• wzór trapezów (dt=0.2, 0.1, .01)

•-0.60003

-0.60003

-0.60002

-0.60002

-0.60001

-0.60001

-0.60000

-0.60000

-0.59999

0 10 20 30 40 50 60 70 80 90 100

E[J]

t[s]

"dtk01.dat"u1:4

• niejawny Euler, wzór trapezów (dt=0.01,.001) (α = 0 na wszystkich 3 rysunkach)

•-0.9

-0.85

-0.8

-0.75

-0.7

-0.65

-0.6

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

E[J]

t[s]

"dtk001.dat"u1:4"dtk01.dat"u1:4

• tempo zmiany energii dla Eulera przydt = 0.001 odpowiada schematowitrapezów przy dt = 0.2.

• dla schematu trapezów zmiana energii przydt = 0.01 zaniedbywalna

Bartłomiej Szafran

Zrodło dla wzoru trapezów

do 15 iter=1,1000011 continueA(1,1)=1A(1,2)=-dt/2A(2,1)=dt/xm*(fu(x+dx)+fu(x-dx)-2*fu(x))/dx**2/2A(2,2)=1+dt*alpha/2b(1,1)=-F1(x,v)b(2,1)=-F2(x,v)CALL DGESV(2,1,A,2,IPIV,B,2,INFO)x=x+b(1,1)v=v+b(2,1)li=li+1if(li.lt.5) goto11xo=xvo=vwrite(18,13) iter*dt,x,v,fu(x)+xm*v**2/215 continue12 format (2f20.12,1i,1f20.12)13 format (100f20.12)end

function fu(x)implicit double precision(a-h,o-z)fu=-exp(-x*x)-1.2*exp(-(x-2)*(x-2))end

function f1(x,v)implicit double precision(a-h,o-z)common/xovo/xo,vo,dt,xm,alpha,dxf1=x-xo-dt*v/2-dt*vo/2end

function f2(x,v)implicit double precision(a-h,o-z)common/xovo/xo,vo,dt,xm,alpha,dxf2=v-vo-dt*(-1/xm*(fu(x+dx)-fu(x-dx))/2/dx-alpha*v)/2>-dt*(-1/xm*(fu(xo+dx)-fu(xo-dx))/2/dx-alpha*vo)/2end

Bartłomiej Szafran

Arytmetyka zmiennoprzecinkowa: -1z × m × 2w

32-bitowa pojedyncza precyzja:rozmiar nazwa1 bit znak (z)8 bits wykładnik (w)23 bits mantysa (m)

mantysa w binarnym zapisie m=10101 …oznacza m=1*20 +0*2-1+1*2-2 +0*2-3 +1*2-4+...

Wykładnik: w=28=256 wartości. Kodowane z tzw. Bias -127,tak, że 2w w zakresie od 2-127 do 2127 , w przybliżeniu 10-38 do 1038

Liczby zmiennoprzecinkowe są położone dyskretnie na osi x. Liczby rzeczywiste reprezentowane są przez zmiennoprzecinkowe w przybliżeniu, z błędem zaokrągleń.

zbieżność metody różnicowej a błędy zaokrągleń (skończona dokładność arytmetyki zmiennoprzecinkowej)

Arytmetyka zmiennoprzecinkowa:

-1z × m × 2w

rozmiar nazwa1 bit znak (z)8 bits wykładnik (w)23 bits mantysa (m)

błędy zaokrągleń a zbieżność

pojedyncza precyzja: 32 bitypodwójna : 64 bity

arytmetyka 21 – bitowa

do tej pory zakładaliśmy, że błędy zaokrągleń nie ma (że arytmetyka dokładna)arytmetyka zmiennoprzecinkowa nie jest dokładna.

błąd minimalny

zmniejszanie kroku czasowego nie poprawi jużwyniku

błędy zaokrągleń a metody różnicowe

rozwiązanie równania różniczkowego w chwili tn

rozwiązanie równania różnicowego z dokładną arytmetyką

rozwiązanie uzyskane z arytmetyką skończonej dokładności

błąd całkowity

błąd globalny (jak wcześniej zdefiniowano)

błąd zaokrąglenia

oszacowanie od góry błędu całkowitego

błąd zaokrągleń rzędu liczby wykonanych kroków, czyli 1/dt

błąd globalny dla schematu Eulera

błędy zaokrągleń a metody różnicowe

d t

oszacowanie od góry błędu całkowitego

optymalny krok czasowy

remedium: używać się schematów o wyższym rzędzie zbieżności niż pierwszy.Poniżej pewnego dt nie warto schodzić – nie tylko ze względu na czas obliczeń, ale i dokładność

błędy zaokrągleń dają o sobie znać gdy wykonamy zbyt wiele kroków

dt

błąd

Definicja: Metody różnicowa jest zbieżna jeśli błąd globalny

znika do zera w chwili T gdy z t do 0

błąd zaokrągleń

błąd globalny dla schematu Eulera

błędy zaokrągleń a metody różnicowe

d t

oszacowanie od góry błędu całkowitego

optymalny krok czasowy

błąd całkowity

błąd globalny

błąd zaokrąglenia

uwaga:definicja zbieżnościdotyczy błędu globalnegoa nie całkowitego

stabilność bezwzględną wzoru trapezów

problem modelowy:WP: u(t=0)=1. rozwiązanie u=exp(t)

zbiór punktów na p. Gaussa, które są nie dalej od (-2,0)niż od (0,2)

Wniosek: dla <0 wzór trapezów bezwzględnie stabilny dla dowolnego kroku czasowego ! A-stabilny

druga bariera Dahlquista: maksymalny rząd dokładności metody A-stabilnej =2schemat trapezów jest najdokładniejszą metodą A-stabilną spośród liniowych metodwielokrokowychImplementowana np. w SPICE.

t Re()

t Im ()

region bzwz. stabilności wzoru trapezów

t Re()

t Im ()

region bzwz. stabilności Eulera:koło o promieniu 1i środku (-1,0)

t Re()

t Im ()

region bzwz. stabilności wzoru trapezów

t Re()

t Im ()

1

-1

niejawna metoda Eulera:region bezwzględnej stabilności