f`(x)

advertisement
Elementy Metod
Numerycznych 2
Fixed-Point versus Floating-Point
sign bit ±
±𝑚 ∗ 2𝑐
8 bit exponent c
(excess 127)
23+1 bit normalized
Mantissa (𝑚)
32 bit Floating-Point (IEEE):
Fixed-Point:
sign bit
integer part
fractional part
• Wyznacz wszystkie dodatnie liczby zmiennopozycyjne (w systemie
binarnym) dla mantysy 3-bitowej oraz cechy z zakresu −𝟏 ≤ 𝒄 ≤ 𝟐 .
Błędy numeryczne
• Błąd zaokrąglania: skończona dokładność liczb
zmiennopozycyjnych
• Błąd metody: obliczanie musi się skończyć
Błędy numeryczne
• Precyzja liczb jest skończona
•błędy się zwiększają
•celem analizy numerycznej jest uzyskanie oszacowań błędów
• Rzeczywiste liczby x można za reprezentować:
fl(x) = x·(1+) :
zmiennopozycyjnej liczby na komputerze
| fl(x)-x| = x
| fl(x)-x|/x = 
błąd bezwzględny (lub x)
błąd względny
• Poprawne jeżeli |fl(x)-x |≤ 0.5 ∙ 10−𝑡 to mówimy ze fl(x) ma t
poprawnych cyfr ułamkowych
• Znaczące – cyfry istotne (nie-zerowe) występujące w fl(x) do pozycji t
po kropce
• Poprawne jeżeli |fl(x)-x |≤ 0.5 ∙ 10−𝑡 to mówimy ze fl(x) ma t
poprawnych cyfr ułamkowych
• Znaczące – cyfry istotne (nie-zerowe) występujące w fl(x) do pozycji t
po kropce
0.0025624 ± 0.000004
0.0011995 ± 0.00003
0.002223 ± 0.00006
• Napisz program obliczający wartość tego samego wielomianu różnymi
sposobami:
a) (x - 1)8
b) x8 - 8x7 + 28x6 - 56x5 + 70x4 -56x3 + 28x2 - 8x + 1
c) (((((((x - 8)x + 28)x - 56)x + 70)x - 56)x + 28)x - 8)x + 1
dla x od 0.99 do 1.01 z krokiem 0.001.
Błędy numeryczne
• Precyzja liczb jest skończona
•błędy się zwiększają
•celem analizy numerycznej jest uzyskanie oszacowań błędów
• Rzeczywiste liczby x można za reprezentować:
fl(x) = x·(1+) :
zmiennopozycyjnej liczby na komputerze
| fl(x)-x| = x
| fl(x)-x|/x = 
błąd bezwzględny (lub x)
błąd względny
Aproksymacja błędu maszynowego
epsilon = 1.0;
while (1.0 + 0.5 * epsilon) ≠ 1.0:
epsilon = 0.5 * epsilon
Zadanie
• Dla całki
prawdziwa jest zależność rekurencyjna:
• Przyjmując przybliżoną wartość y0 ~ 0.182 oblicz wartości y1, y2, …, y8
stosując wzór rekurencyjny
• Przyjmując przybliżoną wartość y8 ~ 0.019 oblicz wartości y0, y1, …, y7
stosując wzór rekurencyjny
Matematyczne wyprowadzenie błędu
• Dla liczb fl x, y, i z oblicz: fl(x*y + z2)
Co możemy obliczać?
• Chcemy wynik f(x) obliczać za pomocą idealnego algorytmu
mamy liczbę FL x+x z błędem bezwzględnym x
f(x) = f(x+x)-f(x)  f’(x)x
(jak f ma pochodna)
błąd względny wtedy:

f(x
) xf
'(x
)
x

f(x
) f(x
) x
Definicja: wskaźnik uwarunkowania wtedy:
xf'(x)
(x)
f(x)
•  >>1 : problem źle uwarunkowany
• mały: problem dobrze uwarunkowany
Dobrze i źle uwarunkowane metody
• Przykład:
99-70*sqrt(2)
(0.00505)
• Aproksymujemy 2 za pomocy liczby 1.4
• Mamy dwie równoważne metody obliczania:
f1: 99-70*2
f1(1.4) = 1
f2: 1/(99+70*2)
f2(1.4)  0.0051
Wskaźniki uwarunkowania :
f1(x)= 99-70 x
f1(x)= 1/(99+70 x)
Dobrze i źle uwarunkowane metody
• Przykład:
99-70*sqrt(2)
(0.00505)
• Aproksymujemy 2 za pomocy liczby 1.4
• Mamy dwie równoważne metody obliczania:
f1: 99-70*2
f1(1.4) = 1
f2: 1/(99+70*2)
f2(1.4)  0.0051
Wskaźniki uwarunkowania :
f1(x)= 99-70 x
f1(x)= 1/(99+70 x)
2  20000
2  0.5
Co się stało?
f1: 99-70*2
f2: 1/(99+70*2)
• Wskaźniki uwarunkowania, subtrakcja i addycja :
f(x)=x-a
f(x)=x+a
• Wskaźniki uwarunkowania, multyplikacja i dywizja:
f(x)=ax
f(x)=1/x
Co się stało?
f1: 99-70*2
f2: 1/(99+70*2)
• Wskaźniki uwarunkowania, subtrakcja i addycja :
f(x)=x-a
f(x)=x+a
= |-x/(x-a)|
= |x/(x+a)|
źle uwarunkowany dla x-a≈0
źle uwarunkowany dla x+a≈0
• Wskaźniki uwarunkowania, multyplikacja i dywizja:
f(x)=ax
f(x)=1/x
= |xa/(ax)| =1
= |xx-2/(x-1)| =1
dobrze uwarunkowany
dobrze uwarunkowany
• F(x) = x2 -1
• F(x) = x
• F(x) = 2x2 – y
• Iloczyn skalarny a=[1,2,3] i b=[4,5,-5]
W przypadku funkcji wielu zmiennych
wskaźnik uwarunkowania:
Wartości wielomianów w punkcie x0
• Zastosuj algorytm Hornera
• a) w(x) = 5x2 + 2x + 3,
• b) w(x) = 7x3 + 12x2 - x + 1,
• c) w(x) = -x3 + 2x2 - 4x - 2,
x0 = 2,
x0 = 1,
x0 = -3.
P(x) = a1x + a2
1.5 = a1(1.5) + a2
P(x) = a1 + a2x + a3x2
Lagrange Interpolation
Lagrange Interpolation
(𝑥 − 2)(𝑥 − 3)(𝑥 − 4)
Lagrange Interpolation
(𝑥 − 2)(𝑥 − 3)(𝑥 − 4)
(1 − 2)(1 − 3)(1 − 4)
Lagrange Interpolation
𝑥−2 𝑥−3 𝑥−4
𝑃1 𝑥 =
1−2 1−3 1−4
P1(x)
Lagrange Interpolation
𝑥−2 𝑥−3 𝑥−4
𝑃1 𝑥 =
1−2 1−3 1−4
𝑥−1 𝑥−3 𝑥−4
𝑃2 𝑥 =
2−1 2−3 2−4
P2(x)
P1(x)
P1(x)
Lagrange Interpolation
𝑥−2 𝑥−3 𝑥−4
𝑃1 𝑥 =
1−2 1−3 1−4
𝑥−1 𝑥−3 𝑥−4
𝑃2 𝑥 =
2−1 2−3 2−4
𝑥−1 𝑥−2 𝑥−4
𝑃3 𝑥 =
3−1 3−2 3−4
P2(x)
P1(x)
P1(x)
P3(x)
Lagrange Interpolation
𝑥−2 𝑥−3 𝑥−4
𝑃1 𝑥 =
1−2 1−3 1−4
𝑥−1 𝑥−3 𝑥−4
𝑃2 𝑥 =
2−1 2−3 2−4
𝑥−1 𝑥−2 𝑥−4
𝑃3 𝑥 =
3−1 3−2 3−4
𝑥−1 𝑥−2 𝑥−3
𝑃4 𝑥 =
4−1 4−2 4−3
P2(x)
P4(x)
P1(x)
P1(x)
P3(x)
𝑃 𝑥
𝑃 𝑥 = 0 ∙ 𝑃1 𝑥 + 1 ∙ 𝑃2 𝑥 + 1 ∙ 𝑃3 𝑥 + 1 ∙ 𝑃4 𝑥
𝑃 𝑥
𝑃 𝑥 = 0 ∙ 𝑃1 𝑥 + 1 ∙ 𝑃2 𝑥 + 1 ∙ 𝑃3 𝑥 + 1 ∙ 𝑃4 𝑥 =
13
3 2
1 3
= −3 + 𝑥 − 𝑥 + 𝑥
3
2
6
Lagrange Interpolation
Download