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