algorytmika i metody numeryczne - wykład, INNE KIERUNKI, matematyka


Arytmetyka zmiennoprzecinkowa.

W zależności od sposobu zapisu wyróżnia się liczby:

  1. stałoprzecinkowe

  2. zmiennoprzecinkowe

W liczbach stałoprzecinkowych w ciągu bitów przedstawiających liczbę binarną miejsce przecinka jest umownie ustalone i nie zmienia się podczas wykonywania obliczeń.

Liczby przechowywane są w komórkach pamięci. Komórka ze stałym przecinkiem podzielona jest na trzy części. Komórka składa się z 13 bitów i ma wygląd:

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

znak część część

liczby całkowita ułamkowa

W przypadku liczby ujemnej wpisujemy w miejsce znaku „1”, a gdy liczba jest dodatnia „0”.

Ex.1.

Zapisz liczby w komórkach pamięci ( 13 bitowych ).

0x08 graphic
0x08 graphic

  1. +1110.11011

0x08 graphic
0x08 graphic

  1. - 1110.11011

0x08 graphic
0x08 graphic

  1. +0.00000001

W systemie zmiennoprzecinkowym liczby dają się zapisać w postaci półalgorytmicznej

X = m * 10c , gdzie m - mantysa; c - cecha; 10 - zasada numeracji ( p ). Liczby przechowywane są w komórkach pamięci. Komórki te składają się z czterech części i są one 13 bitowe.

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

znak mantysa cecha

liczby

Przecinek znajduje się tu po bicie znaku. Cecha ze znakiem wskazuje faktyczne położenie przecinka w danej liczbie.

Ex. 2

Przedstaw liczby w zapisie półalgorytmicznym:

a) X1 = 111,01 = 11,101 * 101 = 1,1101 * 1010 = 0,11101 * 1011

b) X2 = 0,00101 = 0,0101 * 10-1 = 0,101 * 10 -10 = 1,01 * 10 -11 = 10,1 * 10 -100 = 101 * 10 -101

Ex. 3.

Zapisz w komórkach pamięci ( 13 bitowych ) liczby:

0x08 graphic
0x08 graphic

  1. 0,11101101 * 1011

  1. 0x08 graphic
    0x08 graphic
    0,011101101 * 10100

  1. 0x08 graphic
    0x08 graphic
    0x08 graphic
    0x08 graphic
    0x08 graphic
    0,0011101101

Gdy mantysa nie mieści się to należy ją zaokrąglić. Zazwyczaj z tego powodu nakłada się ograniczenia mantysy 0,1 ≤ |m| ≤ 1.

Ten sposób zapisu liczb zmiennoprzecinkowych nazywa się zapisem znormalizowanym.

Normalizowanie liczby X = 0,011101101 * 10100 = 0,11101101 * 10100 - 1 = 0,11101101*1011

Ex. 4.

Dodaj dwie liczby o 8 bitowej mantysie i 4 bitowym wykładniku.

A = 0 00101001 1101

B = 0 00011010 1010

ANOR = 0 10100100 1011

BNOR = 0 11010000 0111

A = 0 10100100 1011

0x08 graphic
+ B = 0 00001101 1011

0 10110001 1011

Tak więc widzimy, żeby dodać dwie liczby należy je najpierw znormalizować, następnie zrównać cechy i dopiero dodać do siebie.

Ex. 5.

Pomnóż liczby A i B

A = 0 10000000 1001

B = 0 01000000 0011

ANOR = 0 10000000 1001

0x08 graphic
* BNOR = 0 10000000 +0010

0 01000000 1011


Ex. 6.

Odejmij od liczby A liczbę B

A = 0 1000000 1001

B = 1 0100000 0011

A = 0 10000000 1001

0x08 graphic
- B = 1 00000001 1001

0 01111111 1001

Widzimy, żeby odjąć dwie liczby trzeba zrównać ich cechy i odjąć mantysę.

Przedziały liczb stałoprzecinkowych zapisywanych w komórkach pamięci.

k

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

r l k - l - 1

Maksymalną liczbą jaką możemy zapisać w pamięci jest liczba:

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
1..1,1..1 = 1..1,1..1 +0,0..01 - 0,0..01 = 10..0,0..0 - 0,0..01 = 2l - 2 -(k -l - 1)

r k-l-1 k-l-1 l +1

Minimalną liczbą jest liczba 2 - ( k - l - 1 )

Przedział liczb zapisywanych w pamięci jest następujący 2 - ( k - l - 1 ) |x| 2l - 2 -(k -l - 1)

Przedziały liczb zmiennoprzecinkowych zapisywanych w komórkach pamięci.

k

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

r k - r - 2

Maksymalną liczbą jaką możemy zapisać w pamięci jest liczba:

0x08 graphic
0x08 graphic
0x08 graphic
0,1..1 * 101..1 = ( 1,0..0 - 0,0..01 ) * 101..1= ( 1 - 2 -r ) * 0x01 graphic

r k-l-1 r

Minimalną liczbą jest liczba 2-r * 2 k - r - 2

Przedział liczb zapisywanych w pamięci 2-r * 2 k - r - 2 |x| ( 1 - 2 -r ) * 0x01 graphic

Błędy obliczeń.

