Digitální učební materiál

Podobné dokumenty
Digitální učební materiál

Digitální učební materiál

Digitální učební materiál

Digitální učební materiál

Digitální učební materiál

Digitální učební materiál

Digitální učební materiál

Digitální učební materiál

Digitální učební materiál

Digitální učební materiál

Digitální učební materiál

Digitální učební materiál

Sada 1 - Základy programování

Cvičení z Numerických metod I - 12.týden

Digitální učební materiál

Soustavy lineárních rovnic

0.1 Úvod do lineární algebry

Numerické metody a programování

Sada 1 - Základy programování

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

4. Trojúhelníkový rozklad p. 1/20

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Základy maticového počtu Matice, determinant, definitnost

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

0.1 Úvod do lineární algebry

Závěrečná zkouška z informatiky 2011

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Aplikovaná numerická matematika - ANM

Numerické metody a programování. Lekce 4

IB112 Základy matematiky

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Připomenutí co je to soustava lineárních rovnic

Přijímací zkouška z informatiky Dz

Co je obsahem numerických metod?

Matematika B101MA1, B101MA2

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

ČTVERCOVÉ MATICE. Čtvercová matice je taková matice, kde počet řádků je roven počtu jejích sloupců. det(a) značíme determinant čtvercové matice A

Programovanie I. Úvod do programovania Mgr. Stanislav Horal, Katedra informatiky, FPV, UCM

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

DRN: Soustavy linárních rovnic numericky, norma

Digitální učební materiál

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Operace s maticemi. 19. února 2018

Paralelní LU rozklad

Lineární algebra. Soustavy lineárních rovnic

Základy matematiky pro FEK

Tematická oblast: Programování 2 (VY_32_INOVACE_08_2_PR) Anotace: Využití ve výuce: Použité zdroje:

Základy matematiky pro FEK

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Operace s maticemi

Lineární algebra - I. část (vektory, matice a jejich využití)

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

[1] LU rozklad A = L U

Číslo projektu: CZ.1.07/1.4.00/ Název DUM: Měření teploty Číslo DUM: III/2/FY/2/1/14 Vzdělávací předmět: Fyzika Tematická oblast: Fyzikální

4. LU rozklad a jeho numerická analýza

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.

pro řešení soustav lineárních rovnic. Gaussova eliminační metoda pro řešení soustavy lineárních rovnic sestává ze dvou kroků:

Lineární algebra Operace s vektory a maticemi

Poslední nenulová číslice faktoriálu

HODNOST A DETERMINANT MATICE, INVERZNÍ MATICE

MO-ME-N-T MOderní MEtody s Novými Technologiemi

Soustavy linea rnı ch rovnic

HODNOST A DETERMINANT MATICE, INVERZNÍ MATICE

(Cramerovo pravidlo, determinanty, inverzní matice)

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

2013 Martin Kačer. BI-EP2 Efektivní programování 2

Čtvercové matice. Čtvercová matice je taková matice, jejíž počet řádků je roven počtu jejích sloupců

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Několik příkladů v Turbo Pascalu

Matematika. Kamila Hasilová. Matematika 1/34

Programovací jazyk Pascal

D 11 D D n1. D 12 D D n2. D 1n D 2n... D nn

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2

Soustava m lineárních rovnic o n neznámých je systém

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

Determinant matice řádu 5 budeme počítat opakovaným použitím rozvoje determinantu podle vybraného řádku nebo sloupce. Aby byl náš výpočet

Sada 1 - Základy programování

Rozhledy matematicko-fyzikální

Jazyk C++, některá rozšíření oproti C

P 1 = P 1 1 = P 1, P 1 2 =

Šablony, kontejnery a iterátory

Uspořádanou n-tici reálných čísel nazveme aritmetický vektor (vektor), ā = (a 1, a 2,..., a n ). Čísla a 1, a 2,..., a n se nazývají složky vektoru

Soustavy lineárních rovnic a determinanty

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Šablony, kontejnery a iterátory

Operační systémy. Cvičení 4: Programování v C pod Unixem

VÝUKOVÝ MATERIÁL PRO ŽÁKY

vyjádřete ve tvaru lineární kombinace čtverců (lineární kombinace druhých mocnin). Rozhodněte o definitnosti kvadratické formy κ(x).

Aplikace matematiky. Josef Čermák Algoritmy. 27. PSQRT. Řešení soustavy rovnic se symetrickou pozitivně definitní

