ii. numeryczna realizacja obliczeń na wielomianach i funkcjach

Transkrypt

ii. numeryczna realizacja obliczeń na wielomianach i funkcjach
II. NUMERYCZNA REALIZACJA OBLICZEÑ
NA WIELOMIANACH
I FUNKCJACH WYMIERNYCH
2.1. Reprezentacje numeryczne wielomianów i funkcji wymiernych
W wielu zagadnieniach numerycznych (m. in. w interpolacji, aproksymacji, ca³kowaniu numerycznym, rozwi¹zywaniu zagadnienia pocz¹tkowego równañ ró¿niczkowych zwyczajnych)
wykorzystuje siê w ró¿ny sposób wielomiany i funkcje wymierne. Sposób reprezentacji takich
funkcji jest istotny dla optymalizacji kosztu obliczeñ w tych zagadnieniach.
Wielomiany i funkcje wymierne mog¹ byæ reprezentowane w komputerze w trojaki sposób:
! w postaci naturalnej,
! w postaci Newtona,
! jako kombinacja liniowa wielomianów ortogonalnych.
W postaci naturalnej wykorzystuje siê nastêpuj¹ce wzory dla przedstawienia wielomianu
i funkcji wymiernej
:
Dla reprezentacji wielomianu
w tej postaci potrzeba n + 1 miejsc pamiêci (w celu zapamiêtania wspó³czynników
a dla funkcji wymiernej – n + m + 1 (mo¿na licznik i mianownik
podzieliæ przez
i wspó³czynnik przy najwy¿szej potêdze x w liczniku bêdzie równy 1).
Postaæ naturalna wielomianu
jest zarazem jego rozwiniêciem Maclaurina, w którym
Postaæ ta jest wygodna przy obliczaniu pochodnych i ca³ek wielomianów. Na przyk³ad, w celu
obliczenia pochodnej rzêdu k mamy
Postaæ Newtona wielomianu jest nastêpuj¹ca:
14
II. Numeryczna realizacja obliczeñ na wielomianach i funkcjach wymiernych
gdzie
przy czym
oznaczaj¹ dane liczby. Wielomiany
tworz¹ bazê
przestrzeni wielomianów. Do reprezentacji numerycznej wielomianu w postaci Newtoa potrzeba
2n + 2 miejsc pamiêci.
Wielomiany mog¹ byæ tak¿e przestawiane w postaci kombinacji liniowej wielomianów ortogonalnych, które tak¿e tworz¹ bazê przestrzeni wielomianów. Wielomianami takimi s¹, na przyk³ad, wielomiany Czebyszewa
pierwszego rodzaju zdefiniowane zale¿noœciami
Dowolny wielomian stopnia n mo¿na wówczas przedstawiæ w postaci
Do reprezentacji numerycznej wielomianu w postaci kombinacji liniowej wielomianów ortogonalnych potrzeba n + 1 miejsc pamiêci (w celu zapamiêtania wspó³czynników
2.2. Algorytm Hornera
Wielomian
mo¿na przedstawiæ nastêpuj¹co:
Z zapisu (2.1) wynika sposób obliczania wartoœci wielomianu
nera:
(2.1)
zwany algorytmem Hor-
(2.2)
Mamy przy tym
Dla algorytmu (2.2) udowodniono nastêpuj¹ce
Twierdzenie 2.1. Algorytm Hornera jest jedynym algorytmem, który minimalizuje liczbê dodawañ i mno¿eñ przy obliczaniu wartoœci wielomianu danego w postaci naturalnej.
15
2.2. Algorytm Hornera
Przyk³ad 2.1
Stosuj¹c algorytm Hornera znaleŸæ wartoœæ wielomianu w(x) dla x = 2, jeœli
Zgodnie z algorytmem (2.2) wyznaczamy kolejno
#
Zatem
Algorytm Hornera ma tak¿e inn¹ interpretacjê. S³u¿y on bowiem do dzielenia wielomianu
przez dwumian
Jeœli porównamy wspó³czynniki przy tych samych potêgach zmiennej y w równoœci
to otrzymamy
czyli
Zatem z (2.2) wynika, ¿e
tak¿e wspó³czynniki
Algorytm Hornera wyznacza wiêc oprócz wartoœci
ilorazu z dzielenia
przez
Przyk³ad 2.2
Jaki wielomian jest ilorazem z dzielenia wielomianu w z przyk³adu 2.1 przez dwumian x ! 2?
Aby odpowiedzieæ na to pytanie, napiszmy wielomian ze wspomnianego przyk³adu jako wielomian zmiennej y:
Szukamy ilorazu z dzielenia tego wielomianu przez y ! 1, a wiêc w podanym wy¿ej algorytmie
nale¿y przyj¹æ x = 2. Poniewa¿ wspó³czynniki
ilorazu s¹ równe wspó³czynnikom
(i = 1,
2, 3), a te ostatnie wyznaczyliœmy w przyk³adzie 2.1, wiêc iloraz ma postaæ
Wspó³czynnik
jest reszt¹ z tego dzielenia.
#
16
II. Numeryczna realizacja obliczeñ na wielomianach i funkcjach wymiernych
Algorytm Hornera mo¿na tak¿e stosowaæ do obliczania znormalizowanych pochodnych
wielomianu
Jeœli wielomian zapiszemy w postaci
(2.3)
gdzie
oznacza wielomian stopnia mniejszego od j, to po j-krotnym zró¿niczkowaniu z zale¿noœci (2.3) dla y = x mamy
Wspó³czynniki wielomianu v i wartoœæ v(x) obliczamy dziel¹c wielomian w i kolejno otrzymywane ilorazy
(k = 1, 2, ... , j ! 1) przez
algorytmem Hornera.
Poprzez indukcjê matematyczn¹ wzglêdem m mo¿na udowodniæ
Twierdzenie 2.2. Stosowanie algorytmu Hornera do obliczenia m # n pocz¹tkowych znormalizowanych pochodnych
wielomianu stopnia n wymaga
dodawañ i mno¿eñ.
Przyk³ad 2.3
Obliczmy wartoœci wszystkich znormalizowanych pochodnych w punkcie x = 2 wielomianu
z przyk³adu 2.1. Wykonuj¹c obliczenia bez stosowania algorytmu Hornera mamy
Zastosujmy teraz algorytm Hornera. W celu wyznaczenia wartoœci znormalizowanej pochodnej
rzêdu pierwszego danego wielomianu, dzielimy wielomian
(dany wielomian rozpatrywany
jako wielomian zmiennej y) przez y ! 2. Mamy (zob. przyk³ad 2.2)
WartoϾ
obliczamy algorytmem Hornera:
17
2.3. Algorytm Shaw-Trauba
i widzimy, ¿e
Wielomian
jest ilorazem
Dzielimy teraz
znowu
przez y ! 2 algorytmem Hornera. Wspó³czynniki nowego ilorazu s¹ równe obliczonym ju¿
wspó³czynnikom
(i = 1, 2). Zatem
Stosuj¹c ponownie algorytm Hornera do obliczenia
Tym razem
wielomianu
i oczywiœcie
a wielomian
s¹ równy
otrzymujemy
jest ilorazem
Jedyny wspó³czynnik
czyli
Obliczaj¹c wszystkie znormalizowane pochodne wielomianu w(x)
w punkcie x = 2 wykonaliœmy 6 dodawañ i tyle samo mno¿eñ.
#
2.3. Algorytm Shaw-Trauba
Algorytm ten jest stosowany do obliczenia wszystkich lub wielu pochodnych wielomianu.
Jest on wówczas istotnie tañszy od algorytmu Hornera.
Niech wielomian w(x) stopnia n dany bêdzie w postaci naturalnej. Za³ó¿my, ¿e x … 0. Niech
n + 1 = pq, gdzie p i q oznaczaj¹ pewne liczby naturalne. Okreœlmy funkcje pomocnicze:
gdzie
oznacza resztê z dzielenia a przez b.
Algorytm Shaw-Trauba polega na wyznaczeniu elementów tablicy
cymi wzorami:
zgodnie z nastêpuj¹-
(2.4)
Okazuje siê, ¿e
18
II. Numeryczna realizacja obliczeñ na wielomianach i funkcjach wymiernych
Liczba dodawañ w algorytmie (2.4) wynosi
czenia
nale¿y wykonaæ
Po obliczeniu
w celu wyzna-
dzieleñ. Ogólna liczba mno¿eñ i dzieleñ potrzebnych
do obliczenia m pocz¹tkowych znormalizowanych pochodnych wynosi
(dowód indukcyjny wzglêdem m).
Dla q = 1 otrzymujemy algorytm Hornera. W przypadku, gdy q = n + 1 mamy algorytm, który
wymaga
dodawañ, 2n ! 1 mno¿eñ i m dzieleñ. Mamy wówczas algorytm o naj-
mniejszej znanej liczbie dzia³añ, który jest optymalny ze wzglêdu na liczbê mno¿eñ. Shaw
i Traub udowodnili bowiem, ¿e w celu obliczenia
dla j = 0, 1, ... , m. Potrzeba co naj-
mniej 2n ! 1 mno¿eñ. Algorytm Shaw-Trauba jest numerycznie poprawny.
Przyk³ad 2.4
W przyk³adzie 2.3 wyznaczyliœmy algorytmem Hornera wartoœci wszystkich znormalizowanych
pochodnych w punkcie x = 2 wielomianu z przyk³adu 2.1. ZnajdŸmy teraz te wartoœci algorytmem Shaw-Trauba.
Najpierw wybieramy liczby naturalne p i q tak, by n + 1 = pq. W naszym przypadku n = 3, czyli
pq = 4. Mo¿emy zatem za p i q przyj¹æ nastêpuj¹ce wartoœci: p = 4 i q = 1 lub p = q = 2 lub
p = 1 i q = 4. W przypadku, gdy q = 4 otrzymujemy algorytm o najmniejszej znanej liczbie mno¿eñ. Rozwa¿my zatem ten przypadek.
Okreœlamy funkcje s(j) i r(j):
czyli
czyli
Mamy
czyli
19
2.3. Algorytm Shaw-Trauba
i do wyznaczenia
potrzebne by³y 2 mno¿enia,
nie by³o potrzebne ¿adne dzia³anie. Dalej mamy
– 1 mno¿enie, a przy wyznaczaniu
i wydawaæ by siê mog³o, ¿e do wyznaczenia tych wartoœci potrzebne jest wykonanie 3 mno¿eñ.
Poniewa¿ jednak
a wartoϾ
zosta³o ju¿ obliczona wczeœniej, wiêc wystarcz¹ tu 2 mno¿enia. Nastêpnie mamy
Dla ka¿dej mo¿liwej wartoœci i oraz j mamy r(i ! j) = 0, a wiêc zawsze
wiêc
Otrzymujemy
Do obliczenia tych wartoœci wystarczy³o wykonaæ 6 dodawañ. Zatem do obliczenia
wykonaliœmy 5 mno¿eñ i 6 dodawañ. Mamy
i aby obliczyæ
trzeba jeszcze wykonaæ 1 dzielenie. Ponadto
a wiêc dodatkowo trzeba wykonaæ 2 dzielenia,
i potrzebne s¹ jeszcze 3 dzielenia. Jednak zgodnie z podanym wzorem liczba dzieleñ wynosi
a my otrzymaliœmy 6 dzieleñ. Jeœli jednak uwzglêdnimy fakt, ¿e
20
II. Numeryczna realizacja obliczeñ na wielomianach i funkcjach wymiernych
a to ju¿ policzyliœmy oraz
nie oka¿e siê, ¿e wystarczy wykonaæ tylko 3 dzielenia.
i to te¿ ju¿ policzyliœmy, to faktycz-
Zadania
1. Stosuj¹c algorytm Hornera znaleŸæ w(1) dla wielomianu
2. Jaki wielomian jest ilorazem z dzielenia wielomianu z zadania 1 przez dwumian x ! 1?
3. Za pomoc¹ algorytmu Hornera znaleŸæ wartoœci wszystkich znormalizowanych pochodnych
w punkcie x = 1 wielomianu z zadania 1.
4. Stosuj¹c algorytm Hornera znaleŸæ wartoœci wszystkich znormalizowanych pochodnych
wielomianu
w punkcie x = !1.
5. Za pomoc¹ algorytmu Shaw-Trauba znaleŸæ wartoœci wszystkich znormalizowanych
pochodnych wielomianu z zadania 1 w punkcie x = 1. Rozwa¿yæ ró¿ne mo¿liwoœci doboru
liczb naturalnych p i q.

Podobne dokumenty