Niech x, y są liczbami zmiennoprzecinkowymi. Działania f (x ⊕ y ), gdzie ⊕ oznacza dowolną operację arytmetyczną, mają do pewnego stopnia inne własności niż dokładne działania arytmetyczne.

Ex. 1.

Sprawdź czy fl ( fl ( a + b ) + c ) = fl ( a + fl ( b + c )), gdy:

a = (0) 11001110 (0) 011

b = (0) 10000011 (0) 110

c = (1) 10000011 (0) 110

a = (0) 00011001 (0) 110

+ b = (0) 10000011 (0) 110

0x08 graphic
(0) 100011100 (0)110

0x08 graphic
+ c =(1) 10000011 (0)110

(0) 00011001 (0) 110 = (0) 11001000 (0) 011 = a

fl ( a + fl ( b + c )) = (0) 11001110 (0) 011

Wartością dokładną wielkości nazywamy wielkość wynikającą z definicji.

Wartością przybliżoną wielkości nazywamy wartość liczbową otrzymaną w wyniku obliczeń.

Niech X będzie wartością dokładną, a „x” przybliżoną. Błędem bezwzględnym wartości przybliżonej nazywamy każdą liczbę Δx spełniającą warunek:

| X - x | Δx

Błędem względnym wartości przybliżonej x obarczonej błędem bezwzględnym Δx nazywamy liczbę:

0x01 graphic

Ex. 2.

Niech x = 0,2. Liczba x ma w zapisie binarnym nieskończone rozwinięcie równe (0) 00110011.. Najbliższa jej liczba, którą można przedstawić stosując 5 bitową mantysę i 3 bitową cechę wynosi x = (0) 1100 (1) 10 = ( 0,187)10. Oszacuj błędy.

Δx = |X - x| = 0,2 - 0,1875 = 0,0125

0x01 graphic


Typy błędów:

  1. wejściowe - dane wprowadzane do maszyny odbiegają od dokładnych wartości danych

  2. błędy obcięcia - powstają podczas obliczeń na skutek zmniejszenia liczby działań ( np.: przy obliczaniu szeregów matematycznych )

  3. błędy zaokrągleń

Ex. 3.

Oblicz sumę liczb x1 = 0,48; x2 = 0,24; x3 = 0,12. Liczby są zapisywane w komórkach pamięci 8 - bitowych * 5 bitowa mantysa, 3 bitowa cecha )

x1 = (0) 1111 (1) 01 = 0,46875, bo (1*2-1 + 1*2-2 + 1*2-3 + 1*2-4) * 2-1

x2 = (0) 1111(1) 10 = 0,234375

x3 = (0) 1111(1) 11 = 0,1171875

0x01 graphic
0x01 graphic
0x01 graphic

x1 = (0) 1111 (1) 01

+ x2 = (0) 0111(1) 01

0x08 graphic
(0)10110 (1) 01 = (0) 1011 (1) 00

0x08 graphic
+ x3 = (0) 1111 (1) 11

(0) 1100 (1) 00 = (1*2-1 + 1* 2-2 + 0* 2-3 + 0*2-4)*20 = 0,75

0x01 graphic

Granicznym błędem bezwzględnym nazywa się najmniejszą liczbę dodatnią δ, większą od modułu błędu bezwzględnego |ε| ≤ δ.

Granicznym błędem względnym nazywa się najmniejszą liczbę δ' większą od modułu błędu bezwzględnego ε' ≤ δ.

Działanie

Błąd bezwzględny

Błąd względny

+ ( - )

δ = δ1 + δ2

0x01 graphic

*

δ = δ1*|x1| + δ2*|x2|

δ' = δ1' + δ2'

/

0x01 graphic

δ' = δ1' + δ2'

Rozwiązywanie równań nieliniowych z jedną niewiadomą.

Rozróżniamy równania:

  1. algebraiczne typu Wn(x) = a0*xn + a1*xn+1 + ... + an, gdzie Wn(x) = 0.

W takich równaniach nie można podać analitycznego rozwiązania równania o stopniu większym niż 4.

  1. przestępne typu F(x) = lg(x+2) - cos x, gdzie F(x) = 0

W tego typu równaniach nie można podać analitycznego rozwiązania.

Rozwiązanie numeryczne polega na:

  1. ustaleniu istnienia pierwiastków i ich liczby

  2. obliczeniu pierwiastków z zadaną dokładnością i ocenie błędu

Istnieją dwie metody rozwiązania równań:

  1. metody wymagające wyznaczenia tzw. przedziałów izolacji, w których się znajduje pierwiastek

  2. metody wymagające przybliżenia początkowego pierwiastka

Ustalanie istnienia pierwiastków.

Jeżeli funkcja F(x) jest ciągła w przedziale [a,b] i spełnia w warunki:

  1. F(a) * F(b) < 0

  2. F(x) < 0 lub F(x) > 0

to przedział [a,b] jest przedziałem izolacji.

Jeżeli znaki funkcji na granicach przedziałów są takie same to wiemy, że:

    1. równanie w przedziale [a,b] nie ma pierwiastków

    2. równanie w przedziale [a,b] ma parzystą liczbę pierwiastków

Natomiast jeżeli znaki funkcji na krańcach przedziału są różne, to wiemy że funkcja ma w danym przedziale co najmniej jeden pierwiastek.

