background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Algorytmy i struktury 

danych

WYKŁAD 9 

dr inż. Krzysztof Pancerz

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Miara informacji

A – zbiór wiadomości wysyłanych przez źródło

a – wiadomość ze zbioru A

Miara zawartości informacji w wiadomości a:

p(a) – prawdopodobieństwo wysłania wiadomości 

I

=log

2

1

p

a

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Entropia

A – zbiór wiadomości wysyłanych przez źródło

Entropia (średnia zawartość informacyjna 

wiadomości):

p(a

i

) – prawdopodobieństwo wysłania wiadomości a

i

 

Entropia jest maksymalna dla wiadomości jednakowo 

prawdopodobnych, wówczas                  .

H

=

i

=1

n

p

a

i

log

2

1

p

a

i

A

={a

1,

a

2,

... ,a

n

}

H

=log

2

n

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Kodowanie Huffmana

W wyniku kodowania Huffmana otrzymujemy zestaw 

kombinacji kodowych o średniej długości zbliżonej do 

średniej zawartości informacyjnej wiadomości 

(entropii).

Twierdzenie o kodowaniu źródłowym:

Konstrukcja kodu o średniej długości kombinacji 
kodowej mniejszej od entropii źródła nie jest możliwa, 

jeżeli żądamy, aby odbierane dane były dekodowane w 
ujściu danych w sposób jednoznaczny.  

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Etapy numerycznego rozwiązywania równania 

nieliniowego

Etap 1

Początkowe  przybliżenie  poszukiwanego  pierwiastka  równania 
nieliniowego  (np.  przedział,  w  którym  znajduje  się  dokładnie  jeden 
pierwiastek).

Etap 2

Bardziej dokładne wyznaczenie poszukiwanego pierwiastka. Stopień 
dokładności określony jest przez zadany, dopuszczalny błąd. 

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Metoda bisekcji 

(połowienia przedziału, równego podziału)

Dane jest równanie f(x)=0.

Zakładamy, że:

 funkcja f jest ciągła w przedziale domkniętym [a,b],

 wewnątrz przedziału [a,b] znajduje się dokładnie jeden pierwiastek,

 zachodzi nierówność f(a)f(b)<0.

Kolejne (w i-tym kroku) przybliżenie pierwiastka obliczamy ze wzoru: 

x

i

=

a

i

b

i

2

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Metoda bisekcji 

x1 – pierwsze przybliżenie pierwiastka
x2 – drugie przybliżenie pierwiastka
x3 – trzecie przybliżenie pierwiastka
...

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Metoda bisekcji 

(połowienia przedziału, równego podziału)

wczytaj(a,b,e)
x←a
dopóki ( |f(x)|>e ) wykonuj
{

x←(a+b)/2
jeśli( znak(f(a)) ≠ znak(f(x)) ) wykonaj 
{ b←x }
w przeciwnym razie
{ a←x }

}
wypisz (x)

a,b – końce przedziału, w którym poszukujemy pierwiastka
e – dopuszczalny błąd znalezienia pierwiastka
f – dana funkcja nieliniowa

 

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Metoda siecznych 

(regula falsi)

Dane jest równanie f(x)=0.

Zakładamy, że:

 funkcja f jest ciągła w przedziale domkniętym [a,b],

 wewnątrz przedziału [a,b] znajduje się dokładnie jeden pierwiastek,

 zachodzi nierówność f(a)f(b)<0. 

Kolejne (w i-tym kroku) przybliżenie pierwiastka obliczamy ze wzoru: 

x

i

=a

i

b

i

a

i

 a

i

f

b

i

− a

i

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Metoda siecznych 

x1 – pierwsze przybliżenie pierwiastka
x2 – drugie przybliżenie pierwiastka
...

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Metoda siecznych

wczytaj(a,b,e)
x←a
dopóki ( |f(x)|>e ) wykonuj
{

x←a-( (b-a)f(a)/(f(b)-f(a)) )
jeśli( znak(f(a)) ≠ znak(f(x)) ) wykonaj
{ b←x }
w przeciwnym razie
{ a←x }

}
wypisz (x)

a,b – końce przedziału, w którym poszukujemy pierwiastka
e – dopuszczalny błąd znalezienia pierwiastka
f – dana funkcja nieliniowa

 

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Metoda stycznych (Newtona)

Dane jest równanie f(x)=0.

Zakładamy, że:

 funkcja f jest ciągła w przedziale domkniętym [a,b],

 wewnątrz przedziału [a,b] znajduje się dokładnie jeden pierwiastek,

 zachodzi nierówność f(a)f(b)<0. 

Kolejne (w i-tym kroku) przybliżenie pierwiastka obliczamy ze wzoru: 

x

i

=a

i

f

a

i

f '

a

i

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Metoda stycznych

x1 – pierwsze przybliżenie pierwiastka
x2 – drugie przybliżenie pierwiastka
...

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Metoda stycznych (Newtona)

wczytaj(a,e)
x←a
dopóki ( |f(x)|>e ) wykonuj
{

x←a-(f(a)/f'(a))
a←x

}
wypisz (x)

a – punkt startowy, od którego zaczynamy poszukiwanie pierwiastka
e – dopuszczalny błąd znalezienia pierwiastka
f – dana funkcja nieliniowa

 

background image

 

Krzysztof Pancerz

Algorytmy i struktury danych

Porównanie metod

Metoda bisekcji
ZALETA: - przy spełnionych założeniach wstępnych metoda zawsze 
prowadzi do rozwiązania
WADA: -metoda nieefektywna (zbieżność metody jest bardzo wolna, 
szybkość zbieżności zupełnie nie zależy od funkcji f)

Metoda siecznych
ZALETA: - przy spełnionych założeniach wstępnych metoda zawsze 
prowadzi do rozwiązania
WADA: - powolna zbieżność metody

Metoda stycznych
ZALETA: - metoda najszybciej zbieżna
WADY: - metoda wymaga obliczania wartości pochodnej
- zbieżność metody zależy od wyboru punktu startowego (dla pewnych 
punktów metoda może nie być zbieżna)