Transkript:

Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_154_IVT Autor: Ing. Pavel Bezděk Tematický okruh: Algoritmy Datum tvorby: Srpen 2013 Ročník: 4. ročník a oktáva Anotace: Algoritmus XIV. Algoritmus řešení soustav lineárních rovnic I. - Gaussova eliminace 1 Metodický pokyn: Při výuce nutno postupovat individuálně. Části DUM Pro hloubavé jsou určeny pro zájemce o studium na technických a matematicko-fyzikálních oborech vysokých škol. Pokud není uvedeno jinak, je použitý materiál z vlastních zdrojů autora DUM.

Autor Ing. Pavel Bezděk Vytvořeno dne 31. 8. 2013 Odpilotováno dne 10. 3. 2014 ve třídě 8.Y Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Klíčová slova Informatika a informační a komunikační technologie Informatika a výpočetní technika Algoritmus Algoritmus XIV. Algoritmus řešení soustav lineárních rovnic I. - Gaussova eliminace 1 Algoritmus, Gaussova eliminace, matice

Řešení soustav lineárních rovnic Gaussova eliminace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Pavel Bezděk. Dostupné z Metodického portálu www.rvp.cz ; ISSN 1802-4785. Provozuje Národní ústav pro vzdělávání, školské poradenské zařízení a zařízení pro další vzdělávání pedagogických pracovníků (NÚV).

Gaussova eliminace Řešíme např. soustavu rovnic: x + y + z + t = 10 x - y + z - t = -2 2x + 3y + z - 2t = 3 x - 2y - 3z + 2t = -4 Nejprve předeme zápis soustavy rovnic na maticový tvar a pak upravujeme řádky matice až budou pod hlavní diagonálou samé nuly, vznikne trojúhelníková matice.

Převádíme do maticového tvaru 1 1 1 1 10 1-1 1-1 -2 2 3 1-2 3 1-2 -3 2-4

S řádky matice můžeme provádět tyto úpravy: Násobit (popř. dělit) libovolný řádek matice nenulovým číslem. Prohazovat mezi sebou libovolné řádky matice. (Např. zaměnit 1. řádek s 3. řádkem, 2.řádek s 5. řádkem atd.) Přičítat (odečítat) libovolný řádek od jiného řádku. (Tedy i libovolný (nenulový) násobek jednoho řádku, od libovolného (nenulového) násobku jiného řádku.) Je-li některý řádek vytvořen součtem násobků jiných řádků, je možné ho vymazat. (Po úpravách by byl stejný, jako některý z řádků a po dalších úpravách by obsahoval samé nuly.)

Nejprve vytvoříme nuly v 1. sloupci Přičítáme nebo odečítáme násobky 1. řádku postupně k ostatním řádkům, tak aby místo 1. prvku v každém řádku byla nula(kromě 1. řádku). 1. řádek odečteme od 2. řádku Dvojnásobek 1.řádku odečteme od 3. řádku 1. řádek odečteme od 4. řádku (Kdyby se hodil se pro postupné přičítání nebo odečítání od jiných řádků lépe jiný řádek, zaměníme ho nejprve s prvním řádkem.)

Vytvoření nul v 1. sloupci. 2. řádek vydělíme (-2). 1 1 1 1 10 0-2 0-2 -12 /(-2) 0 1-1 -4-17 0-3 -4 1-14

1 1 1 1 10 0 1 0 1 6 0 1-1 -4-17 0-3 -4 1-14

Nyní musíme dostat nuly se 2. sloupci, kromě 2. řádku S 1. prvním řádkem již nepracujeme. 2. řádek odečteme od 3. řádku, abychom dostali ve 2. sloupci v 3. řádku nulu. 3-násobek 2. řádku přičteme k 4. řádku a tím dostaneme ve 2. sloupci 4. řádku nulu.

Dostali jsme nuly ve 2. sloupci. 1 1 1 1 10 0 1 0 1 6 0 0-1 -5-23 0 0-4 4 4 *(-1) / 4

Vytváření nul v 3.sloupci 1 1 1 1 10 0 1 0 1 6 0 0 1 5 23 0 0-1 1 1 3. řádek přičítáme k 4. řádku. Abychom dostali ve 3. sloupci 4. řádku nulu.

Vytvořili jsme nuly i v 3. sloupci 1 1 1 1 10 0 1 0 1 6 0 0 1 5 23 0 0 0 6 24 / 6 4. řádek vydělíme 6.