Aby ustalić przedziały izolacji dla pierwiastków należy, począwszy od punktu x = a badać wartość funkcji F(x), aż do punktu x = b z krokiem h, który powinien być jak najmniejszy. Jeżeli F(x) * F(x+h) < 0 to przedział [x, x+h] zawiera pierwiastek funkcji F.

Należy też sprawdzić warunek

(F(x) - F(x-h))*(F(x-h) - F(x)) > 0.

Jeżeli warunek jest nie spełniony to krok dzielimy na pół dopóki w przedziale (x-h, x+h) nie

będzie lub będą dwa pierwiastki.

Ex. 1.

Metodą dzielenia przedziałów wyznaczyć przedziały izolacji dla funkcji

x3 - 6x2 + 3x + 10 = 0 , gdy x ∈ [-2; 6]

Przyjmijmy h = 1,5.

F(-2) = -12

0x08 graphic
F(-0,5) = 6,875 α1 ∈ [ -2 ; -0,5 ]

W tym przedziale nie ma pierwiastków

F(1) = 8 lub jest ich parzysta liczba

F(2,5) = -4,375 α2 ∈ [ 1 ; 2,5 ]

F(4) = -8

F(5,5) = 11,375 α3 ∈ [ 4 ; 5,5 ]

Dla x = -1 przedział izolacji wynosi [ -2 ; -0,5 ]

Dla x = 2 przedział izolacji wynosi [ 1 ; 2,5 ]

Dla x = 5 przedział izolacji wynosi [ 4 ; 5,5 ]

Istnieją trzy metody badania wartości pierwiastka w przedziale izolacji z określoną dokładnością:

  1. metoda połowienia

  2. metoda siecznych

  3. metoda stycznych

Metoda połowienia.

0x08 graphic

x1 x2 x0

a3 b3

a2 b2

a1 b1

a0 b0

Założenia:

Funkcja F(x) musi być ciągła w przedziale [a0, b0].

F(a0)*F(b0) < 0 , więc funkcja na granicy przedziałów musi mieć przeciwne znaki.

W przedziale [a0, b0] musi być dokładnie jeden pierwiastek.

Procedura:

  1. Znaleźć kolejne przedziały [a0, b0] ⊃ [a1, b1] ⊃ [a2, b2] ⊃ ... takie, zę każdy z nich zawiera pierwiastek równania α. Przedziały Pi = [ai, bi] wyznacza się rekurencyjnie w sposób:

    1. wyznaczamy środek przedziału pi-1: xi-1 = 0x01 graphic

    2. xi-1 jest pierwszym przybliżeniem pierwiastka równania

    3. powstają dwa przedziały [ai-1, xi-1] oraz [xi-1, bi-1]. Wybieramy ten, w którym funkcja ma przeciwne znaki na końcach przedziału

    4. Pi = [ai, bi] utożsamiamy z wybranym przedziałem

  2. Kolejne przybliżenia xi-1 = 0x01 graphic
    dążąc do dokładnej wartości pierwiastka równania α

  3. Procedurę należy powtarzać, dopóki długość kolejnego przedziału nie okaże się mniejsza od wartości ε > 0 ; | bi - ai | < ε, gdzie ε jest dokładnością obliczeń.

Ex. 2.

Metodą połowienia wyznaczyć pierwiastki równania x3 - 6x2 + 3x + 10 = 0, wiedząc że α1 ∈ [-2; -0,5], α2 ∈ [1; 2,5], α3 ∈ [4; 5,5] i dokładności ε = 0,1

Pierwszy pierwiastek:

Krok 1

x0 = 1 / 2 * ( -0,5 - 2 ) = -1,25

F(-1,25) = -5,078

F(-2) = -12

F(-0,5) = 6,875

α1 ∈ [ 1,25 ; -0,5 ]

Obliczmy |-0,5-(-1,25)| = 0,75 > ε = 0,1

Krok 2

x1 = ˝*(-0,5-1,25) = -0,875

F(-0,875) = 2,111

F(-1,25) = -5,078

α2 ∈ [ -1,25 ; -0,875 ]

Obliczmy |-0,875 - (-1,25)| = 0,375 > ε = 0,1

Krok 3

x2 = ˝*(-0,875-1,25) = -1,0625

F(-1,0625) = -1,160

F(-0,875) = 2,111

F(-1,25) = -5,078

α3 ∈ [ -1,0625 ; -0,875 ]

Obliczmy |-0,875 - (-1,0625)| = 0,185 > ε = 0,1

Krok 4

x3 = ˝*(-0,875-1,0625) = -0,96875

F(-0,96875) = 0,5537

F(-1,0625) = -1,160

F(-0,875) = 2,111

α4 ∈ [ -1,0625 ; -0,96875 ]

Obliczmy |-0,96875 - (-1,0625)| = 0,09375 < ε = 0,1

Zatem naszym pierwiastkiem obliczonym z dokładnością do 0,1 jest liczba -0,96875

Metoda siecznych ( reguła falsi ).

0x08 graphic

x0 x0 x0

a1 b1

a2 b2

a3 b3

a0 b 0

Założenia:

Funkcja F(x) musi być ciągła w przedziale [a0, b0].

