SZYBKI ALGORYTM Z MACIERZĄ SHURA DLA MACIERZY TRÓJDIAGONALNYCH

Podobne dokumenty
Rozwiązywanie układów równań liniowych

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

2. DZIAŁANIA NA WIELOMIANACH

Zaawansowane metody numeryczne

FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;(

3. Macierze i Układy Równań Liniowych

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Geometria analityczna - przykłady

Rozwiązania zadań z kolokwium w dniu r. Zarządzanie Inżynierskie, WDAM, grupy I i II

Matematyka licea ogólnokształcące, technika

3 1 + i 1 i i 1 2i 2. Wyznaczyć macierze spełniające własność komutacji: [A, X] = B

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Zaawansowane metody numeryczne

ELEMENTY ANALIZY NUMERYCZNEJ ELEMENTY ANALIZY NUMERYCZNEJ. Egzamin pisemny zestaw 1 24 czerwca 2019 roku

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

1 Układy równań liniowych

Rozwiązania zadań z kolokwium w dniu r. Zarządzanie Licencjackie, WDAM, grupy I i II

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

UKŁADY RÓWNAŃ LINIOWYCH - Metody dokładne

Tydzień nr 9-10 (16 maja - 29 maja), Równania różniczkowe, wartości własne, funkcja wykładnicza od operatora - Matematyka II 2010/2011L

ELEMENTY ANALIZY NUMERYCZNEJ ELEMENTY ANALIZY NUMERYCZNEJ. Egzamin pisemny zestaw 1 26 czerwca 2017 roku

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

Geometria analityczna

. Funkcja ta maleje dla ( ) Zadanie 1 str. 180 b) i c) Zadanie 2 str. 180 a) i b)

Lekcja 2. Pojęcie równania kwadratowego. Str Teoria 1. Równaniem wielomianowym nazywamy równanie postaci: n

Programowanie celowe #1

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

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

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

WEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.

TEMAT: PRZEKSZTAŁCENIA WYKRESÓW FUNKCJI PRZESUNIĘCIE O WEKTOR

Lokalna odwracalność odwzorowań, odwzorowania uwikłane

Dział I FUNKCJE I ICH WŁASNOŚCI

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

UKŁADY RÓWNAŃ LINIOWYCH

13. Równania różniczkowe - portrety fazowe

FUNKCJA KWADRATOWA. 1. Definicje i przydatne wzory. lub trójmianem kwadratowym nazywamy funkcję postaci: f(x) = ax 2 + bx + c

FUNKCJE I RÓWNANIA KWADRATOWE. Lekcja 78. Pojęcie i wykres funkcji kwadratowej str

Zadania rachunkowe z termokinetyki w programie Maxima

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

Wielomiany. dr Tadeusz Werbiński. Teoria

1 Całki funkcji wymiernych

Wykład 14. Elementy algebry macierzy

Obliczenia iteracyjne

KLASA II TECHNIKUM POZIOM PODSTAWOWY PROPOZYCJA POZIOMÓW WYMAGAŃ

Algorytmy i struktury danych. Wykład 4

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Zestaw zadań 5: Sumy i sumy proste podprzestrzeni. Baza i wymiar. Rzędy macierzy. Struktura zbioru rozwiązań układu równań.

Wymagania edukacyjne z matematyki klasa II technikum

1 Macierz odwrotna metoda operacji elementarnych

WIELOMIANY. Poziom podstawowy

UKŁADY RÓWNAŃ LINIOWYCH -Metody dokładne

Układy równań i równania wyższych rzędów

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY DRUGIEJ LICEUM OGÓLNOKSZTAŁCĄCEGO ZAKRES PODSTAWOWY

FUNKCJA KWADRATOWA. Wykresem funkcji kwadratowej jest parabola o wierzchołku w punkcie W = (p, q), gdzie

Układy równań. Kinga Kolczyńska - Przybycień 22 marca Układ dwóch równań liniowych z dwiema niewiadomymi

1 Równania różniczkowe zwyczajne o rozdzielonych zmiennych

WYMAGANIA EDUKACYJNE NIEZBĘDNE DO OTRZYMANIA PRZEZ UCZNIA POSZCZEGÓLNYCH ŚRÓDROCZNYCH I ROCZNYCH OCEN KLASYFIKACYJNYCH Z MATEMATYKI

Rozkład materiału a wymagania podstawy programowej dla I klasy czteroletniego liceum i pięcioletniego technikum. Zakres rozszerzony

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

3. FUNKCJA LINIOWA. gdzie ; ół,.

Wyk lad 4 Macierz odwrotna i twierdzenie Cramera

Zasady dynamiki Newtona. Pęd i popęd. Siły bezwładności

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Definicja pochodnej cząstkowej

Rachunek wektorowy - wprowadzenie. dr inż. Romuald Kędzierski

Jak Arabowie rozwiązywali równania?

WYRAŻENIA ALGEBRAICZNE

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

