WDMNM 5 - Calkowanie i rozniczkowanie

Transkrypt

WDMNM 5 - Calkowanie i rozniczkowanie
5. CAŁKOWANIE I RÓŻNICZKOWANIE FUNKCJI
5.1. Przykład wprowadzający
Dane są funkcje
f ( x ) = 1 + cos( x ) oraz F ( x ) = x + sin( x ) dla x ∈ [0, 10]
związane zależnościami:
x
F ( x ) = ∫ f (ξ )dξ oraz f ( x ) =
0
dF ( x )
dx
oraz ciąg wartości argumentu x :
xn = n ⋅ h dla n = 0, ..., N
gdzie h = 10 / N , a N jest zadaną liczbą naturalną.
Zadanie numerycznego całkowania
Sformułowanie: wyznaczyć przybliżone wartości F ( xn ) na podstawie f ( xn ), n = 0, ..., N .
Intuicyjne rozwiązanie: F ( xn ) ≅ h ⋅
n −1
∑ f ( xν ) dla n = 1, ..., N .
ν =0
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-1
calkowanie metoda prostokatów dla N=10
12
f(x)
F(x)
estymata F(x)
10
f(x)
8
6
4
2
0
0
2
4
x
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
6
8
10
5-2
calkowanie metoda prostokatów dla N =100
10
f(x)
F(x)
estymata F(x)
9
8
7
f(x)
6
5
4
3
2
1
0
0
2
4
x
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
6
8
10
5-3
calkowanie metoda prostokatów dla N =1000
10
f(x)
F(x)
estymata F(x)
9
8
7
f(x)
6
5
4
3
2
1
0
0
2
4
x
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
6
8
10
5-4
calkowanie metoda prostokatów dla N =100
zaburzenie danych równomierne w [- 0.1,0.1]
10
f(x)
F(x)
estymata F(x)
9
8
7
f(x)
6
5
4
3
2
1
0
0
2
4
x
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
6
8
10
5-5
Wpływ losowych zaburzeń danych na wynik można przeanalizować, modelując te zaburzenia
za pomocą identycznych, niezależnych zmiennych losowych η0 , η1 , ... o zerowej wartości
oczekiwanej i skończonej wariancji σ η2 . Wówczas:
n −1
n −1
n −1
ν =0
ν =0
ν =0
~
F ( xn ) = h ⋅ ∑ [ f ( xν ) + ην ] = h ⋅ ∑ f ( xν ) + h ⋅ ∑ην
co oznacza, że wartość oczekiwana składowej błędu całkowania, spowodowanej losowym
zaburzeniem danych:
n −1
n −1
ν =0
ν =0
~
F ( xn ) − h ⋅ ∑ f ( xν ) = h ⋅ ∑ην
wynosi:
n −1
n −1
⎤
⎡~
⎡ n −1 ⎤
E ⎢ F ( xn ) − h ⋅ ∑ f ( xν )⎥ = E ⎢h ⋅ ∑ην ⎥ = h ⋅ ∑ E[ην ] = 0
⎦
⎣
⎣ ν =0 ⎦
ν =0
ν =0
a jej wariancja:
2
n −1
n −1
⎡⎛ ~
⎡⎛ n −1 ⎞2 ⎤
⎞ ⎤
2
E ⎢⎜⎜ F ( xn ) − h ⋅ ∑ f ( xν )⎟⎟ ⎥ = E ⎢⎜⎜ h ⋅ ∑ην ⎟⎟ ⎥ = h ⋅ ∑ E ην2 = n ⋅ h 2 ⋅ ση2 → 0
⎠ ⎥⎦
ν =0
ν =0
⎣⎢⎝
⎣⎢⎝ ν = 0 ⎠ ⎥⎦
gdy h → 0 .
[ ]
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-6
Zadanie numerycznego różniczkowania
Sformułowanie: wyznaczyć przybliżone wartości f ( xn ) na podstawie F ( xn ), n = 0, ..., N ;
Intuicyjne rozwiązanie: f ( xn ) ≅
F ( xn ) − F ( xn −1 )
dla n = 1, ..., N .
h
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-7
rózniczkowanie metoda Eulera dla N =10
10
9
f(x)
F(x)
estymata f(x)
8
7
f(x)
6
5
4
rózniczkowanie metoda Eulera dla N =10
zaburzenie danych równomierne w [- 0.1,0.1]
10
3
2
8
1
6
0
2
4
x
6
8
f(x)
0
10
4
2
0
-2
0
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
2
4
x
6
8
10
5-8
rózniczkowanie metoda Eulera dla N =100
10
f(x)
F(x)
estymata f(x)
9
8
7
f(x)
6
5
rózniczkowanie metoda Eulera dla N =100
zaburzenie danych równomierne w [- 0.1,0.1]
4
10
3
2
1
0
0
2
4
x
6
8
5
10
0
-5
0
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
2
4
x
6
8
10
5-9
rózniczkowanie metoda Eulera dla N =1000
10
9
f(x)
F(x)
estymata f(x)
8
7
f(x)
6
5
4
rózniczkowanie metoda Eulera dla N =1000
zaburzenie danych równomierne w [- 0.1,0.1]
60
3
2
40
1
0
2
4
x
6
8 20
f(x)
0
10
0
-20
-40
-60
0
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
2
4
x
6
8
10
5-10
Wpływ losowych zaburzeń danych na wynik można przeanalizować, modelując te zaburzenia
za pomocą identycznych, niezależnych zmiennych losowych η0 , η1 , ... o zerowej wartości
oczekiwanej i skończonej wariancji σ η2 . Wówczas:
[F ( xn ) + ηn ] − [F ( xn −1 ) + ηn −1 ] = F ( xn ) − F ( xn −1 ) + ηn − ηn −1
~
f ( xn ) =
h
h
h
co oznacza, że wartość oczekiwana składowej błędu różniczkowania, spowodowanej
losowym zaburzeniem danych:
F ( xn ) − F ( xn −1 ) ηn − ηn −1
~
f ( xn ) −
=
h
h
wynosi:
F ( xn ) − F ( xn −1 )⎤
⎡ηn − ηn −1 ⎤
~
E ⎡⎢ f ( xn ) −
=
E
=0
⎥
⎢
⎥
h
h
⎣
⎦
⎣
⎦
a jej wariancja:
2
2
⎤ 2ση2
⎡
⎡⎛ ~
⎤
−
η
η
F ( xn ) − F ( xn −1 ) ⎞
⎛ n
n −1 ⎞
E ⎢⎜ f ( xn ) −
⎟ ⎥= 2 →∞
⎟ ⎥ = E ⎢⎜
h
h
⎠ ⎦
⎠ ⎥⎦ h
⎢⎣⎝
⎣⎝
gdy h → 0 .
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-11
5.2. Całkowanie funkcji jednej zmiennej – metody klasyczne
Ogólna charakterystyka metod numerycznego całkowania
Podstawowa metoda numerycznego całkowania funkcji jednej zmiennej f (x ) w "dużym"
przedziale [ A, B ] , tzn. wyznaczania całki oznaczonej
B
∫ f ( x ) dx polega na:
A
♦ dokładnym przedstawieniu tej całki w postaci sumy całek w "małych" podprzedziałach:
B
X1
X2
B
A
A
X1
XK
∫ f ( x ) dx = ∫ f ( x ) dx + ∫ f ( x ) dx + ... + ∫ f ( x ) dx
♦ przybliżonym wyznaczeniu wartości każdej z całek składowych.
Podstawową metodą numerycznego wyznaczania całki w jednym z "małych" podprzedziałów:
b
I ( f ) = ∫ f ( x ) dx
a
jest całkowanie funkcji interpolującej funkcję f (x ) , przy czym węzły interpolacji mogą
znajdować się także na zewnątrz przedziału [a, b].
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-12
Wynikająca stąd formuła całkowania numerycznego:
N
IˆN ( f ) = ∑ An f ( xn )
n =0
nazywa się kwadraturą (liniową).
Węzły kwadratury xn :
a ≡ x0 < x1 < ... < x N −1 < x N ≡ b
oraz jej współczynniki An są wybierane tak, aby błąd przybliżenia całki I ( f ) :
RN ( f ) ≡ IˆN ( f ) − I ( f )
był możliwie mały.
Kwadratura jest zbieżna, gdy:
RN ( f ) ⎯⎯
⎯→ 0
N →∞
jeśli tylko ciąg podziałów przedziału [a, b] na podprzedziały [xn , xn +1 ] jest normalny, tzn.:
sup{xn +1 − xn n = 0, ..., N − 1} ⎯⎯
⎯→ 0
N →∞
Kwadratura IˆN ( f ) jest rzędu p , jeżeli jest dokładna dla wszystkich wielomianów stopnia
niższego niż p , ale nie dla wszystkich wielomianów stopnia p .
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-13
Kwadratury Newtona-Cotesa
Kwadratura Newtona-Cotesa ma postać:
b
N
a
n =0
IˆN ( f ) = ∫ LN ( x ) dx = (b − a ) ∑ Bn , N f ( xn )
gdzie LN ( x ) jest wielomianem interpolacyjnym Lagrange'a:
N
x − xν
∏ x −x
ν
ν = 0,ν ≠ n n
LN ( x ) = ∑ f ( x n )
n =0
N
opartym na równoodległych węzłach:
xn = a + nh dla n = 0, ..., N ( h = (b − a ) / N )
natomiast Bn , N są współczynnikami wynikającymi ze scałkowania tego wielomianu w
przedziale [a, b].
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-14
Współczynnikami Bn , N wyznacza się w sposób następujący:
ξ ≡ (x − a ) h N N
x − xν
h ⋅ ξ − h ⋅ν
dx
x
a
h
ξ
=
−
=
⋅
=
h ⋅ dξ
∏
∫ ν =∏
∫
h ⋅ n − h ⋅ν
0, ν ≠ n xn − xν
a
0 ν = 0, ν ≠ n
dx = h ⋅ dξ
b
N
N
N
N
ξ −ν
ξ −ν
b−a
dξ =
= h∫ ∏
∏ n − ν dξ
∫
ν
n
N
−
0 ν = 0, ν ≠ n
0 ν = 0, ν ≠ n
N
A zatem:
Bn , N
1
=
N
N
ln , N
ξ −ν
dla n = 0, ..., N ;
ξ
≡
d
∫ ν =∏
mN
0, ν ≠ n n − ν
0
N
N
∑ Bn, N = 1
n =0
Błąd przybliżenia całki RN ( f ) ≡ IˆN ( f ) − I ( f ) ma postać:
RN ( f ) = C N ⋅ f ( p
N
)
(ξ ) ⋅ h p
N
+1
, gdzie ξ ∈ [a, b]
KWADRATURA
N
ln,N
mN
pN
trapezów
Simpsona
trzech ósmych
Milne'a
Bode'a
Weddle'a
1
2
3
4
5
6
1, 1
1, 4, 1
1, 3, 3, 1
7, 32, 12, 32, 7
19, 75, 50, 50, 75, 19
41, 216, 27, 272, 27, 216, 41
2
6
8
90
288
840
2
1/12
4
1/90
4
3/80
6
8/945
6 275/12096
8
9/1400
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
CN
5-15
Przykład: Kwadratura trapezów ( N = 1):
b
∫
f ( x )dx =
a
b−a
[ f ( a ) + f (b)]
2
metoda trapezow
10
9
8
7
6
f (x )
5
4
3
2
1
0
0
2
4
x
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
6
8
10
5-16
Zastosowanie kwadratury trapezów do "dużego przedziału" daje:
B
X1
X2
B
A
A
X1
XK
I ≡ ∫ f ( x ) dx =
≅
∫ f ( x ) dx + ∫ f ( x ) dx + ... + ∫ f ( x ) dx
X1 − A
[ f ( A) + f ( X 1 )] + X 2 − X 1 [ f ( X 1 ) + f ( X 2 )] + ... + B − X K [ f ( X K ) + f ( B )] ≡ Iˆ
2
2
2
Jeżeli X 1 − A = X 2 − X 1 = ... B − X K ≡ H , to:
B
∫
A
K
H
H
f ( x ) dx ≅
f ( A) + H ∑ f ( X k ) + f ( B )
2
2
k =1
Błąd obliczonej w ten sposób całki jest sumą błędów estymat całek składowych:
K −1
⎡
⎤
1
Iˆ − I = ⎢ f ′′(α ) + ∑ f ′′(ξk ) + f ′′( β )⎥ H 3
12 ⎣
⎦
k =1
gdzie α ∈ [ A, X 1 ], ξ k ∈ [ X k , X k +1 ] i β ∈ [ X K , B ]
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-17
Przykład: Całkę:
100
I=
∫ [1 + cos( x )]dx = 99.4936
0
wyznaczono na podstawie wartości funkcji podcałkowej w punktach:
xn = n ⋅ h , gdzie h = 100 / 420 , dla n = 0, ..., 419
przy użyciu sześciu kwadratur Newtona–Cotesa.
KWADRATURA
trapezów
Simpsona
trzech ósmych
Milne'a
Bode'a
Weddle'a
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
Iˆ − I
1.88 ⋅ 10- 2
1.41 ⋅ 10- 2
1.17 ⋅ 10- 2
0.93 ⋅ 10- 2
4.39 ⋅ 10-7
- 6.03 ⋅ 10− 9
5-18
Obliczanie całek z osobliwościami i całek niewłaściwych
♦ Metoda #1: obcinanie przedziału całkowania.
Przykład: Całkę I ( f ) =
−4
∞ − x2
∫−∞e
dx przedstawić można jako sumę trzech całek:
4
∞
I1 ( f ) = ∫ e − x dx, I 2 ( f ) = ∫ e − x dx, I 3 ( f ) = ∫ e − x dx
2
2
−4
−∞
2
4
a następnie pominąć I1 ( f ) i I 3 ( f ) , ponieważ dla | x |> 4 funkcja podcałkowa jest mniejsza niż
0.5 × 10 −6 :
1
1
1
I1 ( f ) = I 3 ( f ) = ∫ e − x dx = ∫ e −t t −1 2 dt < 16 −1 2 ∫ e −t dt = ( − e −t ) < 1.5 ⋅ 10 −8 .
16
4
16
16
∞
∞
∞
2
2
∞
8
Ponieważ I ( f ) = π ≈ 1.772454 , więc pominięcie I1 ( f ) i I 3 ( f ) powoduje błąd względny
ok. 2 ⋅ 10 −8 .
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-19
♦ Metoda #2: zamiana zmiennych w celu:
−
transformacji przedziału całkowania (np. [ −∞, ∞ ] ⇒ [ −1, 1] ),
−
usunięcia osobliwości funkcji podcałkowej.
Przykłady:
Transformacja v ≡ ( x − a )1−γ dla osobliwości typu ( x − a )γ , 0 ≤ γ < 1:
b
∫a
f ( x )dx =
1
1−γ
( b − a )1−γ
∫0
γ
v 1−γ f ( v
1
1−γ
+ a )dv , b > a
Transformacja v ≡ (b − x )1−γ dla osobliwości typu (b − x )γ , 0 ≤ γ < 1:
b
∫a
1
f ( x )dx =
1−γ
( b − a )1−γ
∫0
γ
v 1−γ f (b − v
1
1−γ
)dv , b > a
Transformacja v ≡ e − x dla całki w przedziale półnieskończonym:
∞
∫0
1
f ( x )dx = ∫
0
f ( − ln v )
dv
v
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-20
♦ Metoda #3: Całkowanie przez części:
b
b
∫a
u ( x )v ′( x )dx = [u ( x )v ( x )]ba − ∫ v ( x )u ′( x )dx
a
przy założeniu, że funkcje u (x ) i v (x ) mają ciągłe pochodne w przedziale [a , b] .
Przykład: Całkowanie przez części:
1
I ( f ) = ∫ x −0.5e x dx
0
daje:
1
I( f ) = ∫ x
0
−1 2 x
e dx =
[2 x1 2 e x ]10
1 12 x
− 2 ∫ x e dx = 2e
0
−2
4 32 x 1 4 1 32 x
− [ x e ]0 + ∫ x e dx
3
3 0
Funkcja podcałkowa w ostatniej całce jest ciągła w zerze.
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-21
5.3. Całkowanie funkcji wielu zmiennych – metody klasyczne
Całkowanie funkcji wielu zmiennych jest trudniejsze, ponieważ:
−
konstrukcja wielomianów interpolacyjnych jest możliwa tylko dla
położonych węzłów i odpowiednio regularnych obszarów całkowania;
−
nakłady obliczeniowe rosną bardzo szybko z liczbą zmiennych.
odpowiednio
Jeżeli obszar całkowania S ⊂ R M da się opisać układem nierówności:
a1 ≤ x1 ≤ b1
a2 ( x1 ) ≤ x2 ≤ b2 ( x1 )
........................................
a M ( x1 , x2 ,..., x M −1 ) ≤ x M ≤ bM ( x1 , x2 ,..., x M −1 )
to całkę wielokrotną można przekształcić w całkę iterowaną:
b1
b2 ( x1 )
bn ( x1 , x2 , ..., x M −1 )
a1
a2 ( x1 )
an ( x1 , x2 , ..., x M −1 )
I ( f ) = ∫ ⋅ ⋅ ⋅∫ f ( x1 ,..., x M )dx1 ⋅ ⋅ ⋅ dx M = ∫ dx1
S
∫ dx2 ⋅ ⋅ ⋅
∫ f ( x1 ,..., xM )dxM
której numeryczne wyznaczenie sprowadza się do M -krotnego użycia kwadratur
jednowymiarowych.
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-22
Przykład: Numeryczne całkowanie funkcji f ( x1 , x2 ) w obszarze koła jednostkowego:
x2
{
2
S = x ∈ R | −1 ≤ x1 ≤ 1,− 1 −
x12
≤ x2 ≤ 1 −
x12
}
x1
x
oprzeć można na przedstawieniu całki w postaci:
−1
x
1,2 ...
x
1,N
1− x12
1
I ( f ) = ∫ g ( x1 )dx1, g ( x1 ) =
1,1
∫ f ( x1 , x2 ) dx2
− 1− x12
Rozwiązanie numeryczne ma postać:
N
IˆN ( f ) = ∑ An gˆ ( x1,n )
n =0
gdzie gˆ ( x1,n ) jest wyznaczoną numerycznie estymatą g ( x1,n ) :
gˆ ( x1,n ) =
Mn
∑ Am,n f ( x1,n , x2,m )
m =0
przy czym An i Am ,n są współczynnikami odpowiednich kwadratur Newtona-Cotesa.
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-23
5.4. Całkowanie funkcji metodą Monte Carlo
♦ Metoda Monte Carlo służy do estymacja wartości oczekiwanej zmiennej losowej y :
μy =
+∞
∫ y ⋅ p y ( y )dy
−∞
gdzie p y ( y ) jest funkcji gęstości prawdopodobieństwa (f.g.p) zmiennej losowej y .
♦ Jeżeli { yn | n = 1, ..., N } jest ciągiem niezależnych realizacji zmiennej losowej y , to:
1 N
μ̂ y = ∑ yn
N n =1
jest nieobciążoną estymatą wartości oczekiwanej μ y .
[
♦ Jeżeli y = f (x ) , gdzie x = x1 ... x M
μy =
+∞
∫ y ⋅ p y ( y ) ⋅ dy = ∫
−∞
RM
]T , przy czym
px ( x ) jest o f.g.p., to:
1 N
f ( x ) ⋅ px ( x ) ⋅ dx oraz μˆ y = ∑ f ( x n )
N n =1
gdzie {x n } = {x n | n = 1, ..., N } jest ciągiem niezależnych realizacji wektora losowego x .
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-24
♦ Zależność powyższa wykorzystać można do przybliżonego obliczania całki:
I ( f ) ≡ ∫ f (x ) ⋅ dx
S
gdzie S ⊂ R M , zakładając, że wektor losowy x ma rozkład równomierny w pewnym
hipersześcianie H ⊃ S , tzn.:
⎧c > 0 dla x ∈ H
1
, gdzie c =
px ( x ) = ⎨
dla x ∉ H
⎩0
∫ dx
H
Wówczas bowiem:
I( f ) =
1
∫ 1S (x ) ⋅ f (x ) ⋅ px (x ) ⋅ dx
cH
a zatem:
1 N
I( f ) ≅
1S ( x n ) ⋅ f (x n )
∑
c ⋅ N n =1
gdzie 1Ω (x ) jest funkcją przynależności zbioru S ⊂ H , zdefiniowaną wzorem:
⎧1 dla x ∈ S
1S ( x ) = ⎨
⎩0 dla x ∉ S
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-25
Przykład: Wyznaczanie objętości stożka o parametrach r = 1 i h = 1:
1 1
V =∫∫
0 − 1−
(1− z )2 − y 2
1
dx
dy
dz
=
π,
∫
3
(1− z )2 − y 2
r (1 − z h )
h
r
{
H = x, y , z x <
}
(1 − z )2 − y 2 , y < 1, z ⊂ [0, 1]
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-26
Wyznaczanie objetosci stozka, r=1 i h=1, metoda Monte Carlo
estymata
odniesienie
1.3
1.2
V
1.1
1
0.9
0.8
0.7
1000 2000
3000 4000 5000 6000 7000
N
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
8000 9000 10000
5-27
5.5. Różniczkowanie funkcji jednej zmiennej
Metody numerycznego różniczkowania stosowane są do:
− estymacji gradientu w zadaniach optymalizacji, i w zadaniach rozwiązywania równań
nieliniowych,
−
analizy wrażliwości układów fizycznych,
−
analizy dokładności systemów pomiarowych,
−
dynamicznego odtwarzania wielkości mierzonej.
Metody oparte na ilorazach różnicowych
♦ Z definicji pochodnej: f ′( x ) = lim
h →0
pomocą:
f ( x + h) − f ( x)
, wynika przybliżenie pochodnej za
h
f ( x + h) − f ( x)
h
f ( x) − f ( x − h)
− różnicy wstecznej: DB ( f , x, h ) =
h
f ( x + h) − f ( x − h)
− różnicy centralnej: DC ( f , x, h ) =
2h
−
różnicy progresywnej: DF ( f , x, h ) =
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-28
♦ Błąd numerycznego różniczkowania jest sumą:
−
błędu obcięcia (błędu aproksymacji pochodnej),
−
błędu
realizacja
formuły
zmiennopozycyjnej.
numerycznego
różniczkowania
w
arytmetyce
♦ Dla różnicy progresywnej:
−
Błąd obcięcia ma wartość:
f ( x ) + f ′( x )h + f ′′(ξ )h 2 / 2 − f ( x )
1
DF ( f , x, h ) − f ′( x ) =
− f ′( x ) = f ′′(ξ ) ⋅ h ,
h
2
ξ ∈ [ x, x + h ]
−
Błąd realizacja zmiennopozycyjnej można oszacować następująco:
[ f ( x + h )(1 + ε 1 ) − f ( x )(1 + ε 0 )](1 + ηo )
~
(1 + η d ) ≅
DF ( f , x, h ) =
h
f ( x + h ) − f ( x ) + f ( x + h )ε 1 − f ( x )ε 0
≅
(1 + ηo + η d ) =
h
f ( x + h )ε 1 − f ( x )ε 0
f ( x + h) − f ( x) ⎡
⎤
=
+
+
+
η
η
1
o
d⎥
⎢
+
−
h
f
(
x
h
)
f
(
x
)
⎦
⎣
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-29
δ [DF ( f , x, h )] ≤
~
2 f ( x ) EPS
f ( x + h ) EPS + f ( x ) EPS
+ eps + eps ≅
+ 2eps
f ′( x ) h
f ( x + h) − f ( x)
gdzie: ε 0 , ε 1 są względnymi błędami obliczania f (x ) i f ( x + h ) , zaś ηo i η d są
względnymi błędami zaokrąglenia wyników odejmowania i dzielenia:
ε 0 , ε 1 ≤ EPS oraz ηo , ηd ≤ eps
−
Całkowity błąd przybliżenia
następująco:
f ′( x ) za pomocą DF ( f , x, h ) można oszacować
h
2
~
| DF ( f , x, h ) − f ′( x ) |≤ | f ′′(ξ ) | + f ( x ) EPS
h
2
−
Prawa strona tego oszacowania osiąga minimum dla:
hˆF = 2
f ( x)
f ( x + h) − 2 f ( x) + f ( x − h)
EPS , gdzie f ′′(ξ ) ≅
f ′′(ξ )
h2
♦ Optymalny krok różniczkowania dla pozostałych formuł różnicowych wynosi:
−
dla różnicy wstecznej: hˆB = hˆF ;
−
dla różnicy centralnej: hˆC =
3
3 f ( x)
EPS .
f ′′′(ξ )
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-30
Przykład: Wyznaczyć numerycznie pochodną funkcji:
2
⎛ 1
⎞
f ( x) = ⎜
− 1⎟ dla x = 1
⎝ 1+ x2
⎠
metodą różnicy progresywnej i różnicy centralnej dla różnych wartości kroku h . Oszacować
optymalną wartość kroku h , przyjmując eps = 2.22 ⋅ 10 −16 .
Wartości dokładne funkcji i jej pochodnych są następujące:
f (1) = ( 2 − 1) 2 / 2 ≈ 0.085786... ,
f ′(1) = ( 2 − 1) / 2 ≈ 0.207106781,
f ′′(1) = ( 2 − 1) /( 2 2 ) ≈ 0.1464466...
Zakładając, że wszystkie jedynki (łącznie z x = 1 ) reprezentowane są dokładnie,
zmiennopozycyjną realizację obliczeń f (1) zapisać można jako:
2
⎫
⎧
1 + ηd
⎪
⎪
~
f (1) = ⎨
− 1⎬ (1 + ηo )(1 + η ′p′ )
2
(1 + η ′p ) (1 + η s ) (1 + η ) ⎪⎭
1
1
+
⎪⎩
gdzie: η ′p – błąd zaokrąglenia wyniku potęgowania x 2 , η s – błąd sumowania v1 = 1 + x 2 , η
[
]
v1 , η d – błąd dzielenia v3 = 1 v 2 ; η0 – błąd odejmowania
v 4 = v3 − 1, η ′p′ – błąd potęgowania v 42 .
– błąd pierwiastkowania v 2 =
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-31
[~ ]
Wynika stąd następujące oszacowanie błędu: δ f (1) ≤ 13.25eps = EPS
−8
oraz optymalne długości kroku różniczkowania: hˆF ≅ 1.1 ⋅ 10 i hˆC ≅ 8.3 ⋅ 10 −8 .
wartości estymaty f ′(1)
wartości błędu estymaty f ′(1)
(różnica progresywna (linia zielona) i różnica centralna (czerwone plusy)
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-32
Różniczkowanie formuł interpolacyjnych i aproksymacyjnych
Jeżeli wartości f ( x ) obarczone są znacznym błędem przypadkowym (np. błędem pomiaru), to
bezpośrednie użycie formuł różnicowych może prowadzić do znacznego wzmocnienia
wpływu tego błędu na wynik różniczkowania.
Liniowe metody interpolacji i aproksymacji prowadzą do estymaty funkcji f ( x ) postaci:
K
fˆ ( x; p) = ∑ pkϕ k ( x )
k =1
gdzie
{ϕ k ( x )
k = 1, 2 , ..., K } jest ciągiem znanych liniowo niezależnych funkcji, zaś
p = [ p1 ... p K ]T jest wektorem parametrów uzyskanych w wyniku interpolacji lub aproksymacji.
Dla wielu układów {ϕ k ( x )} pochodna fˆ ( x; p) jest dobrym przybliżeniem f ′( x ) , tzn.:
K
f ′( x ) ≅ ∑ pkϕ k′ ( x )
k =1
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-33
Przykład: Wyznaczyć numerycznie pochodną funkcji f ( x ) = Γ( x + 1) dla x ∈ [10, 16] .
Jest to funkcja szybko rosnąca dla x ∈ [10, 16] (dla argumentów całkowitych Γ( x + 1) = x! ),
którą źle się przybliża wielomianem; łatwiej przybliża się funkcję ln[ f ( x )].
Ponieważ:
1
d
ln[ f ( x )] =
f ′( x )
dx
f ( x)
pochodną funkcji f ( x ) można wyznaczyć wg wzoru:
fˆ ′( x ) = f ( x ) ⋅ gˆ ′( x )
gdzie ĝ ( x ) jest wielomianem interpolującym ln[ f ( x )].
R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie"
5-34

Podobne dokumenty