F(a0)*F(b0) < 0 , więc funkcja na granicy przedziałów musi mieć przeciwne znaki.

W przedziale [a0, b0] musi być dokładnie jeden pierwiastek.

Procedura:

  1. Metoda ta polega na identyfikacji liniowej funkcji F(x):

      1. znaleźć kolejne przedziały [a0, b0] ⊃ [a1, b1] ⊃ [a2, b2] ⊃ ... takie, zę każdy z nich zawiera pierwiastek równania α.

      2. Przedziały Pi = [ai, bi] wyznacza się rekurencyjnie poprzez wyznaczenie współrzędnej punktu przecięcia prostej przechodzącej przez punkt ( ai, F(ai) ) i ( bi , F(bi))

      3. wyznaczamy punkt xi-1 = 0x01 graphic

      4. xi-1 jest pierwszym przybliżeniem pierwiastka równania, a następne są obliczane ze wzoru xi-1 = 0x01 graphic

      5. powstają dwa przedziały [ai-1, xi-1] oraz [xi-1, bi-1]. Wybieramy ten, w którym funkcja ma przeciwne znaki na końcach przedziału

      6. Pi = [ai, bi] utożsamiamy z wybranym przedziałem

  2. Kolejne przybliżenia xi-1 dążą do dokładnej wartości pierwiastka równania α

  3. Procedurę należy powtarzać, dopóki | xi - xi-1 | < ε, gdzie ε jest dokładnością obliczeń.

Metoda stycznych ( Newtona ).

0x08 graphic

F(x0)

F(x1)

F(x2)

F(x3)

x1 x2 x3

Założenia:

Funkcja F(x) musi być ciągła w przedziale [a0, b0].

F(a0)*F(b0) < 0 , więc funkcja na granicy przedziałów musi mieć przeciwne znaki.

W przedziale [a0, b0] musi być dokładnie jeden pierwiastek.

Istnieje w przedziale [a0, b0] F'(x) i F''(x), które są różne od zera i mają stały znak.

Procedura:

  1. Za początkowe przybliżenie α należy przyjąć punkt x0, w którym spełniony jest warunek F(x0) * F''(x­0) > 0 ,a zatem x0 = a0

  2. Kolejne przybliżenia obliczamy ze wzoru xi = xi-1 - 0x01 graphic

  3. Kolejne przybliżenia xi-1 liczone według wzoru xi = xi-1 - 0x01 graphic
    dążą do dokładnej wartości pierwiastka równania α

  4. Procedurę należy powtarzać, dopóki | xi - xi-1 | < ε, gdzie ε jest dokładnością obliczeń.

Ex. 3.

Odnaleźć metodą stycznych pierwiastek równania F(x) = 0, gdzie F(x) = ln(x) + x-2 dla α∈[1,3] i ε = 0,01.

Badamy warunki:

F(1) = -1; F(3) = 1,098 zatem F(1) * F(3) < 0

F'(x) = 1 / x + 1 ; F''(x) = -1/x2 zatem x∈[1;3] F'(x)≠0 i F''(x)≠0

Dla x∈[1;3] F'(x) > 0 a F''(x) < 0

Rozwiązanie:

Ponieważ dla x0 = 1 F(x0) = -1, F''(x0) = -1, więc F(x0) * F''(x0) > 0, więc jako pierwsze przybliżenie pierwiastka równania α przyjmiemy x0 = 1.

Krok 1

x1 = x0 - 0x01 graphic
= 1 - (-1/2 ) = 1,5

| 1 - 1,5 | = 0,5 > ε = 0,01

Krok 2

x2 = x1 - 0x01 graphic
= 1,5 - (-0,095/1,667 ) = 1,557

| 1,5 - 1,557 | = 0,057 > ε = 0,01

Krok 3

x3 = x2 - 0x01 graphic
= 1,557 - (-0,0002391/1,6927 ) = 1,557 + 0,000145 = 1,557145

| 1,557 - 1,557145 | = 0,000145 < ε = 0,01

Tak więc przyjmujemy, że α = x3 = 1,557145 z dokładnością do ε = 0,01.


Interpolacja funkcji .

Przedstawienie funkcji polega na wyborze spośród zbioru funkcji F funkcji f, która przybliża funkcję ze zbioru F. Jednym ze sposobów wyboru funkcji przybliżającej jest interpolacja. Jako funkcje przybliżające najczęściej stosuje się wielomiany algebraiczne. Funkcję przybliżającą można przedstawić tabelarycznie lub graficznie.

0x08 graphic

Wartość cechy x

Wartość cechy y

x0

x1

:

xn

y0

y1

:

yn

Funkcja f jest określona w n+1 punktach zwanych węzłami interpolacyjnymi funkcji f. Jeśli zatem dla różnych x0, x1, ..., xn otrzymano wartości y0, y1, ..., yn, wtedy istnieje dokładnie jeden wielomian algebraiczny W(x) stopnia n, którego W(xi) = yi, dla i=0,1,2, ..., n.

Jako wzór wyrażający zależność y od x możemy przyjąć:

y = a0 + a1*x + a2*x2 + ... + an*xn

