Algorytmy transformacji wielomianowych i ich zastosowania
|
|
- Wojciech Czarnecki
- 6 lat temu
- Przeglądów:
Transkrypt
1 INSTYTUT BADAŃ SYSTEMOWYCH PAN mgr Joanna Kapusta Niestacjonarne Studia Doktoranckie Rozprawa doktorska pt. Algorytmy transformacji wielomianowych i ich zastosowania Promotor: dr hab. Ryszard Smarzewski, prof. KUL
2 Składam serdeczne podziękowania Panu dr hab. Ryszardowi Smarzewskiemu, prof. KUL, za cenne uwagi, które przyczyniły się do nadania niniejszej rozprawie jej ostatecznego kształtu oraz okazaną życzliwość.
3 Spis treści 1. Wstęp Cel pracy oraz motywy wyboru problematyki badawczej Tezy pracy Struktura pracy I Transformacje wielomianowe dla specjalnych konfiguracji punktów 9 2. Aktualny stan wiedzy Preliminaria DFT, jednowymiarowy splot i dekonwolucja Splot wielowymiarowy Nowe algorytmy ewaluacji i interpolacji jednowymiarowej Bazy wielomianowe Transformacja Lagrange a-newtona Transformacja Newtona-Lagrange a Ewaluacja wielomianów w bazie potęgowej Analiza porównawcza algorytmów Interpolacyjne i ewaluacyjne transformacje wielowymiarowe Sformułowanie problemu Transformacja Lagrange a-newtona Odwrotna transformacja Lagrange a-newtona Transformacja Maclaurina-Lagrange a
4 Spis treści II Zastosowania transformacji wielomianowych Współdzielenie sekretu Podstawowe informacje Hierarchiczne dzielenie sekretu Podział sekretu ze wskazaniem jednostki odzyskującej sekret Dzielenie sekretu z kluczem wielomianowym Głosowanie elektroniczne E-głosowanie na świecie Wymagania wobec elektronicznego systemu głosowań Przykłady schematów głosowania elektronicznego Model głosowania elektronicznego Analiza bezpieczeństwa Transmisja rozgłoszeniowa Schemat komunikacji rozgłoszeniowej Protokół transmisji rozgłoszeniowej w oparciu o hierarchiczny schemat dzielenia sekretu Podsumowanie 83 Bibliografia 84 2
5 1. Wstęp 1.1. Cel pracy oraz motywy wyboru problematyki badawczej Istotnym elementem nauk informatycznych jest projektowanie i analiza algorytmów, mających najczęściej swoje korzenie w szeroko rozumianej matematyce. Niniejsza rozprawa skupia się na jednym z ważnych [Knuth, 2002] zagadnień z tego obszaru - zaprezentowano w niej nowe algorytmy obliczania transformacji wielomianowych, tj. metody przekształcania reprezentacji wielomianu jednej lub wielu zmiennych w bazie {H α (x)} α Qn p (x) = α Q n a α H α (x) do reprezentacji tego wielomianu p (x) = α Q n b α G α (x) w bazie {G α (x)} α Qn, gdzie Q n oznacza odpowiednio ustalony zbiór indeksów. Celem niniejszej rozprawy doktorskiej jest opracowanie nowych, szybkich algorytmów transformacji wielomianowych dla baz zależnych od specjalnych konfiguracji punktów. Proponowane algorytmy operują na zbiorach punktów rozszerzających klasę ciągów punktów, dla których znane są szybkie algorytmy tego rodzaju [Cooley i Tukey, 1965; Knuth, 2002; Aho i inni, 2003; Bostan i Schost, 2005]. Dokładniej, w pracy przedstawiono algorytmy dla jednowymiarowych, a następnie dla wielowymiarowych transformacji wielomianowych wykorzystujących bazy Lagrange a, Newtona i potęgową z uwzględnieniem punktów, których współrzędne są generowane przez równanie rekurencyjne pierwszego rzędu. Wspomniane algorytmy w istotny sposób wykorzystują jedno- i wielowymiarowe sploty. Zaprezentowano je w postaci łatwej do efektywnej implementacji. Ponadto 3
6 Wstęp przeprowadzono szczegółową analizę złożoności obliczeniowej tych algorytmów. Następnie podano ich zastosowania w aktualnych problemach kryptograficznych takich jak: dzielenie sekretu, głosowanie elektroniczne, wymiana kluczy z wykorzystaniem transmisji rozgłoszeniowej. Aktualność tych zagadnień wynika m.in. z szybkiego rozwoju internetu oraz stałego wzrostu znaczenia, jakie ma on w życiu jednostek i całych społeczeństw. W pracy szczególną uwagę zwrócono na głosowania elektroniczne ze względu na duży potencjał, jaki ze sobą niosą oraz na naturalne powiązanie prezentowanego modelu głosowań z omawianymi algorytmami transformacji wielomianowych. Głosowania z wykorzystaniem internetu umożliwiają partycypowanie w podejmowaniu decyzji dużej grupie uczestników bez konieczności przemieszczania się do miejsca głosowania, co oszczędza czas, koszty i może być dodatkową zachętą do udziału w głosowaniu. Ponadto umożliwiają one oddanie głosu osobom, które z różnych względów (np. problemy zdrowotne) muszą rezygnować z udziału w tradycyjnych głosowaniach. Wspomniane zalety powodują, że systemy wykorzystujące nowoczesne technologie są ciągle przedmiotem zainteresowań i badań, zarówno w kontekście głosowań [Fujioka i inni, 1993], [Klonowski i inni, 2005], [Zwierko i Kotulski, 2007], wymiany opinii mającej na celu wypracowanie konsensusu [Kacprzyk i Zadrożny, 2008], [Kacprzyk i Zadrożny, 2010], czy też w kontekście wspierania procesu podejmowania decyzji [Kacprzyk i Zadrożny, 2005]. W pracy przedstawiono model, który może być wykorzystany do zbierania i zliczania głosów oddawanych przez internet oraz z wykorzystaniem maszyn do głosowania. Ustalenie sposobu interpretacji wyników głosowania i wskazania wariantu zwycięskiego może odbywać się przy pomocy różnych technik (np. Condorceta, Bordy, większościowej, aprobującej [Nurmi, 2002]), które nie muszą prowadzić do takiego samego rezultatu. Okazuje się, że dla 100-osobowej grupy, w której głosy rozkładają się 48:23:22:6:1, mającej wybrać jeden wariant spośród 5 możliwych, nawet wariant o 6-głosowym poparciu może wygrać głosowanie [Hołubiec i Mercik, 2006]. Innym istotnym zastosowaniem algorytmów transformacji wielomianowych, rozważanym w pracy, jest transmisja rozgłoszeniowa. Polega ona na rozsyłaniu zaszyfrowanej wiadomości do dużej grupy użytkowników w taki sposób, że wiadomość może zostać odtworzona jedynie przez członków dynamicznie zmieniającej się, uprawnionej podgrupy. Przykładem zastosowania transmisji tego typu jest kodowana trans- 4
7 Wstęp misja telewizyjnych platform cyfrowych - tylko użytkownicy, którzy dokonali opłaty mają dostęp do programów telewizyjnych. Wymienione zastosowania wykorzystują zaprezentowany w pracy hierarchiczny model dzielenia sekretu, który jest uogólnieniem klasycznego schematu Shamira [Shamir, 1979]. Schemat Shamira bazuje na interpolacji Lagrange a, natomiast proponowany hierarchiczny model dzielenia sekretu bazuje na interpolacji Hermite a. Zastosowanie interpolacji Hermite a pozwala na stosowanie tego schematu w grupach o ustalonej hierarchii. Rozważając rzeczywiste przypadki nie jest trudno znaleźć przykłady instytucji lub organizacji (np. bank, wojsko), w których istnieje ustalona hierarchia podyktowana autorytetem jednostek, czy odpowiedzialnością jaka na nich spoczywa. Rozdzielenie tajnej informacji wśród członków takiej grupy wymaga zazwyczaj uwzględnienia wspomnianej hierarchii. W pracy przedstawiono kilka wariantów schematu dzielenia sekretu umożliwiających dopasowanie go do potrzeb tego typu grup. Zaprezentowany model pozwala również na uwzględnienie sytuacji, w której do odzyskania sekretu konieczne jest uczestnictwo wybranych jednostek. W niniejszej rozprawie ograniczono się do przedstawienia wybranych zastosowań algorytmów transformacji wielomianowych. Inne typowe ich zastosowania to interpolacja, ekstrapolacja, aproksymacja oraz metody typu Galerkina rozwiązywania równań różniczkowych [Bini i Pan, 1994; Stoer i Bulirsch, 1993; Kincaid i Cheney, 2006]. Zamierzeniem autora nie było przytoczenie większości znanych zastosowań transformacji wielomianowych, ale ukazanie własnych osiągnięć z tego zakresu na tle współczesnych badań. W pracy skupiono się na praktycznych zastosowaniach, możliwych do wykorzystania w życiu społecznym czy przedsięwzięciach komercyjnych (głosowania, transmisja rozgłoszeniowa). Konsekwencją tego jest pewnego rodzaju różnorodność zagadnień podejmowanych w pracy, w których centrum znajdują się algorytmy transformacji wielomianowych Tezy pracy Przeprowadzone studia literaturowe oraz dotychczasowe badania pozwoliły na sformułowanie następujących tez pracy: 1. Możliwe jest rozszerzenie klasy ciągów punktów, dla których znane są szybkie 5
8 Wstęp algorytmy interpolacyjne i ewaluacyjne. 2. Istnieją szybkie algorytmy obliczania jedno- i wielowymiarowych transformacji wielomianowych z uwzględnieniem baz wielomianowych Lagrange a, Newtona oraz potęgowej, dla punktów spełniających równanie rekurencyjne pierwszego rzędu. 3. Możliwe jest zastosowanie opracowanych algorytmów transformacji wielomianowych w protokołach kryptograficznych, tj. protokole dzielenia sekretu, głosowania elektronicznego oraz transmisji rozgłoszeniowej wykluczającej Struktura pracy Rozprawa składa się z 9 rozdziałów. Pierwszy rozdział stanowi wprowadzenie do tematyki rozważanej w pracy. Zawiera on opis celów badawczych, zakresu pracy oraz motywacji, które doprowadziły do opracowania nowych algorytmów i ich zastosowań. W pracy zostały wyodrębnione dwie zasadnicze części. Pierwsza z nich (rozdziały 2-5) dotyczy algorytmów obliczania transformacji wielomianowych, natomiast część druga (rozdziały 6-8) omawia zastosowania transformacji wielomianowych. Pierwszą część pracy rozpoczyna rozdział omawiający aktualny stan wiedzy z zakresu transformacji wielomianowych. Zawiera on przegląd wyników opublikowanych w uznanych i cenionych w świecie nauki czasopismach oraz monografiach. W rozdziale trzecim przytoczono podstawowe pojęcia dotyczące jedno- i wielowymiarowych splotów oraz podano metody ich obliczania z wykorzystaniem dyskretnej transformacji Fouriera [Aho i inni, 2003]. Algorytmy proponowane w niniejszej rozprawie należą do rodziny algorytmów wykorzystujących w sposób istotny te zagadnienia. Ponadto wprowadzono definicję cząstkowego splotu hipermacierzowego, która pozwala na przejrzysty zapis algorytmu obliczania splotu wielowymiarowego i ułatwia oszacowanie jego złożoności obliczeniowej. Następnie podano algorytmy obliczania jedno- i wielowymiarowych dekonwolucji, które bazują na iteracyjnej metodzie Newtona [Borwein i Borwein, 1987]. W kolejnych dwóch rozdziałach zaprezentowano nowe wyniki dotyczące transformacji wielomianowych z uwzględnieniem wybranych baz wielomianowych: potęgowej, Lagrange a i Newtona. Dokładniej, w czwartym rozdziale zaprezentowano 6
9 Wstęp algorytmy obliczania jednowymiarowej transformacji Lagrange a-newtona i transformacji do niej odwrotnej z uwzględnieniem punktów spełniających równanie rekurencyjne pierwszego rzędu. Ponadto dla wymienionej klasy punktów przedstawiono algorytm ewaluacji wielomianów w reprezentacji potęgowej. Podana klasa punktów rozszerza zbiór klas punktów analizowanych w dotychczasowej literaturze przedmiotu, m.in. w pracach [Bini i Pan, 1994; Bostan i Schost, 2005]. W tym rozdziale znalazła się również analiza porównawcza opracowanych algorytmów z innymi znanymi algorytmami transformacji wielomianowych oraz ocena uzyskanych wyników. Część poruszanych w nim zagadnień została opublikowana w pracy [Smarzewski i Kapusta, 2007]. W rozdziale piątym idee z poprzedniego rozdziału uogólniono na wiele wymiarów. W obu przypadkach - jedno- i wielowymiarowym, położono specjalny nacisk na szczegóły algorytmizacji. Niektóre rezultaty tego rozdziału, dla przypadku dwuwymiarowego zostały omówione w artykule [Kapusta i Smarzewski, 2007b], natomiast dla przypadku wielowymiarowego - w [Kapusta i Smarzewski, 2009]. Rozdział szósty rozpoczyna drugą część pracy poświęconą zastosowaniom transformacji wielomianowych. Został w nim przedstawiony szczegółowy opis hierarchicznego schematu dzielenia sekretu. W omawianym schemacie transformacje wielomianowe są wykorzystywane zarówno do uzyskania udziałów w dzielonym sekrecie, jak i przy odzyskiwaniu tego sekretu. W kolejnym rozdziale omówiono model głosowania elektronicznego wykorzystujący hierarchiczny schemat dzielenia sekretu. Zastosowanie tego schematu w prezentowanym modelu głosowania pozwala podzielenie zadań i odpowiedzialności pomiędzy kilka uprawnionych jednostek. Treść ósmego rozdziału zawiera opis ogólnego modelu transmisji rozgłoszeniowej wykorzystującego transformacje wielomianowe. Proponowany model umożliwia wybranym użytkownikom odtworzenie klucza dostępu do systemu na podstawie specjalnie zbudowanej, rozgłaszanej wiadomości. Rozdział dziewiąty zawiera podsumowanie i spostrzeżenia dotyczące omawianych algorytmów transformacji wielomianowych oraz ich zastosowań. Ostatecznie, do najważniejszych wyników tej pracy, nie mających odpowiedników w dotychczasowych publikacjach innych autorów, należą: Opracowanie nowych, szybkich algorytmów jedno- i wielowymiarowych trans- 7
10 Wstęp formacji wielomianowych, z uwzględnieniem baz Lagrange a, Newtona i potęgowej, dla punktów spełniających równania rekurencyjne pierwszego rzędu (rozdziały 4 i 5; twierdzenia 4.1, 4.5, 4.7, 5.2, 5.4 i 5.6). Wskazanie praktycznych zastosowań opracowanych algorytmów transformacji wielomianowych w istotnych problemach związanych z bezpieczeństwem informacji, tj. w dzieleniu sekretu (rozdział 6), głosowaniu elektronicznym (rozdział 7) oraz protokole transmisji rozgłoszeniowej (rozdział 8). 8
11 Część I Transformacje wielomianowe dla specjalnych konfiguracji punktów 9
12 2. Aktualny stan wiedzy Badania w zakresie szybkiego obliczania transformacji wielomianowych dla specjalnych konfiguracji punktów były prowadzone przez wiele lat. Szczególnym przypadkiem jest słynny algorytm FFT [Cooley i Tukey, 1965; Mateer, 2008] obliczania dyskretnej transformacji Fouriera oraz algorytm obliczania transformacji do niej odwrotnej. Algorytmy te pozwalają na przechodzenie pomiędzy reprezentacją wielomianu względem bazy Lagrange a z węzłami interpolacji 1, ω,..., ω n 1, gdzie ω jest pierwiastkiem pierwotnym z jedności stopnia n = 2 k, a współczynnikami rozwinięcia tego wielomianu względem bazy potęgowej, nazywanej też bazą Maclaurina lub Taylora. Ważny algorytm ewaluacji wielomianów tj. transformacji z uwzględnieniem baz potęgowej i Lagrange a dla punktów, które tworzą ciąg geometryczny, został zaproponowany w [Rabiner i inni, 1969] (zob. też [Aho i inni, 1975]). Algorytm ten redukuje obliczanie uogólnionej dyskretnej transformacji Fouriera do obliczenia splotu. Złożoność obliczeniowa wymienionych algorytmów wynosi O (n log n), podczas gdy złożoność obliczeniowa innych, klasycznych algorytmów jest równa O (n 2 ) lub w najlepszym przypadku O ( n log 2 n ) [Borodin, 1971; Aho i inni, 2003]. Powszechnie znanym algorytmem obliczania wartości wielomianu dla danego punktu jest algorytm Hornera. Stosując ten algorytm dla n dowolnych, parami różnych punktów uzyskuje się algorytm pozwalający na przechodzenie pomiędzy reprezentacją wielomianu w bazie potęgowej (lub Newtona) do reprezentacji tego wielomianu w bazie Lagrange a, który wymaga wykonania O (n 2 ) operacji arytmetycznych. Algorytmem o mniejszej złożoności obliczeniowej równej O ( n log 2 n ) jest algorytm typu dziel i zwyciężaj polegający na rekurencyjnym dzieleniu zbioru punktów na połowy i wykonywaniu obliczeń oddzielnie dla każdej z otrzymanych części [Borodin, 1971; von zur Gathen i Gerhard, 2003]. Uogólniony algorytm transformacji Maclaurina-Lagrange a, tzn. algorytm po- 10
13 Aktualny stan wiedzy zwalający na obliczenie wartości wielomianu i jego pochodnych, dla dowolnych punktów [Knuth, 2002] wymaga wykonania O (n 2 ) operacji arytmetycznych, przy czym n oznacza liczbę punktów wraz z ich krotnościami. W przypadku, gdy współrzędne n punktów spełniają równie rekurencyjne pierwszego rzędu i krotności tych punktów wynoszą 2 to uogólnioną transformację Maclaurina-Lagrange a można obliczyć algorytmem o złożoność obliczeniowej równej O (n log n) [Kapusta i Smarzewski, 2007a]. Algorytm obliczania transformacji odwrotnej jest tego samego rzędu [Kapusta i Smarzewski, 2006a]. Szybki algorytm, rzędu O (n log n), istnieje również dla jednopunktowej ewaluacji wielomianu stopnia n 1 tzn. obliczania wartości kolejnych pochodnych wielomianu w ustalonym punkcie [Aho i inni, 1975]. Interesujące wyniki dotyczące algorytmów zmiany reprezentacji wielomianu w odniesieniu do baz wielomianowych Newtona i Maclaurina, zostały przedstawione w pracy [Gerhard, 2000]. W wymienionej pracy zostały omówione algorytmy z uwzględnieniem wspomnianych baz dla dowolnej konfiguracji punktów oraz specjalnej konfiguracji punktów, tzn. dla punktów, których współrzędne tworzą ciąg arytmetyczny. Przegląd algorytmów zmiany bazy wielomianów można znaleźć w [Aho i inni, 2003], [Bini i Pan, 1994] i [Knuth, 2002], oraz artykule [Bostan i Schost, 2005]. Ponadto, w wymienionych pracach znajduje się dobre, obszerne omówienie literatury związanej z tą tematyką. Warto zwrócić uwagę, że znane algorytmy interpolacji i ewaluacji wielomianów dla dowolnych konfiguracji punktów, o złożoności obliczeniowej równej O ( n log 2), w sposób istotny wykorzystują algorytm obliczania splotu bazujący na algorytmie FFT [von zur Gathen i Gerhard, 2003; Bini i Pan, 1994]. Wśród wyników opublikowanych w ostatnich latach, ważnym rezultatem wydaje się być uogólnienie algorytmów rzędu O (n log n), obliczania jednowymiarowych transformacji z uwzględnieniem specjalnych konfiguracji punktów, na punkty generowane przez równanie rekurencyjne pierwszego rzędu [Smarzewski i Kapusta, 2007]. Algorytmy opisane w wymienionej pracy dotyczą transformacji względem baz wielomianowych Lagrange a i Newtona. Naturalnym rozszerzeniem transformacji jednowymiarowych na wiele wymiarów jest zastosowanie podejścia tensorowego. Przy takim podejściu wiele rezultatów dotyczących przypadku jednowymiarowego przenosi się na wiele wymiarów. Przykład 11
14 Aktualny stan wiedzy dwuwymiarowej transformacji Newtona-Lagrange a na siatce kartezjańskiej został zamieszczony m.in. w [Kincaid i Cheney, 2006]. Opis tej transformacji dla dowolnej liczby wymiarów można znaleźć w [Sauer, 1995]. Ponadto, w wymienionej pracy omówiono sposób przechowywania w pamięci komputera wielomianu wielu zmiennych w postaci wektora współczynników o ustalonym porządku (np. leksykograficznym lub odwróconym leksykograficznym) oraz wykonywania podstawowych operacji na tych wielomianach. Można tam również znaleźć rekurencyjny algorytm Hornera dla wielomianów wielu zmiennych, czyli algorytm obliczania wielowymiarowej transformacji Maclaurina-Lagrange a. Algorytmy interpolacji i ewaluacji wielomianu d-zmiennych z uwzględnieniem różnych reprezentacji wielomianowych (potęgowej, Lagrange a, Newtona, Beziera- Bernsteina) były i są nadal przedmiotem badań [Pe na i Sauer, 2000; Sauer, 1995; Gasca, 1989; de Boor, 2000]. Interesujące, ujednolicone podejście do algorytmów ewaluacji wielomianów d zmiennych stopnia n, polegające na zastosowaniu L-baz i B-baz, zaprezentowali w swoich pracach Suresh Lodha i Ron Goldman [1995, 1997, 1998]. Proponowane przez nich algorytmy uwzględniają różne reprezentacje wielomianu m.in. potęgową, Newtona i Lagrange a. Złożoność obliczeniowa podanych przez nich algorytmów ewaluacji wielomianów w jednym punkcie wynosi O ( n d). Opracowane przez autora niniejszej rozprawy nowe algorytmy obliczania dwuwymiarowych transformacji wielomianowych z uwzględnieniem baz Lagrange a i Newtona dla punktów, które spełniają równanie rekurencyjne pierwszego rzędu zostały zaprezentowane w [Kapusta i Smarzewski, 2007b]. Natomiast uogólnienie tych algorytmów na wiele wymiarów zostało przedstawione w [Kapusta i Smarzewski, 2009]. 12
15 3. Preliminaria 3.1. DFT, jednowymiarowy splot i dekonwolucja Niech K = (K+, ) będzie ciałem z pierwiastkiem pierwotnym z jedności ω stopnia n = 2 k. Dyskretną transformację Fouriera F ω : K n K n oraz transformację do niej odwrotną Fω 1 : K n K n definiuje się następująco b = F ω (a), a = Fω 1 (b), b = (b 0, b 1,..., b n 1 ), a = (a 0, a 1,..., a n 1 ), n 1 b i = a k ω ik, a i = 1 n n 1 b k ω ik, i = 0, 1,..., n 1, przy dodatkowym założeniu, że istnieje element odwrotny 1 1 n = }{{}, 1 jedynka w ciele K. n elem. Transformację Fouriera F ω : K n K n i transformację do niej odwrotną można obliczyć słynnym algorytmem FFT zaproponowanym przez Jamesa W. Cooleya i Johna W. Tukeya [1965], wykonując 3 n log n+o (n) operacji arytmetycznych w ciele K [Pan, 2001; von zur Gathen i Gerhard, 2003]. Wiele późniejszych 2 implementacji bazuje na algorytmie FFT, np. szybka biblioteka transformacji Fouriera FFTW [Frigo i Johnson, 1997, 2005]. Zwięzły opis wyprowadzenia algorytmu obliczającego dyskretną transformację Fouriera wraz z jego implementacją w języku C++ został przedstawiony w pracy [Smarzewski i Kapusta, 2005]. Ten algorytm wykorzystuje ideę użytą w słynnym algorytmie szybkiego sortowania Quick-Sort podanym np. w monografii [Wirth, 2001]. W przypadku, gdy liczba n nie jest potęgą dwójki, jednym z możliwych sposobów postępowania jest dopełnienie brakujących elementów danego wektora zerami tak, aby otrzymać wektor odpowiedniego rozmiaru [Mateer, 2008]. 13
16 Preliminaria Splotem wektorów a = (a 0, a 1,..., a n 1 ) i b = (b 0, b 1,..., b n 1 ) o współrzędnych z ciała K jest wektor zdefiniowany wzorami a b = (c 0, c 1,..., c 2n 1 ), i c i = a k b i k, i = 0, 1,..., 2n 1. (3.1) Jeżeli wektory a i b potraktujemy jako współczynniki wielomianów a(x) = n 1 i=0 a i x i i b(x) = n 1 i=0 b i x i, (3.2) wtedy obliczenie splotu jest równoważne obliczeniu iloczynu tych wielomianów c(x) = a(x)b(x) = 2n 1 i=0 c i x i. Splot wektorów a i b można obliczyć algorytmem o złożoności obliczeniowej c (n) = 9n log n + O (n) [Bini i Pan, 1994]. Taki algorytm bazuje na tożsamości a b = F 1 ψ [F ψ(e(a)) F ψ (E(b))], gdzie ψ = ω jest z założenia pierwiastkiem pierwotnym z jedności stopnia 2n w K, zanurzenie E : K n K 2n jest zdefiniowane następująco E(a) = a 0, a 1,..., a n 1, 0, 0,..., 0, a = (a }{{} 0, a 1,..., a n 1 ) K n, n natomiast F ψ : K 2n współrzędna jest dana wzorem K 2n oznacza dyskretną transformację Fouriera, której i-ta (F ψ (a)) i = 2n 1 a k ψ ik, i = 0, 1,..., 2n 1. 14
17 Preliminaria Obecnie znane algorytmy pozwalają na obliczenie splotu z wykorzystaniem c (n) = O (n log n log log n) operacji [Schönhage i Strassen, 1971; Cantor i Kaltofen, 1991]. W 2007 roku M. Fürer podał algorytm szybszy dla astronomicznie dużej wartości n, o złożoności obliczeniowej c (n) = O (n log n) 2 O(log n), gdzie log n = min { i 0 : log (i) n 1 } i log (0) n = n oraz log (i+1) n = log log (i) n. Algorytm c (n) Literatura klasyczny O (n 2 ) Bini i Pan, 1994 Karatsuba O (n 1.59 ) Karatsuba, 1995 w oparciu o FFT O (n log n) von zur Gathen i Gerhard, 2003 Schönchage-Strassena O (n log n log log n) Schönhage i Strassen, 1971 Fürera O (n log n) 2 O(log n) Fürer, 2007 Tabela 3.1: Złożoność obliczeniowa algorytmów obliczania splotu Dla wektorów a i b definiuje się także zwinięty splot jako wektor którego współrzędne są równe a b = (c 0, c 1,..., c n 1 ), i c i = a k b i k, i = 0, 1,..., n 1. (3.3) Łatwo widać, że algorytmy obliczania zwiniętego splotu oraz splotu są tego samego rzędu. Z drugiej strony, algorytm obliczania zwiniętego splotu nie wymaga nieco sztucznego podwajania wymiaru dziedziny dyskretnej transformacji Fouriera. Jeden z algorytmów obliczania zwiniętego splotu opiera się na równości a b = { F 1 [F (a) F (b)] + F 1 [F (Ψ a) F (Ψ b)] /Ψ } /2, (3.4) 15
18 Preliminaria gdzie Ψ = (1, ψ,..., ψ n 1 ), F = F ω : K n K n, ω = ψ 2 oraz operacje wektorowe i / są zwykłym mnożeniem i dzieleniem odpowiednich współrzędnych. Złożoność obliczeniowa tego algorytmu wynosi c(n) = 9n log n + O(n). Wzór (3.4) w sposób uwikłany został zasugerowany w [Aho i inni, 2003]. W praktycznych zastosowaniach zwinięty splot : K n K n K n jest bardziej efektywny, ze względu na mniejsze wymagania pamięciowe, niż splot : K 2n K 2n K 2n, co zostało wykorzystane w algorytmie [Schönhage i Strassen, 1971; Aho i inni, 2003]. Dla kompletności rozważań, poniżej przedstawiono krótki dowód wzoru (3.4) podany w pracy [Kapusta i Smarzewski, 2006b]. oraz Ze wzorów (3.1) i (3.2) wynika, że c(x) = a(x)b(x) = n 1 i=0 n 1 c i x i + x n i=0 c n+i x i, c 2n 1 = 0 i n 1 c i = a k b i k i c n+i = a k b n+i k. k=i+1 Wykorzystując dodatkowe wektory d, h K n o współrzędnych d i = c i + c n+i i h i = c i c n+i, i = 0, 1,..., n 1 otrzymuje się c i = (d i + h i )/2, i = 0, 1,..., n 1. Obliczając wartości wielomianu d(x) = gdzie ω = ψ 2, uzyskuje się d(ω l ) = = n 1 i=0 2n 1 i=0 n 1 i=0 d i ω il = ( i d i x i dla x = ω l, l = 0, 1,..., n 1, n 1 i ω il i=0 n 1 a k b i k + ω nl ) a k b i k ω il = a(ω l )b(ω l ) dla l = 0, 1,..., n 1. Jest to równoważne temu, że d = F 1 [F (a) F (b)], F = F ω. 16 n 1 ω il i=0 k=i+1 a k b n+i k
19 Preliminaria Z drugiej strony ψ n = 1. Zatem n 1 i=0 ψ i h i ω il = = 2n 1 i=0 n 1 i ω il i=0 ( i ψ i a k b i k n 1 k=i+1 ψ i a k b n+i k ) ψ k a k ψ i k b i k ω il, l = 0, 1,..., n 1. Stąd dzielenie przez Ψ = (1, ψ, ψ 2,..., ψ n 1 ) daje co kończy dowód wzoru (3.4). h = F 1 [F (Ψ a) F (Ψ b)] /Ψ, Operacja odwrotna do obliczania zwiniętego splotu c = a b, czyli operacja dekonwolucji wektorów a = c b = c b 1 jest określona dla wektorów c, b K n, o ile pierwsza współrzędna b 0 wektora b jest różna od zera. Szukany wektor a jest dany wzorami rekurencyjnymi a 0 = c 0 /b 0, ( a i = c i i 1 a k b i k ) /b 0, i = 1, 2,..., n 1, (3.5) otrzymanymi z trójkątnego układu równań (3.3). Obliczenie wektora a = c d wymaga wcześniejszego obliczenia wektora takiego, że gdzie b(x) = d = (d 0, d 1,... d n 1 ) = b 1 1/b(x) = n 1 n 1 d k x k + O(x n ), (3.6) b k x k i d k = dk dx k ( ) 1. b(x) x=0 Ten wektor może być obliczony przy pomocy metody Newtona [Borwein i Borwein, 1987]. Dokładniej, przyjmując ( 1 d =, b ) 1, 0,..., 0 b 0 b 2 0 kolejne współrzędne wektora d = b 1 są generowane tak jak w algorytmie
20 Preliminaria Algorytm 3.1. Dekonwolucja metodą Newtona. Input: Liczba całkowita n oraz wektory c = (c i ) n 1 i=0 i b = (b i) n 1 i=0, gdzie b 0 0. Output: Wektor a = c b 1 K n. 1. Oblicz d = ( 1 b 0, b 1 b 2 0, 0,..., 0 ). 2. Dla k od 2 do log 2 n : 2.1. Oblicz d = 2d d d b (wynik obliczeń - 2 k elementów). 3. Oblicz a = c d. Można wykazać, że w przypadku obliczania splotu c = (c 0, c 1,..., c n 1 ) = a n b algorytmem rzędu O (n log n) złożoność obliczeniowa powyższego algorytmu wynosi O(n log n). W tym celu wystarczy przeanalizować zastosowaną metodę Newtona nieco dokładniej. Niech x i+1 = 2x i x 2 i y, i = 0, 1,... będzie wzorem iteracyjnym Newtona dla funkcji f (x) = x 1 y (x 0). Ponadto, zakładając, że współczynniki d 0, d 1,..., d 2 i 1, i 1, wielomianu odwrotnego ( b0 + b 1 x b n 1 x n 1) 1 = d0 + d 1 x d 2 i 1x 2i 1 + O(x 2i ) zostały już obliczone i d k = 0 dla każdego k 2 i. Wtedy pojedyncza iteracja metody Newtona d = 2 d d 2 i+1 d 2 i+1 b podwaja liczbę obliczonych współczynników d k (k = 0, 1,..., 2 i+1 1) wektora dekonwolucji. W konsekwencji wzór iteracyjny Newtona d = 2 d d 2 i d 2 i b, i = 2, 3,..., log 2 n 18
21 Preliminaria z wektorem początkowym d postaci ( 1 d =, b ) 1, 0, 0,... b 0 b 2 0 generuje wymagany wektor dekonwolucji d = (d 0, d 1,..., d n 1 ) dla b = (b 0, b 1,..., b n 1 ), b 0 0. Ponieważ koszt obliczenia splotu 2 i O(i2 i ) oczywiste jest, że koszt algorytmu 3.1 wynosi ( O n log 2 n + n ) 2 log n log 2 2 = O (n log n). jest równy W konkretnych zastosowaniach wymagających odwrócenia splotu niekiedy można skonstruować inne, nieco lepsze algorytmy, które nie wymagają stosowania iteracyjnej metody Newtona. W szczególności ma to miejsce w przypadku odwracania transformacji Lagrange a-newtona. Zostanie to dokładniej omówione w rozdziale Splot wielowymiarowy Splot wielowymiarowy definiuje się podobnie, jak jednowymiarowy. Przyjmując, że n = (n 1, n 2,..., n d ) oznacza wektor dodatnich liczb całkowitych i Q n = {α = (α 1, α 2,..., α d ) : 0 α i < n i dla i = 1, 2,..., d} jest zbiorem n 1 n 2 n d wielowskaźników o współrzędnych całkowitych, wielowymiarowy splot hipermacierzy x = (x α ) α Qn i tablicy y = (y i ) d i=1 wektorów y i = (y i,0, y i,1,..., y i,ni 1) jest z definicji hipermacierzą z = (z α ) α Qn określoną wzorem z = x 1 y 1 2 y 2 3 d y d. (3.7) W tym wzorze cząstkowe sploty i definiuje się w następujący sposób: Definicja 3.2. Macierz wielowymiarową w = (w α ) α Qn = x i y i K n 1 n 2 n d, 1 i d, nazywamy i-tym cząstkowym splotem hipermacierzy x = (x α ) α Qn i wektora y i = (y i,0, y i,1,..., y i,ni 1) jeżeli każda kolumna w β1,...,β i 1,,β i+1,...,β d, 0 β j < n j, j = 1, 2,..., i 1, i + 1,..., d, 19
22 Preliminaria macierzy w jest równa zwiniętemu splotowi kolumny x β1,...,β i 1,,β i+1,...,β d = ( ) ni 1 x β1,...,β i 1,j,β i+1,...,β d i wektora y i. Korzystając z tej definicji otrzymano metodę obliczania splotu wielowymiarowego z = x y zapisaną w postaci Algorytmu 3.3, w którym hipermacierz wejściowa x = (x α ) α Qn zmienia się d razy poprzez cząstkowe splatanie z wektorem y i dla i = 1, 2,, d. j=0 Algorytm 3.3. Splot wielowymiarowy. Input: Hipermacierz x = (x α ) α Qn i tablica y = (y i ) d i=1, gdzie y i = (y i,0, y i,1,..., y i,ni 1), n = (n 1, n 2,... n d ) oraz liczba całkowita d. Output: Wielowymiarowy splot z = (z α ) α Qn. 1. Dla k od 1 do d: 1.1. Oblicz x = x k y k. 2. Podstaw z = x. Algorytm dekonwolucji wielowymiarowej można skonstruować uogólniając idee podane w Algorytmach 3.1 i 3.3: x = z d y 1 d d 1 y 1 d 1 d 2 1 y 1 1. Złożoność obliczeniowa C (N) algorytmu obliczania splotu wielowymiarowego opartego na wzorze (3.7) wynosi O (N log N), N = n 1 n 2... n d, w przypadku obliczania zwiniętego splotu algorytmem rzędu O (n log n) (zob. wzór (3.4)). W przypadku stosowania innych wspomnianych w poprzednim podrozdziale algorytmów można jedynie stwierdzić, że C (N) = N 20 d i=1 c (n i ) n i,
23 Preliminaria gdzie c(n i ) oznacza koszt wyznaczenia zwiniętego splotu wektorów o n i współrzędnych. Jest to naturalną konsekwencją następującej obserwacji: w celu obliczenia splotu wielowymiarowego należy kolejno obliczyć N N N n 1, n 2,..., n d splotów jednowymiarowych dla wektorów mających odpowiednio n 1, n 2,..., n d elementów. 21
24 4. Nowe algorytmy ewaluacji i interpolacji jednowymiarowej 4.1. Bazy wielomianowe W niniejszym rozdziale przedstawione zostaną jawne wzory wektorowe opisujące transformacje wielomianu jednej zmiennej pomiędzy wybranymi bazami wielomianowymi przy założeniu, że co najmniej jedna z baz zależy od parami różnych punktów x i = αx i 1 + β, i = 1, 2,..., n 1, x 0 = γ, (4.1) gdzie stałe α 0, β, γ należą do ciała K mającego więcej niż n elementów. Rozważone zostaną bazy Lagrange a, Newtona i potęgowa (Maclaurina). Pierwsze wyniki dotyczące baz Lagrange a i Newtona zostały opublikowane w [Smarzewski i Kapusta, 2007]. Badania z tego zakresu zostały zainspirowane szybkimi algorytmami obliczania transformacji Lagrange a-newtona oraz transformacji do niej odwrotnej, zaprezentowanymi w [Bostan i Schost, 2005]. W wymienionej pracy autorzy przedstawili szybkie algorytmy dla szczególnego przypadku, gdy β = 0 i γ = 1 lub α = 1. Wielomian p(x) należący do n - wymiarowej przestrzeni P n (K) wielomianów stopnia mniejszego od n nad ciałem K możemy zapisać w postaci p(x) = n 1 i=0 b i w i (x), gdzie w i (x) jest bazą wielomianową w P n (K). W obliczeniach numerycznych łatwość rozwiązania problemu jest uzależniona od wyboru reprezentacji wielomianu [von zur Gathen i Gerhard, 2003]. W zależności od wyboru tej reprezentacji algorytmy rozwiązujące dany problem mogą różnić się złożonością obliczeniową oraz odpornością na błędy zaokrągleń. W kontekście zagadnień interpolacji oraz ewaluacji wielomianów często spotyka się następujące bazy wielomianowe: 22
25 Nowe algorytmy ewaluacji i interpolacji jednowymiarowej (a) Lagrange a (b) Newtona l i (x) = n 1 k i x x k x i x k, i = 0, 1,..., n 1, m 0 (x) = 1, m i (x) = i 1 (x x k ), i = 1, 2,..., n 1, (c) potęgowa u i (x) = x i, i = 0, 1,..., n 1. Z powyższymi bazami wiążą się następujące reprezentacje wielomianu: (a) Lagrange a (b) Newtona p(x) = n 1 i=0 p(x) = y i l i (x), y i = p(x i ), (4.2) n 1 i=0 c i m i (x), (4.3) gdzie ilorazy różnicowe c i dla parami różnych węzłów x 0, x 1,..., x n 1 K są zdefiniowane wzorem (c) potęgowa c i = p[x 0, x 1,..., x i 1 ] = p(x) = n 1 i=0 i j=0 y j, (4.4) i (x j x k ) k j a i u i (x), a i = p(i) (0). (4.5) i! 4.2. Transformacja Lagrange a-newtona W przypadku ogólnym zaleca się obliczanie transformacji Lagrange a-newtona L : (y i ) n 1 i=0 (c i) n 1 i=0 algorytmem rzędu O(n 2 ) opartym na wzorach rekurencyjnych [Kincaid i Cheney, 2006]. Natomiast, jeśli parami różne węzły x 0, x 1,..., x n 1 są generowane wzorami 23
26 Nowe algorytmy ewaluacji i interpolacji jednowymiarowej rekurencyjnymi (4.1), wtedy dla tej transformacji istnieje wydajny algorytm o złożoności obliczeniowej c (n) + O (n). Rzeczywiście, podstawiając do wzoru (4.4) i korzystając z otrzymuje się i k=j+1 x i = α i γ + β ( α i 1 + α i ) (4.6) α j k 1 = (α 1)(α j k 1 + α j k ) (4.7) c i [(α 1)γ + β] i i 1 α k = i j=0 j 1 i 1 i j [(α 1)γ + β] α k k=j [ ] = α j (1 α k j ) γ βα j k j 1 α ν ν=0 [ y j [(α 1)γ + β] j j 1 α k ] α k (α j k 1)γ + βα k j k 1 α ν i j=0 j 1 y j k m=0 ( 1) α m i j 1 ν=0 i j 1 i j α k k m=0 α m. W konsekwencji i c i = p j q i j /r i, i = 0, 1,..., n 1, j=0 lub równoważnie c = (p q)/r, przy założeniu, że współrzędne wektorów p, q, r są dane wzorami p j = j 1 y j k m=0 α m, q j = r j = [(α 1)γ + β] j j 1 ( 1) j j 1 j 1 m=0 α k k α m, α k, j = 0, 1,..., n 1. (4.8) Tym samym zostało dowiedzione następujące twierdzenie: 24
27 Nowe algorytmy ewaluacji i interpolacji jednowymiarowej Twierdzenie 4.1 (Smarzewski i Kapusta, 2007). Jeżeli L: K n K n oznacza transformację Lagrange a-newtona dla parami różnych węzłów (x i ) n 1 i=0 generowanych wzorem x i = αx i 1 + β (i = 1, 2,..., n 1, α 0, x 0 = γ), to prawdziwy jest wzór L(y) = (p q) /r, (4.9) gdzie elementy wektorów p, q, r K n są zdefiniowane wzorami (4.8). Uwaga 4.2. We wzorach (4.8), a także wszędzie poniżej przyjmuje się, że iloczyny, w których indeksy górne są mniejsze niż indeksy dolne, są z definicji równe 1. Poniższy algorytm prezentuje szczegóły szybkiego obliczania transformacji Lagrange a-newtona ułatwiające jego implementację i oszacowanie złożoności obliczeniowej. Algorytm 4.3. Transformacja Lagrange a-newtona dla parami różnych węzłów x 0, x 1,... x n 1, generowanych wzorem x i = αx i 1 + β, i = 1, 2,..., n 1, x 0 = γ. Input: Wektor y = (y 0, y 1,..., y n 1 ) K n, skalary α 0, β i γ K. Output: c = L(y) K n. 1. Przypisz p 0 = y 0, r 0 = 1, δ = (α 1) γ + β, s = 0, u = 1, v = 1/α i z = Dla k od 1 do n 1 wykonaj: 2.1. s = s α + 1, u = u s, p k = y k /u, 2.2. v = v α, z = z v, q k = z/u, 2.3. r k = r k 1 v δ. 3. Oblicz c = p q. 4. Wykonaj dzielenie po współrzędnych c = c/r. Obliczenie wektorów p, q i r, występujących we wzorze (4.9), może być wykonane w jednej pętli i ma złożoność obliczeniową O(n) operacji bazowych K, co zostało 25
28 Nowe algorytmy ewaluacji i interpolacji jednowymiarowej pokazane w algorytmie 4.3. Ponadto przy dodatkowym założeniu, że w ciele K istnieją pierwiastki pierwotne z jedności ψ i ω = ψ 2, odpowiednio stopni 2n i n, to bezpośrednim wnioskiem z twierdzenia 4.1 jest: Wniosek 4.4. Algorytm obliczania transformacji Lagrange a-newtona ma złożoność obliczeniową c(n) + O(n). W szczególnym przypadku, gdy do obliczania zwiniętego splotu stosuje się algorytm oparty na wzorze (3.4), ten koszt wynosi O (n log n). Obliczenie odwrotnej transformacji Lagrange a-newtona L 1 można wykonać wykorzystując algorytm obliczania dekonwolucji 3.1. Dla tej transformacji możliwe jest również zorganizowanie obliczeń w taki sposób, aby nie było wymagane stosowanie dekonwolucji - zostanie to omówione w następnym podrozdziale Transformacja Newtona-Lagrange a Transformacja Newtona-Lagrange a N : (c i ) n 1 i=0 (y i) n 1 i=0, odwrotna do transformacji Lagrange a-newtona L, opisuje przejście od rozwinięcia wielomianu względem bazy Newtona (4.3) do rozwinięcia wielomianu względem bazy Lagrange a (4.2). W celu obliczenia wartości y i (i = 0, 1,..., n 1) można do wzoru (4.3) zastosować klasyczny algorytm Hornera w postaci y j = y j+1 (x i x j ) + c j, j = i 1, i 2,..., 0, y i = c i, (4.10) gdzie 0 i < n. Złożoność obliczeniowa tego algorytmu, równa O(n 2 ), może zostać zredukowana do c (n) + O (n), o ile punkty x 0, x 1,..., x n 1 spełniają zależność rekurencyjną (4.1). Wynika to z podstawienia tej zależność do (4.3) i zastosowania wzorów (4.6) i (4.7): y i = = = i j 1 c j j=0 i j 1 c j j=0 i 1 k i α ν ν=0 j=0 [ (α k ( α i k 1 ) γ + βα k) i k 1 α k [(α 1) γ + β] j 1 i k 1 ν=0 c j [(α 1) γ + β] j j 1 26 ν=0 α ν α ν ] α k 1. i j 1 k α ν ν=0
29 Nowe algorytmy ewaluacji i interpolacji jednowymiarowej Stąd i b i = p j q i j r i, i = 0, 1,..., n 1, j=0 lub równoważnie b = (p q) r, gdzie p = (p j ) n 1 j=0, q = (q j) n 1 j=0, r = (r j) n 1 j=0, oraz p j = c j [(α 1) γ + β] j j 1 α k, j 1 1 k = r j = α ν. (4.11) q j ν=0 Z powyższego wynika następujące twierdzenie: Twierdzenie 4.5 (Smarzewski i Kapusta, 2007). Jeżeli N : K n K n oznacza transformację Newtona-Lagrange a dla parami różnych punktów spełniających zależność rekurencyjną x i = αx i 1 + β (i = 0, 1,..., n 1,, x 0 = γ), to N (c) = ( p 1 ) r, (4.12) r gdzie współrzędne wektorów p = (p j ) n 1 j=0 i r = (r j ) n 1 j=0 są zdefiniowane tak jak w (4.11). Ponadto, jeśli w ciele K istnieją pierwiastki pierwotne z jedności ψ i ω = ψ 2, odpowiednio stopni 2n i n, to algorytm bazujący na wzorze (4.12) ma złożoność obliczeniową równą c(n) + O(n), gdzie c(n) oznacza koszt obliczenia zwiniętego splotu. W szczególnym przypadku stosowania algorytmu bazującego na wzorze (3.4) rząd tego algorytmu jest równy O(n log n). Dla zupełności rozważań, szczegóły obliczania transformacji Newtona-Lagrange a w oparciu o wzór (4.12) zostały przedstawione w algorytmie
30 Nowe algorytmy ewaluacji i interpolacji jednowymiarowej Algorytm 4.6. Transformacja Newtona-Lagrange a dla parami różnych węzłów x 0, x 1,..., x n 1 generowanych wzorem x i = αx i 1 + β, i = 1, 2,..., n 1, x 0 = γ. Input: Wektor c = (c 0, c 1,..., c n 1 ) K n, skalary α 0, β i γ K. Output: y = N(c) K n. 1. Przypisz p 0 = c 0, r 0 = 1, δ = (α 1) γ + β, s = 0, v = 1/α i w = Dla k od 1 do n 1 wykonaj: 2.1. v = v α, w = w v δ, p k = c k w, 2.2. s = s α + 1, r k = r k 1 s. 3. Oblicz y = p 1. r 4. Wykonaj mnożenie po współrzędnych y = y r Ewaluacja wielomianów w bazie potęgowej Transformacja Maclaurina - Lagrange a M : (a i ) n 1 i=0 (y i) n 1 i=0 jest przekształceniem odwzorowującym wektor współczynników a = (a i ) n 1 i=0 reprezentacji wielomianu w bazie potęgowej (4.5) na wektor współczynników y = (y i ) n 1 i=0 reprezentacji wielomianu w bazie Lagrange a (4.2). Wyznaczenie tej transformacji jest równoważne obliczeniu n wartości wielomianu (4.5): y i = n 1 a k x k i, i = 0, 1,..., n 1. (4.13) Szczególnym przypadkiem tej transformacji jest dobrze znana dyskretna transformacja Fouriera w punktach x i = ω i (i = 0, 1,..., n 1), gdzie ω jest pierwiastkiem pierwotnym z jedności stopnia n. Można ją obliczyć słynnym algorytmem FFT o złożoności obliczeniowej O(n log n) [Cooley i Tukey, 1965]. Jeśli punkty x 0, x 1,..., x n 1 tworzą ciąg geometryczny x i = γα i (i = 0, 1,..., n 1, γ 0) i istnieje element odwrotny α 1 K, to transformację Maclaurina-Lagrange a można wyznaczyć uogólnionym algorytmem DFT o koszcie c (2n 1)+O (n). Jest to konsekwencją poniższej 28
31 Nowe algorytmy ewaluacji i interpolacji jednowymiarowej równości: w której y i = n 1 n 1 a k γ k α ik = b i p k q i+k, i = 0, 1,..., n 1, b k = α k2 2, pk = a k γ k α k2 2, qk = α k2 2, k = 0, 1,..., n 1. Stąd gdzie i y i (n 1) = b i (n 1) d k c i k, i = n 1, n,..., 2n 2, d k = { pn 1 k, k = 0, 1,..., n 1, 0, k = n, n + 1,..., 2n 2 c k = α k2 2, k = 0, 1,..., 2n 2, W konsekwencji, jeśli d = (d i ) 2n 2 i=0, c = (c i) 2n 2 i=0 i b = (b i ) n 1 i=0, to y = ( d c ) b, (4.14) gdzie d c = P n (d c). W ostatnim wzorze projekcja P n : K 2n 1 K n jest zdefiniowana przez P n (e) = (e n 1, e n,..., e 2n 2 ), e = (e 0, e 1,..., e 2n 2 ). Idea obliczania transformacji Maclaurina-Lagrange a dla punktów tworzących ciąg geometryczny jako splotu została przedstawiona w [Rabiner i inni, 1969]. W [Aho i inni, 1975] algorytm obliczania tej transformacji został rozszerzony na punkty x i = γα 2i + βα i + δ (i = 0, 1,..., n 1). Okazuje się, że jeśli punkty spełniają zależność rekurencyjną (4.1) i α 1, to transformacja Maclaurina-Lagrange a może być również obliczona przy pomocy splotów. Wyprowadzając ten algorytm korzysta się z tożsamości x i α 1 = γα i + β ( ) 1 α i, i = 1,..., n 1. (4.15) 1 α Podstawiając ją do wzoru (4.13) otrzymuje się 29
32 Nowe algorytmy ewaluacji i interpolacji jednowymiarowej gdzie α 1 y i = n 1 f k = a k ((γ (1 α) β) α i + β) k n 1 (1 α) k = ((1 α) γ β)k k! n 1 r=k Powyższy wzór można zapisać równoważnie jako β r k r!a r (r k)! (1 α) r. f k α ik, (4.16) f k = v n 1 k z k, (4.17) gdzie elementy wektorów z = (z k ) n 1 i v = (v k) n 1 są zdefiniowane następująco ((1 α) γ β)k z k =, k = 0, 1,..., n 1, k! v = w t, w = (w k ) n 1, t = (t k) n 1, w k = βk k!, t k = (n 1 k)!a n 1 k (1 α) n 1 k. (4.18) W konsekwencji z (4.14) i (4.16) otrzymuje się y = ( g h ) b, gdzie współrzędne wektorów g = (g k ) 2n 2, h = (h k) 2n 2 i b = (b k) n 1 są zdefiniowane wzorami b k = α k2 2, k = 0, 1,..., n 1, { fn 1 k b g k = n 1 k, k = 0, 1,..., n 1, 0, k = n, n + 1,..., 2n 2, (4.19) h k = k2, k = 0, 1,..., 2n 2. 2 Zatem obliczenie transformacji Maclaurina-Lagrange a dla punktów spełniających zależność rekurencyjną (4.15) wymaga obliczenia splotu - w celu wyznaczenia współczynników pewnego wielomianu, a następnie obliczenia wartości tego wielomianu w punktach, które tworzą ciąg geometryczny. Ostatecznie, przy założeniu, że c (dn) jest rzędu O (c (n)) dla d > 0, złożoność obliczeniowa tego algorytmu jest równa O (c (n)). Prowadzi to do następującego twierdzenia: 30
33 Nowe algorytmy ewaluacji i interpolacji jednowymiarowej Twierdzenie 4.7. Jeśli M : K n K n oznacza transformację Maclaurina-Lagrange a dla parami różnych punktów spełniających zależność rekurencyjną x i = αx i 1 +β (i = 0, 1,..., n 1, α 1, x 0 = γ), to M (a) = ( g h ) b, (4.20) gdzie współrzędne wektorów g = (g k ) 2n 2, h = (h k) 2n 2 i b = (b k ) n 1 są zdefiniowane wzorami (4.19). Ponadto, jeśli w ciele K istnieją pierwiastki pierwotne z jedności ψ i ω = ψ 2, odpowiednio stopni 2n i n, to algorytm bazujący na wzorze (4.20) ma złożoność obliczeniową równą O (c(n)), gdzie c(n) oznacza koszt obliczenia zwiniętego splotu. W szczególnym przypadku, gdy zwinięty splot jest obliczany ze wzoru (3.4), rząd tego algorytmu jest równy O(n log n). Poniższy algorytm prezentuje szczegóły obliczania transformacji Maclaurina- Lagrange a. Algorytm 4.8. Transformacja Maclaurina-Lagrange a dla parami różnych węzłów x i = αx i 1 + β, i = 0, 1,..., n 1, α 0, α 1, x 0 = γ. Input: Wektor a = (a 0, a 1,..., a n 1 ) K n, skalary α K\{0, 1}, β, γ K. Output: y = M (a i ) K. 1. Korzystając z (4.18) oblicz elementy wektorów z, w i t. 2. Oblicz v = w t. 3. Dla k od 1 do n 1 wykonaj: 2.1. f k = v n 1 k z k. 4. Korzystając z (4.19) oblicz elementy wektorów b, g i h. 5. Oblicz y = g h. 6. Wykonaj mnożenie po współrzędnych y = y b. 31
34 Nowe algorytmy ewaluacji i interpolacji jednowymiarowej 4.5. Analiza porównawcza algorytmów W niniejszym podrozdziale porównano złożoność obliczeniową prezentowanych w pracy algorytmów z innymi, znanymi algorytmami obliczania transformacji wielomianowych. Wyniki tych porównań dla różnych konfiguracji punktów zestawiono w tabelach 4.1, 4.3 i 4.2. Ciąg punktów Złożoność obliczeniowa Literatura równanie rekurencyjne I-go rzędu c (n) + O (n) Algorytm dowolny 2 (n2 n) Kincaid i Cheney, 2006, str. 314 dowolny 3c (n) log n + O (c(n)) Bostan i Schost, 2005 arytmetyczny c (n) + O (n) Gerhard, 2000, sekcja 3 geometryczny c (n) + O (n) Bostan i Schost, 2005, sekcja 5 Tabela 4.1: Złożoność obliczeniowa algorytmów - transformacja Lagrange a-newtona Ciąg punktów Złożoność obliczeniowa Literatura równanie rekurencyjne I-go rzędu c (n) + O (n) Algorytm dowolny 2 (n2 n) wzór (4.10) dowolny 2c (n) log n + O (c(n)) Bostan i Schost, 2005 arytmetyczny c (n) + O (n) Gerhard, 2000, sekcja 3 geometryczny c (n) + O (n) Bostan i Schost, 2005, sekcja 5 Tabela 4.2: Złożoność obliczeniowa algorytmów - transformacja Newtona-Lagrange a Tabela 4.1 prezentuje wyniki dotyczące transformacji Lagrange a-newtona, tabela transformacji Newtona-Lagrange a, natomiast tabela transformacji Maclaurina-Lagrange a. Każda z wymienionych tabel przedstawia złożoność obliczeniową proponowanych w pracy algorytmów (pierwszy wiersz w tabeli) na tle znanych rezultatów z tego zakresu. Dokładniej, pierwszy wiersz w każdej z tabel podaje złożoność obliczeniową algorytmów dla punktów spełniających równanie rekurencyjne pierwszego rzędu: x i = αx i 1 + β, i = 1, 2,..., n 1, x 0 = γ, α 0. 32
35 Nowe algorytmy ewaluacji i interpolacji jednowymiarowej Ciąg punktów Złożoność obliczeniowa Literatura równanie rekurencyjne O (c (n)) Algorytm 4.8 I-go rzędu (α 1) dowolny 3n 2 n Knuth, dowolny c (n) log n + O (c(n)) Bostan i inni, arytmetyczny c (n) log n + O (c(n)) Bostan i Schost, 2005, sekcja 4.3 geometryczny c (n) + O (n) Bostan i Schost, 2005, sekcja 5.3 Tabela 4.3: Złożoność obliczeniowa algorytmów - transformacja Maclaurina- Lagrange a Drugi i trzeci wiersz dotyczy algorytmów dla dowolnych parami różnych punktów, przy czym drugi wiersz odnosi się do klasycznych algorytmów, które można znaleźć w typowym kursie analizy numerycznej (nie korzystających z FFT), natomiast wiersz trzeci - szybkich algorytmów wykorzystujących FFT. Czwarty wiersz prezentuje złożoność algorytmów dla punktów, których współrzędne tworzą ciąg arytmetyczny x i = γ + iβ, i = 0, 1,..., n 1, β 0, oraz piąty wiersz - ciąg geometryczny x i = α i, i = 0, 1,..., n 1, α 0. Warto podkreślić, że klasyczny algorytm obliczania transformacji Newtona-Lagrange a dla dowolnej konfiguracji punktów polega na obliczeniu tablicy ilorazów różnicowych [Kincaid i Cheney, 2006]. Natomiast algorytm obliczania tej transformacji z wykorzystaniem FFT jest złożeniem dwóch transformacji Newtona-Maclaurina oraz Maclaurina-Lagrange a. W analogiczny sposób został skonstruowany algorytm obliczania odwrotnej transformacji Newtona-Lagrange a [Bostan i Schost, 2005]. Przykładowe, porównanie liczby operacji arytmetycznych wykonywanych przez algorytmy transformacji Newtona - Lagrange a dla punktów, których współrzędne spełniają równanie rekurencyjne pierwszego rzędu zostało przedstawione na rysunku 4.1. Rysunek przedstawia wykresy dla algorytmu 4.6 oraz znanych algorytmów rzędu O (n 2 ) [Kincaid i Cheney, 2006] (tabela 4.2, wiersz 2) i O ( n log 2 n ) [Bostan i Schost, 2005] (tabela 4.2, wiersz 3), przy założeniu, że splot jest obliczany algorytmem rzędu 33
36 Nowe algorytmy ewaluacji i interpolacji jednowymiarowej O (n log n) (ze wzoru (3.4)) Ze względu na dużą różnicę pomiędzy liczbą operacji porównywanych algorytmów na wykresie została zastosowana skala logarytmiczna. Rysunek 4.1: Porównanie liczby operacji arytmetycznych wykonywanych przez algorytmy obliczania transformacji Newtona-Lagrange a dla punktów generowanych przez równanie rekurencyjne pierwszego rzędu Warto zwrócić uwagę, że wykonanie obliczeń dla n = 2 16 przy pomocy algorytmu 4.6 zamiast algorytmu klasycznego [Kincaid i Cheney, 2006], pozwala na zaoszczędzenie około 99, 6% operacji arytmetycznych. W porównaniu z algorytmem wykorzystującym FFT [Bostan i Schost, 2005] ta oszczędność wynosi około 95%. Podobne wyniki uzyskuje się w przypadku pozostałych transformacji. 34
37 5. Interpolacyjne i ewaluacyjne transformacje wielowymiarowe 5.1. Sformułowanie problemu Niech n = (n 1, n 2,..., n d ) będzie wektorem dodatnich liczb całkowitych i niech Q n będzie siatką α = (α 1, α 2,..., α d ) ze współrzędnymi całkowitymi spełniającymi nierówność 0 α i < n i dla i = 1, 2,..., d. Korzystając z notacji wielowskaźnikowej, definiuje się przestrzeń P d n = P d n (K) wszystkich wielomianów p (x) = α Q n a α x α (5.1) zmiennej x = (x 1, x 2,..., x d ) K d, ze współczynnikami a α = a α1,α 2,...,α d z ciała K. Wzór (5.1) przedstawia wielomian w reprezentacji potęgowej Zakładając, że parami różne punkty x α = x α 1 1 x α x α d d. x i,0, x i,1,..., x i,ni 1, x i,j x i,k dla j k, należą do ciała K dla każdego i = 1, 2,..., d, w przestrzeni P d n, n = (n 1, n 2,..., n d ), można zdefiniować inne bazy wielomianowe, m. in. bazę Lagrange a i bazę Newtona L α (x) = B α (x) = d n i 1 i=1 j=0 j α i d α i 1 i=1 j=0 x i x i,j x i,αi x i,j, α = (α 1, α 2,..., α d ) Q n, (5.2) (x i x i,j ), α = (α 1, α 2,..., α d ) Q n, (5.3) 35
38 Interpolacyjne i ewaluacyjne transformacje wielowymiarowe Wiadomo, że wielomian interpolacyjny zdefiniowany przez następujące warunki interpolacji p (x α ) = f α, α Q n, w węzłach x α = (x 1,α1, x 2,α2,..., x d,αd ) K d, gdzie f α = f (x α ) są wartościami funkcji f : K d K, istnieje i jest określony jednoznacznie. Może on zostać zapisany w postaci Lagrange a lub Newtona p (x) = p (x) = α Q n f α L α (x) (5.4) α Q n c α B α (x), (5.5) gdzie L α (x) i B α (x) są wielomianami zdefiniowanymi odpowiednio wzorami (5.2) i (5.3). Ponadto współczynniki c α, występujące we wzorze (5.5), oznaczają wielowymiarowe ilorazy różnicowe zdefiniowane wzorami c α = f [x 1,0,..., x 1,α1 ;... ; x d,0,..., x d,αd ] = β clq α d α i i=1 j=0 f β, (5.6) (x i,βi x i,j ) j β i gdzie clq α = {β = (β 1, β 2,.., β d ) : 0 β i α i dla i = 1, 2,..., d}. W tym rozdziale zostaną zaprezentowane nowe, szybkie algorytmy obliczania wielowymiarowych transformacji z uwzględnieniem baz Lagrange a, Newtona i potęgowej w przypadku, gdy punkty x α = (x 1,α1, x 2,α2,..., x d,αd ), α Q n, są generowane przez następujące wzory rekurencyjne x i,j = λ i x i,j 1 + δ i, i = 1, 2,..., d, j = 1, 2,..., n i 1, (5.7) gdzie λ i 0, δ i i x i,0 = κ i (i = 1, 2,..., d) są stałymi z ciała K. Rząd tych algorytmów wynosi O (C (N)), gdzie N = n 1 n 2... n d i C (N) oznacza koszt obliczenia splotu d-wymiarowego. 36
Algorytmy transformacji wielomianowych i ich zastosowania
INSTYTUT BADAŃ SYSTEMOWYCH PAN mgr Joanna Kapusta Niestacjonarne Studia Doktoranckie IBS PAN Autoreferat pracy doktorskiej pt. Algorytmy transformacji wielomianowych i ich zastosowania Promotor: dr hab.
Bardziej szczegółowo3. Interpolacja. Interpolacja w sensie Lagrange'a (3.1) Dana jest funkcja y= f x określona i ciągła w przedziale [a ;b], która
3. Interpolacja Interpolacja w sensie Lagrange'a (3.1) Dana jest funkcja y= f x określona i ciągła w przedziale [a ;b], która przyjmuje wartości y 1, y 2,, y n, dla skończonego zbioru argumentów x 1, x
Bardziej szczegółowoMacierze. Rozdział Działania na macierzach
Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy
Bardziej szczegółowoUkłady równań liniowych. Krzysztof Patan
Układy równań liniowych Krzysztof Patan Motywacje Zagadnienie kluczowe dla przetwarzania numerycznego Wiele innych zadań redukuje się do problemu rozwiązania układu równań liniowych, często o bardzo dużych
Bardziej szczegółowoTEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie
Bardziej szczegółowoELEMENTY ANALIZY NUMERYCZNEJ ELEMENTY ANALIZY NUMERYCZNEJ. Egzamin pisemny zestaw 1 24 czerwca 2019 roku
Egzamin pisemny zestaw. ( pkt.) Udowodnić, że jeśli funkcja g interpoluje funkcję f w węzłach x 0, x, K, x n, a funk- cja h interpoluje funkcję f w węzłach x, x, K, x n, to funkcja x0 x gx ( ) + [ gx (
Bardziej szczegółowo5. Rozwiązywanie układów równań liniowych
5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a
Bardziej szczegółowoInterpolacja. Marcin Orchel. Drugi przypadek szczególny to interpolacja trygonometryczna
Interpolacja Marcin Orchel 1 Wstęp Mamy daną funkcję φ (x; a 0,..., a n ) zależną od n + 1 parametrów a 0,..., a n. Zadanie interpolacji funkcji φ polega na określeniu parametrów a i tak aby dla n + 1
Bardziej szczegółowodr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;
Wykłady 8 i 9 Pojęcia przestrzeni wektorowej i macierzy Układy równań liniowych Elementy algebry macierzy dodawanie, odejmowanie, mnożenie macierzy; macierz odwrotna dr Mariusz Grządziel 15,29 kwietnia
Bardziej szczegółowoVI. Równania różniczkowe liniowe wyższych rzędów
VI. 1. Równanie różniczkowe liniowe n-tego rzędu o zmiennych współczynnikach Niech podobnie jak w poprzednim paragrafie K = C lub K = R. Podobnie jak w dziedzinie rzeczywistej wprowadzamy pochodne wyższych
Bardziej szczegółowoELEMENTY ANALIZY NUMERYCZNEJ ELEMENTY ANALIZY NUMERYCZNEJ. Egzamin pisemny zestaw 1 26 czerwca 2017 roku
Egzamin pisemny zestaw czerwca 0 roku Imię i nazwisko:.... ( pkt.) Udowodnić, że jeśli funkcja g interpoluje funkcję f w węzłach x 0, x, K, x n, a funk- cja h interpoluje funkcję f w węzłach x, x, K, x
Bardziej szczegółowoPrzestrzenie wektorowe
Rozdział 4 Przestrzenie wektorowe Rozważania dotyczące przestrzeni wektorowych rozpoczniemy od kilku prostych przykładów. Przykład 4.1. W przestrzeni R 3 = {(x, y, z) : x, y, z R} wprowadzamy dwa działania:
Bardziej szczegółowoTreść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.
. Metoda eliminacji. Treść wykładu i ich macierze... . Metoda eliminacji. Ogólna postać układu Układ m równań liniowych o n niewiadomych x 1, x 2,..., x n : a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21
Bardziej szczegółowoObliczenia Naukowe. Wykład 12: Zagadnienia na egzamin. Bartek Wilczyński
Obliczenia Naukowe Wykład 12: Zagadnienia na egzamin Bartek Wilczyński 6.6.2016 Tematy do powtórki Arytmetyka komputerów Jak wygląda reprezentacja liczb w arytmetyce komputerowej w zapisie cecha+mantysa
Bardziej szczegółowoRozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm
Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i,j) (i = 1,,n;j = 1,,m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F = R lub F = C, nazywamy macierzą (rzeczywistą, gdy F
Bardziej szczegółowoMetody numeryczne. Ilorazy różnicowe. dr Artur Woike. Wzory interpolacyjne Newtona i metoda Aitkena.
Ćwiczenia nr 3. Ilorazy różnicowe Niech będą dane punkty x 0,..., x n i wartości f (x 0 ),..., f (x n ). Definiujemy rekurencyjnie ilorazy różnicowe: f (x i, x i+1 ) = f (x i+1) f (x i ) x i+1 x i, i =
Bardziej szczegółowoMetody Numeryczne Wykład 4 Wykład 5. Interpolacja wielomianowa
Sformułowanie zadania interpolacji Metody Numeryczne Wykład 4 Wykład 5 Interpolacja wielomianowa Niech D R i niech F bȩdzie pewnym zbiorem funkcji f : D R. Niech x 0, x 1,..., x n bȩdzie ustalonym zbiorem
Bardziej szczegółowoUkłady równań liniowych
Układy równań liniowych Niech K będzie ciałem. Niech n, m N. Równanie liniowe nad ciałem K z niewiadomymi (lub zmiennymi) x 1, x 2,..., x n K definiujemy jako formę zdaniową zmiennej (x 1,..., x n ) K
Bardziej szczegółowoBardzo łatwa lista powtórkowa
Analiza numeryczna, II rok inf., WPPT- 12 stycznia 2008 Terminy egzaminów Przypominam, że egzaminy odbędą się w następujących terminach: egzamin podstawowy: 30 stycznia, godz. 13 15, C-13/1.31 egzamin
Bardziej szczegółowoPrzekształcenia liniowe
Przekształcenia liniowe Zadania Które z następujących przekształceń są liniowe? (a) T : R 2 R 2, T (x, x 2 ) = (2x, x x 2 ), (b) T : R 2 R 2, T (x, x 2 ) = (x + 3x 2, x 2 ), (c) T : R 2 R, T (x, x 2 )
Bardziej szczegółowoUkłady równań i nierówności liniowych
Układy równań i nierówności liniowych Wiesław Krakowiak 1 grudnia 2010 1 Układy równań liniowych DEFINICJA 11 Układem równań m liniowych o n niewiadomych X 1,, X n, nazywamy układ postaci: a 11 X 1 + +
Bardziej szczegółowoWykład 14. Elementy algebry macierzy
Wykład 14 Elementy algebry macierzy dr Mariusz Grządziel 26 stycznia 2009 Układ równań z dwoma niewiadomymi Rozważmy układ równań z dwoma niewiadomymi: a 11 x + a 12 y = h 1 a 21 x + a 22 y = h 2 a 11,
Bardziej szczegółowoTransformaty. Kodowanie transformujace
Transformaty. Kodowanie transformujace Kodowanie i kompresja informacji - Wykład 10 10 maja 2009 Szeregi Fouriera Każda funkcję okresowa f (t) o okresie T można zapisać jako f (t) = a 0 + a n cos nω 0
Bardziej szczegółowoWykład 5. Metoda eliminacji Gaussa
1 Wykład 5 Metoda eliminacji Gaussa Rozwiązywanie układów równań liniowych Układ równań liniowych może mieć dokładnie jedno rozwiązanie, nieskończenie wiele rozwiązań lub nie mieć rozwiązania. Metody dokładne
Bardziej szczegółowoNewton vs. Lagrange - kto lepszy?
Uniwersytet Mikołaja Kopernika Wydział Matematyki i Informatyki Katedra Analizy Matematycznej Agnieszka Rydzyńska nr albumu: 254231 Praca Zaliczeniowa z Seminarium Newton vs. Lagrange - kto lepszy? Opiekun
Bardziej szczegółowo1 Macierz odwrotna metoda operacji elementarnych
W tej części skupimy się na macierzach kwadratowych. Zakładać będziemy, że A M(n, n) dla pewnego n N. Definicja 1. Niech A M(n, n). Wtedy macierzą odwrotną macierzy A (ozn. A 1 ) nazywamy taką macierz
Bardziej szczegółowoAnaliza numeryczna Kurs INP002009W. Wykład 8 Interpolacja wielomianowa. Karol Tarnowski A-1 p.223
Analiza numeryczna Kurs INP002009W Wykład 8 Interpolacja wielomianowa Karol Tarnowski karol.tarnowski@pwr.wroc.pl A-1 p.223 Plan wykładu Wielomian interpolujący Wzór interpolacyjny Newtona Wzór interpolacyjny
Bardziej szczegółowoPierścień wielomianów jednej zmiennej
Rozdział 1 Pierścień wielomianów jednej zmiennej 1.1 Definicja pierścienia wielomianów jednej zmiennej Definicja 1.1 Niech P będzie dowolnym pierścieniem. Ciąg nieskończony (a 0, a 1,..., a n,...) elementów
Bardziej szczegółowoUkłady równań i równania wyższych rzędów
Rozdział Układy równań i równania wyższych rzędów Układy równań różniczkowych zwyczajnych Wprowadzenie W poprzednich paragrafach zajmowaliśmy się równaniami różniczkowymi y = f(x, y), których rozwiązaniem
Bardziej szczegółowoZaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)
Bardziej szczegółowoMetody numeryczne. Sformułowanie zagadnienia interpolacji
Ćwiczenia nr 4. Sformułowanie zagadnienia interpolacji Niech będą dane punkty x 0,..., x n i wartości y 0,..., y n, takie że i=0,...,n y i = f (x i )). Szukamy funkcji F (funkcji interpolującej), takiej
Bardziej szczegółowoEgzamin z Metod Numerycznych ZSI, Egzamin, Gr. A
Egzamin z Metod Numerycznych ZSI, 06.2007. Egzamin, Gr. A Imię i nazwisko: Nr indeksu: Section 1. Test wyboru, max 33 pkt Zaznacz prawidziwe odpowiedzi literą T, a fałszywe N. Każda prawidłowa odpowiedź
Bardziej szczegółowoParametry systemów klucza publicznego
Parametry systemów klucza publicznego Andrzej Chmielowiec Instytut Podstawowych Problemów Techniki Polskiej Akademii Nauk 24 marca 2010 Algorytmy klucza publicznego Zastosowania algorytmów klucza publicznego
Bardziej szczegółowoUKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH
Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać układu równań liniowych Układ liniowych równań algebraicznych
Bardziej szczegółowoMatematyka dyskretna dla informatyków
Matematyka dyskretna dla informatyków Część I: Elementy kombinatoryki Jerzy Jaworski Zbigniew Palka Jerzy Szymański Uniwersytet im. Adama Mickiewicza Poznań 2007 4 Zależności rekurencyjne Wiele zależności
Bardziej szczegółowo1 Zbiory i działania na zbiorach.
Matematyka notatki do wykładu 1 Zbiory i działania na zbiorach Pojęcie zbioru jest to pojęcie pierwotne (nie definiuje się tego pojęcia) Pojęciami pierwotnymi są: element zbioru i przynależność elementu
Bardziej szczegółowoPrzestrzenie liniowe
Rozdział 4 Przestrzenie liniowe 4.1. Działania zewnętrzne Niech X oraz F będą dwoma zbiorami niepustymi. Dowolną funkcję D : F X X nazywamy działaniem zewnętrznym w zbiorze X nad zbiorem F. Przykład 4.1.
Bardziej szczegółowoTreść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów
Treść wykładu Pierścienie wielomianów. Definicja Niech P będzie pierścieniem. Wielomianem jednej zmiennej o współczynnikach z P nazywamy każdy ciąg f = (f 0, f 1, f 2,...), gdzie wyrazy ciągu f są prawie
Bardziej szczegółowoSzybka transformacja Fouriera (FFT Fast Fourier Transform)
Szybka transformacja Fouriera (FFT Fast Fourier Transform) Plan wykładu: 1. Transformacja Fouriera, iloczyn skalarny 2. DFT - dyskretna transformacja Fouriera 3. FFT szybka transformacja Fouriera a) algorytm
Bardziej szczegółowoMatematyka dyskretna. Andrzej Łachwa, UJ, /10
Matematyka dyskretna Andrzej Łachwa, UJ, 2018 andrzej.lachwa@uj.edu.pl 10/10 Podziały i liczby Stirlinga Liczba Stirlinga dla cykli (często nazywana liczbą Stirlinga pierwszego rodzaju) to liczba permutacji
Bardziej szczegółowoObliczenia naukowe Wykład nr 6
Obliczenia naukowe Wykład nr 6 Paweł Zieliński Katedra Informatyki, Wydział Podstawowych Problemów Techniki, Politechnika Wrocławska Literatura Literatura podstawowa [1] D. Kincaid, W. Cheney, Analiza
Bardziej szczegółowoROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH
Transport, studia I stopnia Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać ogólna równania nieliniowego Często występującym, ważnym problemem obliczeniowym
Bardziej szczegółowoSIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa
SIMR 06/07, Analiza, wykład, 07-0- Przestrzeń wektorowa Przestrzeń wektorowa (liniowa) - przestrzeń (zbiór) w której określone są działania (funkcje) dodawania elementów i mnożenia elementów przez liczbę
Bardziej szczegółowomacierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same
1 Macierz definicja i zapis Macierzą wymiaru m na n nazywamy tabelę a 11 a 1n A = a m1 a mn złożoną z liczb (rzeczywistych lub zespolonych) o m wierszach i n kolumnach (zamiennie będziemy też czasem mówili,
Bardziej szczegółowoBaza w jądrze i baza obrazu ( )
Przykład Baza w jądrze i baza obrazu (839) Znajdź bazy jądra i obrazu odwzorowania α : R 4 R 3, gdzie α(x, y, z, t) = (x + 2z + t, 2x + y 3z 5t, x y + z + 4t) () zór ten oznacza, że α jest odwzorowaniem
Bardziej szczegółowoObliczenia iteracyjne
Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej
Bardziej szczegółowoWstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra
Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Uwarunkowanie zadania numerycznego Niech ϕ : R n R m będzie pewna funkcja odpowiednio wiele
Bardziej szczegółowoRozwiązywanie równań nieliniowych
Rozwiązywanie równań nieliniowych Marcin Orchel 1 Wstęp Przykłady wyznaczania miejsc zerowych funkcji f : f(ξ) = 0. Wyszukiwanie miejsc zerowych wielomianu n-tego stopnia. Wymiar tej przestrzeni wektorowej
Bardziej szczegółowoAnaliza numeryczna kolokwium2a-15grudnia2005
kolokwium2a-15grudnia2005 1.Niechf(x)=a n x n +a n 1 x n 1 +...+a 0.Jakąwartośćprzyjmujeilorazróżnicowy f[x 0,...,x n ]dladowolnychn+1paramiróżnychwęzłówx j?odpowiedźuzasadnić. 2. Pokazać, że zamiana zmiennych
Bardziej szczegółowoVII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.
VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa. W rozdziale tym zajmiemy się dokładniej badaniem stabilności rozwiązań równania różniczkowego. Pojęcie stabilności w
Bardziej szczegółowo1. Wykład NWD, NWW i algorytm Euklidesa.
1.1. NWD, NWW i algorytm Euklidesa. 1. Wykład 1 Twierdzenie 1.1 (o dzieleniu z resztą). Niech a, b Z, b 0. Wówczas istnieje dokładnie jedna para liczb całkowitych q, r Z taka, że a = qb + r oraz 0 r< b.
Bardziej szczegółowoTransformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago
Transformata Fouriera Sylwia Kołoda Magdalena Pacek Krzysztof Kolago Transformacja Fouriera rozkłada funkcję okresową na szereg funkcji okresowych tak, że uzyskana transformata podaje w jaki sposób poszczególne
Bardziej szczegółowoMatematyka dyskretna. Andrzej Łachwa, UJ, /15
Matematyka dyskretna Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl 7/15 Rachunek różnicowy Dobrym narzędziem do obliczania skończonych sum jest rachunek różnicowy. W rachunku tym odpowiednikiem operatora
Bardziej szczegółowoPrzykładowe zadania z teorii liczb
Przykładowe zadania z teorii liczb I. Podzielność liczb całkowitych. Liczba a = 346 przy dzieleniu przez pewną liczbę dodatnią całkowitą b daje iloraz k = 85 i resztę r. Znaleźć dzielnik b oraz resztę
Bardziej szczegółowoMaciej Grzesiak. Wielomiany
Maciej Grzesiak Wielomiany 1 Pojęcia podstawowe Wielomian definiuje się w szkole średniej jako funkcję postaci f(x) = a 0 + a 1 x + a 2 x + + a n x n Dogodniejsza z punktu widzenia algebry jest następująca
Bardziej szczegółowoWektory i wartości własne
Treść wykładu Podprzestrzenie niezmiennicze Podprzestrzenie niezmiennicze... Twierdzenie Cayley Hamiltona Podprzestrzenie niezmiennicze Definicja Niech f : V V będzie przekształceniem liniowym. Podprzestrzeń
Bardziej szczegółowoWymagania edukacyjne z matematyki klasa II technikum
Wymagania edukacyjne z matematyki klasa II technikum Poziom rozszerzony Obowiązują wymagania z zakresu podstawowego oraz dodatkowo: 1. JĘZYK MATEMATYKI I FUNKCJE LICZBOWE Uczeń otrzymuje ocenę dopuszczającą
Bardziej szczegółowoINTERPOLACJA I APROKSYMACJA FUNKCJI
Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Wprowadzenie Na czym polega interpolacja? Interpolacja polega
Bardziej szczegółowoDystrybucje, wiadomości wstępne (I)
Temat 8 Dystrybucje, wiadomości wstępne (I) Wielkości fizyczne opisujemy najczęściej przyporządkowując im funkcje (np. zależne od czasu). Inną drogą opisu tych wielkości jest przyporządkowanie im funkcjonałów
Bardziej szczegółowoWykład 4 Udowodnimy teraz, że jeśli U, W są podprzetrzeniami skończenie wymiarowej przestrzeni V to zachodzi wzór: dim(u + W ) = dim U + dim W dim(u
Wykład 4 Udowodnimy teraz, że jeśli U, W są podprzetrzeniami skończenie wymiarowej przestrzeni V to zachodzi wzór: dim(u + W ) = dim U + dim W dim(u W ) Rzeczywiście U W jest podprzetrzenią przestrzeni
Bardziej szczegółowoZestaw zadań 5: Sumy i sumy proste podprzestrzeni. Baza i wymiar. Rzędy macierzy. Struktura zbioru rozwiązań układu równań.
Zestaw zadań : Sumy i sumy proste podprzestrzeni Baza i wymiar Rzędy macierzy Struktura zbioru rozwiązań układu równań () Pokazać, że jeśli U = lin(α, α,, α k ), U = lin(β, β,, β l ), to U + U = lin(α,
Bardziej szczegółowoWykład z równań różnicowych
Wykład z równań różnicowych 1 Wiadomości wstępne Umówmy się, że na czas tego wykładu zrezygnujemy z oznaczania n-tego wyrazu ciągu symbolem typu x n, y n itp. Zamiast tego pisać będziemy x (n), y (n) itp.
Bardziej szczegółowoZadania z algebry liniowej - sem. I Przestrzenie liniowe, bazy, rząd macierzy
Zadania z algebry liniowej - sem I Przestrzenie liniowe bazy rząd macierzy Definicja 1 Niech (K + ) będzie ciałem (zwanym ciałem skalarów a jego elementy nazywać będziemy skalarami) Przestrzenią liniową
Bardziej szczegółowoWektory i wartości własne
Treść wykładu Podprzestrzenie niezmiennicze... Twierdzenie Cayley Hamiltona Podprzestrzenie niezmiennicze Definicja Niech f : V V będzie przekształceniem liniowym. Podprzestrzeń W V nazywamy niezmienniczą
Bardziej szczegółowoRównania różniczkowe liniowe wyższych rzędów o stałych współcz
Równania różniczkowe liniowe wyższych rzędów o stałych współczynnikach Katedra Matematyki i Ekonomii Matematycznej SGH 12 maja 2016 Równanie liniowe n-tego rzędu Definicja Równaniem różniczkowym liniowym
Bardziej szczegółowoĆwiczenia nr 7. TEMATYKA: Krzywe Bézier a
TEMATYKA: Krzywe Bézier a Ćwiczenia nr 7 DEFINICJE: Interpolacja: przybliżanie funkcji za pomocą innej funkcji, zwykle wielomianu, tak aby były sobie równe w zadanych punktach. Poniżej przykład interpolacji
Bardziej szczegółowoPrzekształcanie równań stanu do postaci kanonicznej diagonalnej
Przekształcanie równań stanu do postaci kanonicznej diagonalnej Przygotowanie: Dariusz Pazderski Liniowe przekształcenie równania stanu Rozważmy liniowe równanie stanu i równanie wyjścia układu niesingularnego
Bardziej szczegółowoMetody numeryczne I Równania nieliniowe
Metody numeryczne I Równania nieliniowe Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/66 Równania nieliniowe 1. Równania nieliniowe z pojedynczym pierwiastkiem
Bardziej szczegółowoO geometrii semialgebraicznej
Inauguracja roku akademickiego 2018/2019 na Wydziale Matematyki i Informatyki Uniwersytetu Łódzkiego O geometrii semialgebraicznej Stanisław Spodzieja Łódź, 28 września 2018 Wstęp Rozwiązywanie równań
Bardziej szczegółowoAlgebra WYKŁAD 3 ALGEBRA 1
Algebra WYKŁAD 3 ALGEBRA 1 Liczby zespolone Postać wykładnicza liczby zespolonej Niech e oznacza stałą Eulera Definicja Równość e i cos isin nazywamy wzorem Eulera. ALGEBRA 2 Liczby zespolone Każdą liczbę
Bardziej szczegółowo0.1 Pierścienie wielomianów
0.1 Pierścienie wielomianów Zadanie 1. Znaleźć w pierścieniu Z 5 [X] drugi wielomian określający tę samą funkcję, co wielomian X 2 X + 1. (Odp. np. X 5 + X 2 2X + 1). Zadanie 2. Znaleźć sumę i iloczyn
Bardziej szczegółowoUwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].
Zadanie 1. Wiązka zadań Od szczegółu do ogółu Rozważmy następujący algorytm: Dane: Algorytm 1: k liczba naturalna, A[1...2 k ] tablica liczb całkowitych. n 1 dla i=1,2,,k wykonuj n 2n s 1 dopóki s
Bardziej szczegółowoMatematyka stosowana i metody numeryczne
Ewa Pabisek Adam Wosatko Piotr Pluciński Matematyka stosowana i metody numeryczne Konspekt z wykładu 6 Rozwiązywanie równań nieliniowych Rozwiązaniem lub pierwiastkiem równania f(x) = 0 lub g(x) = h(x)
Bardziej szczegółowoRozdział 3. Tensory. 3.1 Krzywoliniowe układy współrzędnych
Rozdział 3 Tensory 3.1 Krzywoliniowe układy współrzędnych W kartezjańskim układzie współrzędnych punkty P są scharakteryzowane przez współrzędne kartezjańskie wektora wodzącego r = x 1 i 1 + x 2 i 2 +
Bardziej szczegółowoFunkcja kwadratowa. f(x) = ax 2 + bx + c,
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax 2 + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax 2, a R \
Bardziej szczegółowoskłada się z m + 1 uporządkowanych niemalejąco liczb nieujemnych. Pomiędzy p, n i m zachodzi następująca zależność:
TEMATYKA: Krzywe typu Splajn (Krzywe B sklejane) Ćwiczenia nr 8 Krzywe Bezier a mają istotne ograniczenie. Aby uzyskać kształt zawierający wiele punktów przegięcia niezbędna jest krzywa wysokiego stopnia.
Bardziej szczegółowoa 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...
Wykład 15 Układy równań liniowych Niech K będzie ciałem i niech α 1, α 2,, α n, β K. Równanie: α 1 x 1 + α 2 x 2 + + α n x n = β z niewiadomymi x 1, x 2,, x n nazywamy równaniem liniowym. Układ: a 21 x
Bardziej szczegółowoCiała skończone. 1. Ciała: podstawy
Ciała skończone 1. Ciała: podstawy Definicja 1. Każdy zbiór liczb, w którym są wykonalne wszystkie cztery działania z wyjątkiem dzielenia przez 0 i który zawiera więcej niż jedną liczbę, nazywamy ciałem
Bardziej szczegółowoInformacja o przestrzeniach Sobolewa
Wykład 11 Informacja o przestrzeniach Sobolewa 11.1 Definicja przestrzeni Sobolewa Niech R n będzie zbiorem mierzalnym. Rozważmy przestrzeń Hilberta X = L 2 () z iloczynem skalarnym zdefiniowanym równością
Bardziej szczegółowoAlgorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Bardziej szczegółowoWłasności wyznacznika
Własności wyznacznika Rozwinięcie Laplace a względem i-tego wiersza: n det(a) = ( 1) i+j a ij M ij (A), j=1 gdzie M ij (A) to minor (i, j)-ty macierzy A, czyli wyznacznik macierzy uzyskanej z macierzy
Bardziej szczegółowoRozdział 2. Liczby zespolone
Rozdział Liczby zespolone Zbiór C = R z działaniami + oraz określonymi poniżej: x 1, y 1 ) + x, y ) := x 1 + x, y 1 + y ), 1) x 1, y 1 ) x, y ) := x 1 x y 1 y, x 1 y + x y 1 ) ) jest ciałem zob rozdział
Bardziej szczegółowoMatematyka stosowana i metody numeryczne
Ewa Pabisek Adam Wosatko Piotr Pluciński Matematyka stosowana i metody numeryczne Konspekt z wykładu 8 Interpolacja Interpolacja polega na budowaniu tzw. funkcji interpolujących ϕ(x) na podstawie zadanych
Bardziej szczegółowoAlgebra liniowa. 1. Macierze.
Algebra liniowa 1 Macierze Niech m oraz n będą liczbami naturalnymi Przestrzeń M(m n F) = F n F n będącą iloczynem kartezjańskim m egzemplarzy przestrzeni F n z naturalnie określonymi działaniami nazywamy
Bardziej szczegółowoRÓWNANIA RÓŻNICZKOWE WYKŁAD 2
RÓWNANIA RÓŻNICZKOWE WYKŁAD 2 Równania różniczkowe o zmiennych rozdzielonych Równania sprowadzalne do równań o zmiennych rozdzielonych Niech f będzie funkcją ciągłą na przedziale (a, b), spełniającą na
Bardziej szczegółowoFunkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.
Funkcje wymierne Jerzy Rutkowski Teoria Przypomnijmy, że przez R[x] oznaczamy zbiór wszystkich wielomianów zmiennej x i o współczynnikach rzeczywistych Definicja Funkcją wymierną jednej zmiennej nazywamy
Bardziej szczegółowoWielomiany podstawowe wiadomości
Rozdział Wielomiany podstawowe wiadomości Funkcję postaci f s = a n s n + a n s n + + a s + a 0, gdzie n N, a i R i = 0,, n, a n 0 nazywamy wielomianem rzeczywistym stopnia n; jeżeli współczynniki a i
Bardziej szczegółowoWstęp do równań różniczkowych
Wstęp do równań różniczkowych Wykład 1 Lech Sławik Instytut Matematyki PK Literatura 1. Arnold W.I., Równania różniczkowe zwyczajne, PWN, Warszawa, 1975. 2. Matwiejew N.M., Metody całkowania równań różniczkowych
Bardziej szczegółowoMatematyka dyskretna
Matematyka dyskretna Wykład 12: Krzywe eliptyczne Gniewomir Sarbicki Rozważać będziemy przestrzeń K n Definicja: x y λ K x = λy. Relację nazywamy różnieniem się o skalar Przykład: [4, 10, 6, 14] [6, 15,
Bardziej szczegółowoMet Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn
Metody numeryczne Wykład 3 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Pojęcia podstawowe Algebra
Bardziej szczegółowoAproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą
Bardziej szczegółowo13 Układy równań liniowych
13 Układy równań liniowych Definicja 13.1 Niech m, n N. Układem równań liniowych nad ciałem F m równaniach i n niewiadomych x 1, x 2,..., x n nazywamy koniunkcję równań postaci a 11 x 1 + a 12 x 2 +...
Bardziej szczegółowoCałkowanie numeryczne przy użyciu kwadratur
Całkowanie numeryczne przy użyciu kwadratur Plan wykładu: 1. Kwadratury Newtona-Cotesa a) wzory: trapezów, parabol etc. b) kwadratury złożone 2. Ekstrapolacja a) ekstrapolacja Richardsona b) metoda Romberga
Bardziej szczegółowoObliczenia naukowe Wykład nr 2
Obliczenia naukowe Wykład nr 2 Paweł Zieliński Katedra Informatyki, Wydział Podstawowych Problemów Techniki, Politechnika Wrocławska Literatura Literatura podstawowa [1] D. Kincaid, W. Cheney, Analiza
Bardziej szczegółowo1 Układy równań liniowych
II Metoda Gaussa-Jordana Na wykładzie zajmujemy się układami równań liniowych, pojawi się też po raz pierwszy macierz Formalną (i porządną) teorią macierzy zajmiemy się na kolejnych wykładach Na razie
Bardziej szczegółowoMetody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1
Normy wektorów i macierzy (5.3.1) Niech 1 X =[x x Y y =[y1 x n], oznaczają wektory przestrzeni R n, a yn] niech oznacza liczbę rzeczywistą. Wyrażenie x i p 5.3.1.a X p = p n i =1 nosi nazwę p-tej normy
Bardziej szczegółowoLiczby zespolone. x + 2 = 0.
Liczby zespolone 1 Wiadomości wstępne Rozważmy równanie wielomianowe postaci x + 2 = 0. Współczynniki wielomianu stojącego po lewej stronie są liczbami całkowitymi i jedyny pierwiastek x = 2 jest liczbą
Bardziej szczegółowoFunkcja kwadratowa. f(x) = ax 2 + bx + c = a
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax, a R \ {0}.
Bardziej szczegółowoZaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)
Bardziej szczegółowoO MACIERZACH I UKŁADACH RÓWNAŃ
O MACIERZACH I UKŁADACH RÓWNAŃ Problem Jak rozwiązać podany układ równań? 2x + 5y 8z = 8 4x + 3y z = 2x + 3y 5z = 7 x + 8y 7z = Definicja Równanie postaci a x + a 2 x 2 + + a n x n = b gdzie a, a 2, a
Bardziej szczegółowo