Výsledná trojúhelníková matice. Pod hlavní diagonálou jsou samé nuly. 1 1 1 1 10 0 1 0 1 6 0 0 1 5 23 0 0 0 1 4 Zpětnou substitucí dopočítáme kořeny soustavy rovnic.

Naše soustava rovnic se změnila na tvar: x + y + z + t = 10 y + t = 6 z + 5t = 23 t = 4 zpětná substituce: t=4 z+5t=23 z+20=23 z=3 y + t= 6 y + 4= 6 y=2 x+y+z+t=10 x+2+3+4=10 x=1

Program na Gaussovu eliminaci - PASCAL program GaussovaEliminace; uses crt; var a : array[1..6,1..6] of real; b : array[1..6] of real; x : array[1..6] of real; i, j, k, m, n, o, p, r : integer; vymena : boolean; procedure Vstup; begin write('vloz pocet radku soustavy linearnich rovnic : '); readln(n); for i := 1 to n do for j := 1 to n+1 do begin gotoxy(10*j,i+9); if (j <= n) then begin write('a[',i,j,']: '); read(a[i,j]) end else begin write('b[',i,']: '); readln(b[i]) end end; end;

procedure Vymena_radku(c,d: integer); var pom : real; e, f : integer; begin if (a[c,d] = 0) then begin e := c; repeat vymena := false; Inc(e); if (a[e,d] <> 0) then begin vymena := true; for f := 1 to n do begin pom := a[c,f]; a[c,f] := a[e,f]; a[e,f] := pom; end; pom := b[c]; b[c] := b[e]; b[e] := pom; end; until (k = n); end; end;

procedure Gauss; var pom : real; begin for i := 1 to n-1 do for j := i to n-1 do Vymena_radku(j,i); for i := 1 to n-1 do begin if (a[i,i] <> 0) then begin k := i; repeat Inc(k); if (a[k,i] <> 0) then begin pom := a[i,i]/a[k,i]; for o := i to n do a[k,o] := a[k,o]*pom; b[k] := b[k]*pom; end; for o := i to n do a[k,o] := a[k,o]-a[i,o]; b[k] := b[k]-b[i]; until (k = n); end; end;

if a[n,n]=0 then writeln('chyba: Matice je singularni.') else begin x[n] := b[n]/a[n,n]; i := n - 1; repeat pom := 0; for j := i + 1 to n do pom := pom + a[i,j]*x[j]; x[i] := (b[i]-pom)/a[i,i]; i := i - 1; until (i = 0); end; end; procedure Vystup; begin for i := 1 to n do for j := 1 to n+1 do begin if (j <= n) then write(' ',a[i,j]:8:2) else writeln(' ',b[i]:8:2); end; writeln; end;

procedure Vystup2; begin for i := 1 to n do end; write(' x',i,' = ',x[i]:8:5); writeln; writeln; begin clrscr; writeln('program pro vypocet soustavy linearnich rovnic pomoci '); writeln(' Gaussovy eliminacni metody.'); writeln; Vstup; Gauss; writeln; writeln; write(' Trojuhelnikova matice:'); writeln; writeln; Vystup; write(' Reseni soustavy:'); Vystup2; writeln; write('stiskni ENTER...'); readln; end.

// GEM //#include "stdafx.h" #include <stdio.h> #include <iostream> #include<math.h> #include<iomanip> using namespace std; Gaussova eliminace C++ float GEM(float *a[],float *b[], int N, int M) { for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { b[i][j] = a[i][j]; } } Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Pavel Bezděk. Dostupné z Metodického portálu www.rvp.cz ; ISSN 1802-4785. Provozuje Národní ústav pro vzdělávání, školské poradenské zařízení a zařízení pro další vzdělávání pedagogických pracovníků (NÚV).

int max = 0; float pom; for (int i = 0; i<n; i++) //nalezení pivota { for (int j = i + 1; j<n; j++) { if (fabs(b[j][i])>fabs(b[i][i])) max = j; } for (int k = i; k<m; k++) { pom = b[i][k]; b[i][k] = b[max][k]; b[max][k] = pom; } { } for (int j = i + 1; j<n; j++) for (int k = N; k >= i; k--) { b[j][k] = b[j][k] - b[i][k] * b[j][i] / b[i][i]; } } Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Pavel Bezděk. Dostupné z Metodického portálu www.rvp.cz ; ISSN 1802-4785. Provozuje Národní ústav pro vzdělávání, školské poradenské zařízení a zařízení pro další vzdělávání pedagogických pracovníků (NÚV).