Mając daną tabelaryczną wartość funkcji w węzłach interpolacyjnych możemy zbudować układ n+1 równań algebraicznych z n+1 niewiadomymi, którymi są współczynniki a0, a1,...,an.

0x08 graphic
y0 = a0 + a1*x0 + a2*x02 + ... + an*x0n

y1 = a0 + a1*x1 + a2*x12 + ... + an*x1n

:

yn = a0 + a1*xn + a2*xn2 + ... + an*xnn

Wyznacznik macierzy współczynników jest wyznacznikiem Vandermonde'a o postaci:

0x08 graphic
0x08 graphic

1 x0 x02 ... x0n

D = 1 x1 x12 ... x1n

: : : : :

1 xn xn2 ... xnn

Ponieważ węzły interpolacyjne są różne, tj. xi ≠ xj dla i ≠ j, to zawsze wyznacznik Vandermonde'a jest różny od zera, a zatem równanie ma dokładnie jedno rozwiązanie o różnych wartościach ai, określone wzorem Cramera:

0x01 graphic

gdzie: Dij są kolejnymi dopełnieniami algebraicznymi elementów i- tej kolumny macierzy

współczynników.

Oznacza to, że istnieje tylko jeden wielomian W(x), który ma postać:

  1. wielomianu Lagrange'a

  2. wielomianu Newtona

Wielomian Lagrange'a.

Podstawiając do wzoru W(x) = a0 + a1*x + a2*x2 + ... + an*xn wartości a1 oraz dokonując grupowania otrzymujemy postać W(x) = y0*L0(x) + y1*L1(x) + ... + yn*Ln(x), gdzie Ln(x) są wielomianami stopnia co najwyżej n.

Ponieważ w węzłach powinna zajść równość W(xi) = yi to wartość wielomianu we wszystkich węzłach oprócz węzła z numerami „i” powinna być równa 0, a wartość wielomianu w tym węźle powinna być równa 1, czyli:

0x08 graphic
0 , gdy i ≠ j

Li(xi) = 1 , gdy i = j

Aby określić funkcję Li(x) należy znaleźć wielomian stopnia n, który w punktach

x0, x1, ..., xj-1, xj+1, ..., xn jest równy zero, a w punkcie xj = 1.

Lj(x) = λ*(x - x0)*(x - x1)* ... (x - xj-1)*(x - xj+1)* ... *(x - xn)

Lj(xj) = 1

więc λ*(xj - x0)*(xj - x1)* ... (xj - xj-1)*(xj - xj+1)* ... *(xj - xn) = 1, to po wyrugowaniu ( zastąpieniu innym wyrażeniem ) λ otrzymujemy wzór:

0x01 graphic

Ostatecznie wzór Newtona na wielomian interpolacyjny ma postać:

0x01 graphic

Ex. 1. Znaleźć wielomian interpolacyjny, który

  1. w punktach -2,1,2,4 ma wartość 3,1,-3,8

  2. w punktach 1,2,3,4,5 ma wartość 2,2,4,4,6

a)0x01 graphic

0x08 graphic
0x01 graphic

Wielomian Newtona.

Aby wyznaczyć wielomian Newtona trzeba posłużyć się ilorazem różnicowym:

0x01 graphic

0x01 graphic

:

0x01 graphic

Ogólnie iloraz różnicowy rzędu n tworzymy za pomocą ilorazu różnicowego rzędu n-1 za pomocą wzoru:

0x01 graphic

dla n = 1,2,... oraz i = 0,1,2,... np.:

0x01 graphic

Jeżeli funkcja jest określona w n punktach x0, x1, ..., xn, to wielomian algebraiczny interpolacyjny W(x) można zapisać w postaci wzoru Newtona:

W(x) = f(x0) + f(x0, x1)*ω0(x) + f(x0, x1, x2)*ω1(x) + ... + f(x0, x1, ..., xn)*ωn-1(x)

gdzie: ωi(x) = (x - x0) * (x - x1) * ... * (x - xi) dla i = 0,1,..., n-1

Ex. 2. Napisać wzór interpolacyjny dla funkcji określonej wartościami:

  1. f(0) = 1 ; f(2) = 3 ; f(3) = 2 ; f(4) = 5 ; f(6) = 7

  2. f(1) = 2 ; f(2) = 2 ; f(3) = 4 ; f(4) = 4 ; f(5) = 6

a)

xi

f(xi)

Iloraz 1 rzędu

Iloraz 2 rzędu

Iloraz 3 rzędu

Iloraz 4 rzędu

f(xi, xi+1)

f(xi, xi+1,xi+2)

f(xi, xi+1,xi+2,xi+3)

f(xi, xi+1,xi+2,xi+3, xi+4)

0

0x08 graphic
1

=1

2

3

-1

-2/3

2/3

3

2

3

2

- 2/3

-2/9

4

5

1

-2/3

6

7

W(x) = 1 + 1*(x-0) - *(x-0)(x-2) + *(x-0)(x-2)(x-3) - 0x01 graphic
*(x-0)(x-2)(x-3)(x-4) =

=0x01 graphic

b)

xi

f(xi)

Iloraz 1 rzędu

Iloraz 2 rzędu

Iloraz 3 rzędu

Iloraz 4 rzędu

f(xi, xi+1)

f(xi, xi+1,xi+2)

