Z52: Algebra liniowa Zagadnienie: Zastosowania algebry

Transkrypt

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry
Z52: Algebra liniowa
Zagadnienie: Zastosowania algebry liniowej
Zadanie: Operatory różniczkowania, zagadnienie brzegowe.
Dyskretne operatory różniczkowania
Numeryczne obliczanie pochodnych oraz rozwiązywanie wszelkiego typu równań różniczkowych wymaga przedstawienia pochodnych i operatorów
różniczkowych w postaci dyskretnej. Mimo, że pojęcie pochodnej jest stosunkowo proste, to może mieć wiele przedstawień dyskretnych i umiejętne z
nich korzystanie może znacznie poprawić efektywność obliczeń komputerowych.
Rozpoczniemy od najprostszego problemu. Mamy zadaną funkcję f : R →
R i chcemy wyznaczyć jej pochodną w jakimś punkcie x. Wprost z definicji
pochodnej otrzymujemy wzór przybliżony
f 0 (x) ≈
f (x + h) − f (x)
.
h
Podstawowe pytanie jakie się tu pojawia, to jaki jest błąd tego przybliżenia?
Aby ten błąd wyznaczyć skorzystamy ze wzoru Taylora:
f (x + h) = f (x) + f 0 (x)h +
f 00 (x) 2
h + ....
2
Stąd błąd przybliżenia w poprzednim wzorze wynosi
f 00 (x)
h + ...,
2
a więc jest rzędu h. Okazuje się, że pochodną można liczyć o wiele dokładniej
korzystając z innych wzorów, na przykład ze wzoru
f 0 (x) ≈
f (x + h) − f (x − h)
.
2h
Znowu skorzystamy ze wzoru Taylora:
f (x + h) = f (x) + f 0 (x)h +
f 00 (x) 2 f 000 (x) 3
h +
h + ...,
2
3!
f (x − h) = f (x) − f 0 (x)h +
f 00 (x) 2 f 000 (x) 3
h −
h + ....
2
3!
1
Wtedy
f (x + h) − f (x − h)
f 000 (x) 2
= f 0 (x) +
h + ...,
2h
3!
a więc błąd przybliżenia jest rzędu h2 . Oba wzory przybliżone pozwalają
nam wyrazić pochodną f 0 (x) z dokładnością zależną od h za pomocą kombinacji liniowej wartości funkcji f w pewnych punktach.
Do zagadnienia wyznaczania dyskretnej wersji pochodnych wyższych rzędów i innych operatorów różniczkowych powrócimy za chwilę, a teraz pokażemy jak mozna obie definicje pochodnej dyskretnej stosować do rozwiązywania równań i układów równań rózniczkowych metodą łamanych Eulera.
Rozważamy równanie
x0 = f (t, x),
x(t0 ) = x0 ,
gdzie f : R × Rn → Rn . Pokażemy, jak znaleźć przybliżoną wartość rozwiązania x w przedziale [t0 , t]. W tym celu dzielimy przedział [t0 , t] na nprzedziałów [tk−1 , tk ] przyjmując h = (t − t0 )/n, tk = t0 + kh, k = 1, . . . , n.
Metoda łamanych Eulera jest oparta na pierwszym wzorze na pochodną
przybliżoną funkcji x(t), a więc
x0 (t) =
x(t + h) − x(t)
.
h
Z powyższego otrzymujemy
x(tk+1 ) − x(tk ) ≈ x0 (tk )h = f (tk , x(tk ))h.
Jeżeli xk = x(tk ), to rozwiązanie w kolejnych punktach wyraża się wzorem
rekurencyjnym
xk+1 = xk + f (tk , xk )h,
k = 0, . . . , n − 1.
Jeżeli zastosujemy drugi wzór na pochodną x0 (t), a więc
x0 (tk ) =
x(tk+1 ) − x(tk−1 )
,
2h
to
xk+1 = xk−1 + 2f (tk , xk )h.
2
Zauważmy, że ostatni wzór nie wystarcza nam do obliczenia x1 , bo musielibyśmy znać wartość wyrażenia x(t0 − h). W tym przypadku możemy
skorzystać z pierwszego wzoru x1 = x0 + f (t0 , x0 )h.
W przypadku równań różniczkowych wyższych rzędów są możliwe dwie
metody postępowania. Pierwsza polega na tym, że równania wyższych rzędów zastępujemy odpowiadającymi im układami równań rzędu pierwszego,
a więc można stosować opisaną wyżej metodę Eulera. Druga metoda polega na zastosowaniu wzorów przybliżonych na pochodne wyższych rzędów.
Wprost z definicji pochodnych wyższych rzędów otrzymujemy następujące
wzory przybliżone
n
n
1 X
(−1)n−i
f (x + hi).
(x) ≈ n
i
h i=0
!
f
(n)
Należy podkreślić, że można znaleźć wzory lepiej przybliżające pochodną
f (n) (x). W szczególności, wzór
f 00 (x) ≈
f (x + h) + f (x − h) − 2f (x)
h2
lepiej przybliża f 00 (x), choć nie zawsze można go stosować przy rozwiązywaniu równań różniczkowych.
Pochodne cząstkowe pierwszego rzędu, to nic innego jak zwykłe pochodne przy ustalonych pozostałych współrzędnych zatem wzory przybliżone są
następujące
u(x + h, y) − u(x − h, y)
∂u
(x, y) ≈
,
∂x
2h
∂u
u(x, y + h) − u(x, y − h)
(x, y) ≈
.
∂x
2h
Również wypisanie wzorów na wyższe pochodne cząstkowe nie sprawia
większych kłopotów. W szczególności
∆u =
∂2u
∂2u
(x,
y)
+
(x, y),
∂x2
∂y 2
gdzie
∂2u
u(x + h1 , y) − 2u(x, y) + u(x − h1 , y)
(x, y) ≈
,
2
∂x
h21
∂2u
u(x, y + h2 ) − 2u(x, y) + u(x, y − h2 )
(x, y) ≈
,
∂y 2
h22
3
gdzie h1 i h2 są przyrostami odpowiednio x i y.
Największą trudność w numerycznym rozwiązywaniu równań różniczkowych sprawiają zagadnienia brzegowe. Po pierwsze na brzegu obszaru należy
dobrać odpowiednie wzory na pochodne. Po drugie, zwykła metoda rekurencyjna, taka jak metoda łamanych Eulera, nie wystarcza do wyznaczenia
rozwiązania. Rozważmy na przykład równanie
x00 (t) = f (x(t))
z warunkami brzegowymi x(0) = x0 , x(1) = x1 . Aby rozwiązać nasze równanie metodą łamanych Eulera należy oprócz wartości funkcji x w zerze
również znać wartość jej pochodnej w zerze. Można postąpić w ten sposób, że przyjmujemy, że x0 (0) = c, gdzie c jest pewną stałą rzeczywistą,
a następnie rozwiązujemy równanie metodą łamanych Eulera. Na koniec,
korzystając z warunku brzegowego x(1) = x1 wyznaczamy c. W przypadku
równań cząstkowych rozwiązywanie zagadnień brzegowych jest dość trudne i
jest kilka istotnie różnych technik numerycznych ich rozwiązywania od algebraicznych, poprzez wariacyjne do metod probabilistycznych (metoda Monte
Carlo).
Operatory teorii pola
Poznamy teraz kilka operatorów różniczkowych występujących w fizyce i
teorii całki. Wszystkie używane przez nas funkcje będą określone w pewnym
podzbiorze otwartym U ⊂ Rn .
Niech f : U → R i f ma pochodne cząstkowe pierwszego rzędu. Operator
określony wzorem
h ∂f ∂f
∂f i
,
,···,
grad f =
∂x1 ∂x2
∂xn
nazywamy gradientem funkcji f . Niech f : U → R i f ma drugie pochodne
2
∂2f
cząstkowe ∂∂xf2 , . . ., ∂x
2 w U . Wtedy operator ∆ określony wzorem
1
n
∆f =
∂2f
∂2f
∂2f
+
+ ... + 2
2
2
∂xn
∂x1
∂x2
nazywamy operatorem Laplace’a. Na przykład, jeżeli f (x, y) = ln(x2 + y 2 ),
to
∂f
2x
∂f
2y
= 2
= 2
i
,
2
∂x
x +y
∂y
x + y2
4
więc
∆f =
∂2f
∂2f
2(x2 + y 2 ) − 4x2 2(x2 + y 2 ) − 4y 2
+
=
+
= 0.
∂x2
∂y 2
(x2 + y 2 )2
(x2 + y 2 )2
Niech F: U → Rn . Można przyjąć, że odwzorowanie F przyporządkowuje
każdemu punktowi x ∈ U wektor F(x) o początku w punkcie x i dlatego F
będziemy nazywać polem wektorowym. Operator div określony wzorem
div F =
∂F1
∂Fn
+ ... +
∂x1
∂xn
nazywamy dywergencją pola wektorowego F. Dywergencję i gradient funkcji
można zapisać używając symbolicznego operatora nabla:
∇=
h ∂
∂x1
∂
∂ i
,···,
.
∂x2
∂xn
,
Mianowicie
grad f = ∇f,
div F = ∇ · F.
W przypadku funkcji F: U → R3 , gdzie U ⊂ R3 , rotację F określamy
wzorem
h ∂F
∂F2 ∂F1 ∂F3 ∂F2 ∂F1 i
3
rot F =
−
,
−
,
−
.
∂y
∂z ∂z
∂x ∂x
∂y
Rotację rot F można również zdefiniować korzystając z wyznacznika:
rot F = i
j
∂
∂x
∂
∂y
F1 F2
k ,
F3 ∂
∂z
gdzie i, j, k są wersorami osi Ox, Oy i Oz, tzn. i = [1, 0, 0], j = [0, 1, 0],
k = [0, 0, 1]. Używając operatora nabla i iloczynu wektorowego wzór ten
możemy zapisać w postaci
rot F = ∇ × F.
Między dywergencją, rotacją, gradientem i operatorem Laplace’a są następujące zależności
div (rot F) = 0,
rot (grad u) = 0,
5
div (grad u) = ∆u,
div (uF) = u div F + F · grad u.
Ekstrema funkcji
Następujące twierdzenie podaje warunek wystarczający istnienia ekstremum lokalnego funkcji dwóch zmiennych. Niech f będzie funkcją określoną
w otoczeniu punktu P ∈ R2 . Zakładamy, że funkcja f ma ciągłe drugie
pochodne cząstkowe w punkcie P oraz
∂f
∂f
(P ) =
(P ) = 0.
∂x
∂y
Niech
W = ∂2f
∂x2 (P )
∂2f
∂x∂y (P )
∂2f
(P
)
∂x∂y
.
∂2f
(P
)
2
∂y
Jeżeli W > 0, to funkcja f ma w punkcie P silne ekstremum lokalne:
2
gdy ∂∂xf2 (P ) > 0 , to jest to minimum,
2
gdy ∂∂xf2 (P ) < 0 , to jest to maksimum.
Jeżeli W < 0, to funkcja f nie ma w punkcie P ekstremum.
6