float r[n]; int res = M-1; for(int i=0; i<n; i++) r[i]=b[i][res]; int pr = 0; if(pr==0) { for(int j=n-1; j>=0; j--) { pom=0; for(int k=j+1; k<=n; k++) pom=pom+b[j][k]*r[k]; r[j]=(b[j][n]-pom)/b[j][j]; } } cout<<"------------------------------------------------------------------"<<endl; cout<<endl<<" Reseni soustavy: "<<endl; for (int j = 0; j < M-1; j++) { cout<<endl<<" x"<<j+1<<"= "<<setprecision(2)<< r[j]; //printf("x%d = %5.3f \n",j+1, r[j]); } cout<<endl; cout<<"------------------------------------------------------------------"<<endl; return **b; } Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Pavel Bezděk. Dostupné z Metodického portálu www.rvp.cz ; ISSN 1802-4785. Provozuje Národní ústav pro vzdělávání, školské poradenské zařízení a zařízení pro další vzdělávání pedagogických pracovníků (NÚV).

void vypismat(float *a[],int N,int M) { cout<<endl; for (int i = 0; i<n; i++) { //vypisuje prvky, kdyz dojde na konec radky, odradkuje for (int j = 0; j<m; j++) { cout<<setw(7)<<setprecision(1) <<a[i][j]; //printf(" %5.3f ", a[i][j]); if (j == M - 1) cout<<endl; if (j == N-1) cout<<" "; } } } void naplmatici(float *a[],int N,int M) { int res; cout<<endl; cout<<" Vyplnte matici: "<<endl; for (int x = 0; x < N; x++) { for (int j = 0; j < M; j++) { cout<<" matice["<<x<<"]["<<j<<"]= "; cin>>a[x][j]; //scanf("%f", &a[x][j]); } } } Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Pavel Bezděk. Dostupné z Metodického portálu www.rvp.cz ; ISSN 1802-4785. Provozuje Národní ústav pro vzdělávání, školské poradenské zařízení a zařízení pro další vzdělávání pedagogických pracovníků (NÚV).

int main(int argc) { int N, M; cout<<" GAUSSOVA ELIMINACE "<<endl; cout<<" Zadejte pocet radku matice: "; cin>>n; //scanf("%d", &N); cout<<" Zadejte pocet sloupcu matice: "; cin>>m; //scanf("%d", &M); cout<<endl; //----------------------------------------------------------------------------- float**pole; pole = new float*[n]; for (int i = 0; i < N; i++) { pole[i] = new float[m]; } naplmatici(pole,n,m); //----------------------------------------------------------------------------- float**pole1; pole1 = new float*[n]; for (int i = 0; i < N; i++) { pole1[i] = new float[m]; } Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Pavel Bezděk. Dostupné z Metodického portálu www.rvp.cz ; ISSN 1802-4785. Provozuje Národní ústav pro vzdělávání, školské poradenské zařízení a zařízení pro další vzdělávání pedagogických pracovníků (NÚV).

GEM(pole, pole1, N, M); //------------------------------------------------------------------------------ cout<<" Matice soustavy rovnic: "<<endl; vypismat(pole,n,m); cout<<"------------------------------------------------------------------"<<endl; cout<<" Trojuhelnikova matice: "<<endl; vypismat(pole1,n,m); //---------------------------------------------------------------------------------- for (int i = 0; i<n; i++) { delete[] pole[i]; delete[] pole1[i]; } delete[] pole; delete[] pole1; } return 0; Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Pavel Bezděk. Dostupné z Metodického portálu www.rvp.cz ; ISSN 1802-4785. Provozuje Národní ústav pro vzdělávání, školské poradenské zařízení a zařízení pro další vzdělávání pedagogických pracovníků (NÚV).

Stabilita algoritmu Gaussova eliminace Pokud při úpravách řádků násobíme velmi velkými čísly, pak rozdíl, přesného a vypočteného řešení na počítači, je nepřijatelně velký. V tom případě není algoritmus numericky stabilní.

Test Vypočtete tyto soustavy rovnic: x 1 + x 2 + x 3 - x 4 = 8 3x 1-2x 2 + 2x 3 - x 4 = 7 2x 1-5x 2-3x 3 + 2x 4 = -21 4x 1 + 3x 2-7x 3-2x 4 = -13 x 1 + x 2 + 2x 3 + 3x 4 = 7 2x 1-3x 2 + x 3 + x 4 = -1 3x 1-2x 2 + 3x 3 + 4x 4 = 6 5x 1 7x 3 + 10x 4 = 20

x 1 + x 2 + x 3 - x 4 = 8 3x 1-2x 2 + 2x 3 - x 4 = 7 2x 1-5x 2-3x 3 + 2x 4 = -21 4x 1 + 3x 2-7x 3-2x 4 = -13 Nejprve převedeme na maticový tvar

1 1 1-1 8 3-2 2-1 7 2-5 -3 2-21 4 3-7 -2-13 Pod hlavní diagonálou(červená čísla) musím dostat nuly (na místech zelených čísel). Přičtu (-3)-násobek 1. řádku k 2. řádku; Přičtu (-2)-násobek 1. řádku k 3. řádku; Přičtu (-4)-násobek 1. řádku k 4. řádku;

1 1 1-1 8 0-5 -1 2-17 0-7 -5 4-37 0-1 -11 2-45 Vyměním 2. a 4. řádek a nový 2. řádek vynásobím (-1)

1 1 1-1 8 0 1 11-2 45 0-7 -5 4-37 0-5 -1 2-17 Přičtu 7-násobek 2. řádku k 3. řádku; Přičtu 5-násobek 2. řádku k 4. řádku;

1 1 1-1 8 0 1 11-2 45 0 0 72-10 278 0 0 54-8 208 /2 /2 Vydělím 3. a 4. řádek 2

1 1 1-1 8 0 1 11-2 45 0 0 36-5 139 0 0 27-4 104 *(-27) * 36 Přičtu (-27)-násobek 3.řádku ke 36-násobku 4. řádku

1 1 1-1 8 0 1 11-2 45 0 0-972 135-3753 0 0 972-144 3744

1 1 1-1 8 0 1 11-2 45 0 0 36-5 139 0 0 0-9 9 Ještě bych mohl vydělit 4. řádek (-9), ale to již není třeba.

-9x 4 = -9 x 4 = -9/(-9) x 4 = 1 36x 3-5x 4 = 139 36x 3-5=139 36x 3 =144 x 3 = 4 x 2 + 11x 3-2x 4 =45 x 2 + 44-2 =45 x 2 = 45-44 + 2 = 3 x 2 = 3 x 1 + x 2 + x 3 x 4 = 8 x 1 + 3 + 4 1 = 8 x 1 = 8 3 4 +1 x 1 = 2

x 1 + x 2 + 2x 3 + 3x 4 = 7 2x 1-3x 2 + x 3 + x 4 = -1 3x 1-2x 2 + 3x 3 + 4x 4 = 6 5x 1 7x 3 + 10x 4 = 20 Převedu na maticový tvar

1 1 2 3 7 2-3 1 1-1 3-2 3 4 6 5 0 7 10 20 Přičtu (-2)-násobek 1. řádku k 2. řádku; Přičtu (-3)-násobek 1. řádku k 3. řádku; Přičtu (-5)-násobek 1. řádku k 4. řádku;

1 1 2 3 7 0-5 -3-5 -15 0-5 -3-5 -15 0-5 -3-5 -15 3. a 4. řádek jsou lineárně závislé, proto je mohu odstranit (po úpravách by byly nulové).

1 1 2 3 7 0 5 3 5 15 Zvolím parametry: x 3 = s x 4 = t 5x 2 + 3s + 5t =15 x 2 =3 3/5s t x 1 + 3 3/5 s t + 2s + 3t = 7 x 1 =7-3 + (3-10)/5 s + t - 3t x 1 = 4 7/5s -2t Řešení: [ 4 7/5s -2t, 3 3/5s t, s, t ] x1 x2 x3 x4

Použité zdroje Mgr. PADRTA, David. Společnost Mgr. David Padrta: ALGORITMY A PROGRAMOVÁNÍ. [online]. 06. září 2001 [cit. 2013-08-31]. Dostupné z: http://www.isd.cz/programy/gauss.html MÍKA, Stanislav. Numerické metody algebry. Vyd. 2. Praha: SNTL, 1985, 169 s. Matematika pro vysoké školy technické, sešit IV. BLAŽEK, Jaroslav. Algebra a teoretická aritmetika I., 1. vyd. Praha: Státní pedagogické nakladatelství, 1983. 278 s.