f(xi, xi+1,xi+2,xi+3)

f(xi, xi+1,xi+2,xi+3, xi+4)

1

0x08 graphic
2

0

2

2

2

1

- 2/3

3

4

0

-1

2/3

1/3

4

4

2

1

5

6

W(x) = 2 + 1*(x-1)(x-2) - *(x-1)(x-2)(x-3) + 0x01 graphic
*(x-1)(x-2)(x-3)(x-4)


Aproksymacja funkcji.

Funkcję F(x) znaną lub określoną tabelą wartości będziemy aproksymować inną funkcją f(x), zwaną funkcją aproksymującą lub przybliżeniem funkcji f(x), a błędy tej operacji nazywać będziemy błędami aproksymacji. W metodach aproksymacji możemy wyróżnić następujące kroki:

  1. wybór na podstawie wykresu funkcji aproksymującej f(x), która najlepiej oddaje charakter zależności między cechami X i Y

  2. szukamy parametrów a, b, c, ... dla wybranej funkcji F(x)

Sposób poszukiwania parametrów dla funkcji aproksymującej określa różne metody aproksymacji, wśród których najbardziej znaną jest metoda najmniejszych kwadratów (aproksymacja średniokwadratowa).

Niech w punkcie xi będzie dana funkcja F(x), która przyjmuje w tych punktach wartości yi, gdzie i = 1, 2, ..., n. Będziemy poszukiwać takiej funkcji f(x) przybliżającej daną funkcję F(x), która umożliwi wygładzenie funkcji F(x), dlatego należy znaleźć taką funkcję f(x), aby był spełniony warunek:

0x01 graphic

Gdy funkcja aproksymacyjna zostanie wybrana, to podstawiamy ją do powyższego wzoru i mamy:

0x01 graphic

Funkcja P(a, b, c, ...) jest funkcją wielu zmiennych. Trzeba znaleźć takie wartości dla parametrów a, b, c, ... dla których funkcja ta osiągnie minimum. Dla ich uzyskania obliczamy pochodne cząstkowe względem każdego parametru i tworzymy układ równań:

0x08 graphic

0x01 graphic

0x01 graphic

:

:

...........................................................................................................

Aproksymacja liniowa.

Niech funkcja aproksymująca będzie funkcją f(x) = a*x + b. Mamy wtedy:

0x08 graphic

0x01 graphic

0x01 graphic

0x08 graphic

0x01 graphic

0x01 graphic

0x08 graphic

0x01 graphic

0x01 graphic

0x08 graphic
0x01 graphic

0x01 graphic

Zastosujmy wzory Cramera:

0x08 graphic
0x08 graphic
0x01 graphic
0x01 graphic

D = = n *Σxi2 - (Σxi)2

0x01 graphic
n

0x08 graphic
0x08 graphic
0x01 graphic
0x01 graphic

Da = = n *Σyi * xi - Σxi * yi

0x01 graphic
n

0x08 graphic
0x08 graphic
0x01 graphic
0x01 graphic

Db = = Σxi2 * Σyi - Σxi * yi * Σxi

0x01 graphic
0x01 graphic

Wprowadźmy nowe zmienne:

S1 = 0x01 graphic
; S2 = 0x01 graphic
; S3 = 0x01 graphic
; S4 = 0x01 graphic

Więc mamy:

D = n*S2 - S12 ; Da = n*S4 - S1*S3 ; Db = S2*S3 - S4*S1

Czyli:

0x08 graphic

0x01 graphic

0x01 graphic

Ex. 1.

Podaj funkcję aproksymującą dla danych przedstawionych w tabeli:

X

1

2

3

4

5

Y

2

5

8

8

12

S1 = 1 + 2 + 3 + 4 + 5 = 15

S2 = 1 + 4 + 9 + 16 + 25 = 55

S3 = 2 + 5 + 8 + 8 +12 = 35

S4 = 1 * 2 + 2 * 5 + 3 * 8 + 4 * 8 + 5 * 12 = 128

0x01 graphic

0x01 graphic

f(x) = 2,3 * x + 0,1

Niech funkcja aproksymująca będzie wielomianem an * xn + an-1 * xn-1 * ... * a0. Musimy wtedy:

  1. w wyniku podstawienia za X i Y odpowiednich wartości mamy układ n+1 równań z n+1 niewiadomymi, którego rozwiązanie możemy uzyskać z wzorów Cramera

  2. w przypadku wyboru zależności aproksymującej w postaci potęgowej lub logarytmicznej powstaje nieliniowy układ równań

  3. rozwiązanie nieliniowego układu równań uzyskuje się w taki sposób, że przekształcamy funkcję aproksymującą do postaci liniowej, wyznaczając parametry ai, rozwiązując układ równań liniowych a potem wracamy do funkcji pierwotnej.

Niech y = a*xm, gdzie a>0 i x>0

Dokonujemy przekształceń:

ln(y) = ln(a * xm)

ln(y) = ln(a) + ln(xm)

ln(y) = ln(a) + m* ln(x)

Niech u = ln(x) ; A = m ; B = ln(a) ; F(n) = ln(y)

Po podstawieniu otrzymujemy nowe równanie aproksymujące ( liniowe ) F(n) = A * u + B, które rozwiązujemy w tradycyjny sposób.

