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.