Egzamin ustny z matematyki semestr II Zakres wymaganych wiadomości i umiejętności

A,B M! v V ; A + v = B, (1.3) AB = v. (1.4)

ROZKŁAD MATERIAŁU DLA KLASY I LICEUM I TECHNIKUM (ZAKRES PODSTAWOWY I ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

x 2 = a RÓWNANIA KWADRATOWE 1. Wprowadzenie do równań kwadratowych 2. Proste równania kwadratowe Równanie kwadratowe typu:

9. Dyskretna transformata Fouriera algorytm FFT

CIĄGI wiadomości podstawowe

Co to jest wektor? Jest to obiekt posiadający: moduł (długość), kierunek wraz ze zwrotem.

Komputerowa analiza zagadnień różniczkowych 3. Numeryczne zagadnienie własne

Zadanie 1. Z definicji wyprowadź wzory na pochodne funkcji. Przypominam definicję pochodnej f (x)

Kształcenie w zakresie podstawowym. Klasa 2

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY. (zakres podstawowy) klasa 2

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

Przekształcanie równań stanu do postaci kanonicznej diagonalnej

Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne:

UKŁADY RÓWNAŃ LINIOWYCH

Wymagania programowe w porządku związanym z realizacją programu

Układy równań liniowych. Ax = b (1)

Wyk lad 5 W lasności wyznaczników. Macierz odwrotna

Zadania egzaminacyjne

Rozdział 1 PROGRAMOWANIE LINIOWE

2. Układy równań liniowych

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe.

Indukcja matematyczna. Zasada minimum. Zastosowania.

if (wyrażenie ) instrukcja

Klasa 1 technikum. Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne:

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.

METODY NUMERYCZNE. wykład. konsultacje: wtorek 10:00-11:30 środa 10:00-11:30. dr inż. Grażyna Kałuża pokój

Transkrypt:

SZYBKI ALGORYTM Z MACIERZĄ SHURA DLA MACIERZY TRÓJDIAGONALNYCH Rozwiązujemy układ z macierzą trójdiagonalną. Założymy dla prostoty opisu, że macierz ma stałe współczynniki, to znaczy, że na głównej diagonali jest zawsze element d, na poddiagonali element a, zaś na naddiagonali element b. Opisana tu metoda, z małą modyfikacją, może być zastosowana również do układów z dowolną macierzą trójdiagonalną. (1) Ax = f. Macierz A zapisana blokowo N + 1 bloków kwadratowych, wymiaru R + 1 R + 1 (2) A = D B A D B A D B A D Macierz w postaci oryginalnej (N M) gdzie M = (N + 1)(R + 1) A = d b a d b a d b a d 1

Wektory x i f dostosowane do rozkładu blokowego A: x = [x 0, x 1,, x N ] T f = [f 0, f 1,, f N ] T Układ w postaci blokowej po rozpisaniu: (3) Dx 0 + Bx 1 = f 0 Ax j 1 + Dx j + Bx j = f j, j = 1, 2,, N 1, Ax N 1 + Dx N = f N Mamy N + 1 procesorów, ponumerowanych 0, 1, N. Każdemu procesorowi jest przyporządkowane jedno równanie blokowe, które ten procesor będzie obsługiwał. ALGORYTM. 1. Wszystkie procesory j = 0, 1,, N wykonują równolegle pierwszy krok algorytmu. W procesorze o numerze j polega to na rozwiązania trzech układów równań o wymiarze R + 1: (4) D x j = f j x j, to pierwsze przybliżenie wektora x j, (5) Dw 0 = e 0, (6) Dw R = e R, z tą samą macierzą trójdiagonalną D, gdzie e k, 0 k R 2

są wersorami osi współrzednych. Zauważmy, że dla każdego j, 0 j N, A = ae 0 e T R, B = be R e T 0, więc, po wykonaniu pierwszego kroku, równania (3) będzie można zapisać tak: (7) x 0 = x 0 (bw R ) e T 0 x 1 x j = x j (aw 0 ) e T R x j 1 (bw R ) e T 0 x j+1, 1 j N 1 x N = x N (aw 0 ) e T R x N 1 Wzory (7) określają poprawki, które po dodaniu do x j pozwolą obliczyć dokładne składowe rozwiązania x j, 0 j N. Zauważmy, że na tym etapie, w ramach jednego procesora, nie da się wykorzystać poprawek, gdyż w każdym z równań (7) występują zmienne x j dla różnych j. 2. Drugi krok algorytmu polega na utworzeniu w każdym procesorze UKŁADU RÓWNAŃ SHURA, który pozwoli wykorzystać poprawki, i ostatecznie, znaleźć składowe x j dokładnego rozwiązania. UKŁAD SHURA ma niski wymiar (N 1)(N 1) i jest tródiagonalny. Bedzie rozwiązywany w każdym procesorze. Najpierw zdefiniujemy procedurę numeracyjną, przy pomocy której określimy zmienne UKŁADU SHURA i jego współczynniki 3

PROCEDURA NUMERACYJNA NUMEROWANIE ZMIENNYCH I RÓWNAŃ UKŁADU SHURA W oparciu o równania poprawek (7) opiszemy tę procedurę w przypadku, gdy N = 4. (8) e T R x 0 = x 0 bw R [e T 0 x 1] 0 e T 0 et R x 1 = x 1 aw 0 [e T R x 0] 1 bw R [e T 0 x 2] 2 e T 0 et R x 2 = x 2 aw 0 [e T R x 1] 3 bw R [e T 0 x 3] 4 e T 0 et R x 3 = x 3 aw 0 [e T R x 2] 5 bw R [e T 0 x 4] 6 e T 0 x 4 = x 4 aw 0 [e T R x 3] 7 Zmienne UKŁADU SHURA oznaczamy przez gdzie z s, 0 s 2N 1 = 7, z s = [ ] s, 0 s 2N 1 = 7. Jak czytać wzory (8)? Każde równanie blokowe z (8) jest mnożone lewostronnnie przez e T 0 lub/i przez et R, dzięki czemu w lewej części wzorów (8) określających poprawki, pojawią się zmienne z s, 0 s 2(N 1) 1. Te same zmienne z s można znaleźć już po prawej stronie wzorów (8) w kwadratowych nawiasach. Zauważmy też, że mnożenie lewostronne przez e T 0 wprowadza zmienne o numerach parzystych, zaś mnożenie lewostronne przez e T R wprowadza zmienne o numerach nieparzystych. Powstaje w ten sposób układ 4

(N 1)(N 1) równań skalarnych. Jest to UKŁAD SHURA. Wykorzystując teraz wektory w 0 i w R o- kreślone wzorami (5) i (6) możemy wyznaczyć w- spółczynniki tego układu i, po uporządkowaniu, wypisać go explicite: UKŁAD SHURA (9) Σz = F h 1 1 p q g h 1 1 p q g h 1 1 p q g h 1 1 p z 0 z 1 z 2 z 3 z 4 z 5 z 6 z 7 = e T R x 0 e T 0 x 1 e T R x 1 e T 0 x 2 e T R x 2 e T 0 x 3 e T R x 3 e T 0 x 4. ELEMENTY MACIERZY SHURA g = aw R,0, h = bw R,R p = aw 0,0, q = bw 0,R gdzie: w 0 = [w 0,0, w 0,1,, w 0,R ] T 5

i w R = [w R,0, w R,1,, w R,R ] T. Zauważmy jeszcze, że do utworzenia macierzy U- KŁADU SHURA potrzebne są tylko wektory w 0 i w R, które są w każdym procesorze. Nie możemy jednak rozwiązać tego układu, ponieważ nie mamy wszystkich składowych wektora prawej strony. Zauważmy, że udało się nam dojść do tego punktu, nie korzystając z komunikacji między procesorami. Ale na tym koniec! (:-() 3. Aby rozwiązać UKŁAD SHURA w każdym procesorze i obliczyć POPRAWKI x 0 = x 0 bw R z 0 x 1 = x 1 aw 0 z 1 bw R z 2 x 2 = x 2 aw 20 z 3 bw R z 4 x 3 = x 3 aw 30 z 5 bw R z 6 x 4 = x 4 aw 40 z 7 trzeba w każdym procesorze skompletować w całe rozwiązanie UKŁADU SHURA. Na sczczęście w tym przypadku można to zrobić przy pomocy jednego rozkazu systemu MPI. Oto jeden ze sposobów. Ponieważ w każdym procesorze (np. o numerze j) w mamy obliczony wektor 6 x j,

to mamy częśc wektora prawej strony. Rozpatrzmy nasz przykład dla N = 4, wtedy UKŁAD SHURA jest wymiaru 8 8 (a) jeśli j = 0 to tworzymy wektor F 0 = [e T R x 0, 0, 0, 0, 0, 0, 0, 0] T (b) jeśli j = 4 to tworzymy wektor F 4 = [0, 0, 0, 0, 0, 0, 0, e T R x 4] T (c) jeśli np. j = 2 to tworzymy wektor (d) i.t.d. F j = [0, 0, 0, e T 0 x 2, e T R x 2, 0, 0, 0] T Teraz w każdym procesorze rozwiązujemy UKŁAD SHURA Σy j = F j. Przy pomocy komendy MPI Allreduce dla wektorów y j z opcją SUM wydanej we wszystkich procesorach, w każdym z nich otrzymujemy na miejscu wektora y j pełne rozwiązanie z UKŁADU SHURA. W każdym z procesorów, przy pomocy odpowiedniej poprawki, znajdujemy wektor x j, część dokładnego rozwiązania naszego układu równań. ============================= Taki algorytm po raz pierwszy zastosował i opisał STEFAN BONDELI z ZÜRICHU. Divide and Conquer Lecture Notes in Computer Science vol.457 (1990). 7