Ex. 2.

Wyznaczyć funkcję aproksymującą potęgową f(x) = a * xm dla funkcji F(x) zadanej w postaci tabeli:

X

1

2

4

5

Y

4

8

16

25

u = ln(x) ; F(u) = ln(y) = v

u

ln(1) = 0

Ln(2) = 0,7

ln(4) = 1,4

ln(5) = 1,6

v

ln(4) = 1,4

Ln(8) = 2,1

ln(16) = 2,8

ln(25) = 3,2

S1 = 0 + 0,7 + 1,4 + 1,6 = 3,7 ; S2 = 0,49 + 1,96 + 2,56 = 5,01

S3 = 1,4 + 2,1 + 2,8 + 3,2 = 9,5 ; S4 = 1,47 + 3,92 + 5,12 = 10,51

0x01 graphic
0x01 graphic

y = 3,7 * x 0,3

Niech y = a * ln(x) + b

Dokonujemy odpowiednich podstawień:

u = ln(x) ; F(u) = y ; A = a ; B = b

Po podstawieniu otrzymujemy nowe równanie aproksymujące F(u) = A*u + B

Rozwiązywanie układów algebraicznych równań liniowych.

Niech będzie dany układ n równań z n niewiadomymi:

0x08 graphic
a11*x1 + a12*x2 + ... + a1n*xn = b1

a21*x1 + a22*x2 + ... + a2n*xn = b2

:

an1*x1 + an2*x2 + ... + ann*xn = bn

Układ ten może być zapisany w postaci macierzowej Ax = b, gdzie:

0x01 graphic
0x01 graphic
0x01 graphic

A - macierz współczynników

b - wektor wyrazów wolnych

x - wektor n niewiadomych

Metody dokładne rozwiązania układu równań.

Jeżeli rozwiązanie układu równań Ax = b polega na takim przekształceniu danych A i b, że przy założeniu dokładnie wykonywanych działań arytmetycznych po skończonej liczbie działań otrzymujemy rozwiązanie, to taką metodę rozwiązania nazywamy metodą dokładną. Do metod tych zalicza się:

Metody dokładne charakteryzują się małą liczbą obliczeń potrzebnych do wyznaczenia rozwiązania, lecz są one niestabilne, tj. dla zadań źle uwarunkowanych numerycznie wyznaczone rozwiązanie może być obarczone dużym błędem. Metody te także bardzo obciążają pamięć komputera, ze względu na przekształcanie macierzy A i przechowywanie początkowych wartości macierzy A i b w celu sprawdzenia obliczeń.

Metoda Gaussa.

Niech będzie dany układ równań liniowych:

0x08 graphic
a11* x1 + a12* x2 + a13* x3 + ... + a1n* xn = b1

a22* x2 + a23* x3 + ... + a2n* xn = b2

.......................................................................

an-1n-1* xn-1 + an-1n* xn = bn-1

amn* xn = bn

Aby obliczyć niewiadome x1, x2, ..., xn należy wykonać następujące czynności:

  1. wyznaczamy xn z ostatniego równania, gdzie xn = bn / amn

  2. wyznaczamy xn-1 z przedostatniego równania, gdzie xn-1 = ( bn-1 - an-1 n* xn) / an-1n-1­

  3. ogólnie dla wyznaczenia k-tej niewiadomej równania mamy wzór:

xk = ( bk - akm* xn - akn-1* xn-1 - ... - akk+1* xk+1) / akk, gdzie k = n-1, n-2, ..., 1

Ex. 1. Rozwiązać układ równań liniowych doprowadzając go najpierw do postaci trójkątnej.

0x08 graphic

0x08 graphic
0x08 graphic
x1 + 2 * x2 + 4 * x3 = 3 *(-2) * (-1)

2 * x1 + 3 * x2 + 2 * x3 = 2

x1 + 2 * x2 + 3 * x3 = 1

eliminacja

0x08 graphic
x1 + 2 * x2 + 4 * x3 = 3

x2 + 6 * x3 = 4

x3 = 2

x2 = 4 - 6 * x3 = 4 - 12 = -8

x1 = 3 - 2 * x2 - 4 * x3 = 3 + 16 - 8 = 11

0x08 graphic
x1 = 11

x2 = -8

x3 = 2


Metody iteracyjne ( przybliżone ) rozwiązywania równań.

Są to metody, w których konstruuje się nieskończony ciąg wektorów, zbieżny do szukanego rozwiązania x: x(0, x(1), ..., x(k), gdzie x(0) jest wektorem początkowym. Na k- tym kroku kończymy obliczenia i otrzymujemy rozwiązanie przybliżone x(k). Do metod tych zaliczamy:

Metody iteracyjne są bardzo stabilne i posiadają prostą organizację obliczeń.

Metoda Jacobiego ( iteracji prostej ).

Niech będzie dany układ równań liniowych:

0x08 graphic
a11*x1 + a12*x2 + ... + a1n*xn = b1

a21*x1 + a22*x2 + ... + a2n*xn = b2

:

an1*x1 + an2*x2 + ... + ann*xn = bn

Dokonujemy przekształceń powyższego układu do postaci:

0x08 graphic
x1= a11*x1 + a12*x2 + ... + a1n*xn + β1

x2 = a21*x1 + a22*x2 + ... + a2n*xn + β2

:

xn = an1*x1 + an2*x2 + ... + ann*xn + βn

co w skrócie można zapisać: 0x01 graphic
. W postaci macierzowej układ ten zapiszemy x = A*x + b, gdzie x = [ x1, x2, ..., xn ]

0x01 graphic

b = [ β1, β2, ..., βn ]

gdzie x - wektor niewiadomych

b - wektor n liczb βi

A - macierz kwadratowa współczynników αij

Następnie szukamy kolejnych przybliżeń x(0), x(1), ..., rozpoczynając od wektora początkowego x(0), będącego dowolnym ciągiem liczb x(0) = [ x1(0), x2(0), ..., xn(0) ].

Następnie podstawiamy te początkowe wartości do poprzedniego wzoru, otrzymując wektor x(1), stanowiący następne przybliżenie 0x01 graphic
.

Operację tę powtarzamy uzyskując kolejne przybliżenia, takie że jeżeli spełniony jest jeden z warunków:

0x01 graphic
lub 0x01 graphic
lub 0x01 graphic

Ciąg przybliżeń x(k) jest zbieżny ( poprzez przekształcenia układu pierwotnego zawsze można uzyskać spełnienie tego warunku ).

Proces obliczeń kończymy, gdy będzie spełniony warunek:

| xi(k) - xi(k-1) | < ε, gdzie i = 1, 2, ..., n

Ex. 2. Metodą iteracyjną rozwiązać układ równań liniowych z dokładnością do 0,0001:

0x08 graphic
x1 = 0,1 * x1 + 0,1 * x2 + 0,1 * x3 + 0,7

x2 = 0,2 * x1 + 0,1 * x2 + 0,3 * x3 + 0,4

x3 = 0,5 * x1 + 0,2 * x2 + 0,1 * x3 + 0,2

Niech x(0) = 0 = [ 0; 0; 0 ]

1- sza iteracja

0x08 graphic
x1(1) = ( 0,1 * 0 + 0,1 * 0 + 0,1 * 0 ) = 0,7

x2(1) = ( 0,2 * 0 + 0,1 * 0 + 0,3 * 0 ) = 0,4

x3(1) = ( 0,5 * 0 + 0,2 * 0 + 0,1 * 0 ) = 0,2

2- ga iteracja

0x08 graphic
x1(2) = ( 0,1 * 0,7 + 0,1 * 0,4 + 0,1 * 0,2 ) + 0,7 = 0,83

x2(2) = ( 0,2 * 0,7 + 0,1 * 0,4 + 0,3 * 0,2 ) + 0,4 = 0,6

x3(2) = ( 0,5 * 0,7 + 0,2 * 0,4 + 0,1 * 0,2 ) + 0,2 = 0,65

| 0,83 - 0,7 | = 0,13 > 0,0001

| 0,6 - 0,4 | = 0,2 > 0,0001

| 0,65 - 0,2 | = 0,45 > 0,001

3- cia iteracja

0x08 graphic
x1(3) = ( 0,1 * 0,83 + 0,1 * 0,6 + 0,1 * 0,65 ) + 0,7 = 0,908

x2(3) = ( 0,2 * 0,83 + 0,1 * 0,6 + 0,3 * 0,65 ) + 0,4 = 0,821

x3(3) = ( 0,5 * 0,83 + 0,2 * 0,6 + 0,1 * 0,65 ) + 0,2 = 0,8

| 0,908 - 0,83 | = 0,078 > 0,0001

| 0,821 - 0,6 | = 0,221 > 0,0001

| 0,8 - 0,65 | = 0,15 > 0,0001

Widzimy więc że iterację powinniśmy kontynuować dalej.

23

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

1

0

1

1

0

1

1

1

0

0

0

1

1

0

1

1

0

1

1

1

0

0

0

0

1

0

1

1

0

1

1

1

01

0

0

1

0

0

1

1

0

1

1

1

0

0

1

0

0

0

1

1

0

1

1

1

0

0

Y

y1

y0

y3

x0 x1 x2 X

b)



Wyszukiwarka

Podobne podstrony:
Metody numeryczne wykłady cz II
ściąga z matmy6 (zadania), INNE KIERUNKI, matematyka
Prawo rolne - wykłady, INNE KIERUNKI, prawo
zagadnienia matematyczne, INNE KIERUNKI, matematyka
ściąga z matmy2 (zadania), INNE KIERUNKI, matematyka
Matematyka finansowa - zadania 2, INNE KIERUNKI, matematyka
ściąga z matmy5 (zadania), INNE KIERUNKI, matematyka
ściąga z matmy (ustny)2, INNE KIERUNKI, matematyka
ściąga z matmy7 (zadania), INNE KIERUNKI, matematyka
ściąga z matmy (zadania), INNE KIERUNKI, matematyka
ściąga z matmy3 (zadania), INNE KIERUNKI, matematyka
Matematyka finansowa - zadania, INNE KIERUNKI, matematyka
ALGORYTM DZIELENIA PISEMNEGO(1), wykłady i notatki, dydaktyka matematyki, matematyka przedszkole i 1
Metody numeryczne wykład

więcej podobnych podstron