Semestrální projekt. Předmět: Programování v jazyce C. Zadání: Operace s maticemi. Uživatelský manuál. ver. 1.0



Podobné dokumenty
5. Maticová algebra, typy matic, inverzní matice, determinant.

Součin matice A a čísla α definujeme jako matici αa = (d ij ) typu m n, kde d ij = αa ij pro libovolné indexy i, j.

Učební texty k státní bakalářské zkoušce Matematika Matice. študenti MFF 15. augusta 2008

Skalár- veličina určená jedním číselným údajem čas, hmotnost (porovnej životní úroveň, hospodaření firmy, naše poloha podle GPS )

2.2. SČÍTÁNÍ A NÁSOBENÍ MATIC

Regulární matice. Věnujeme dále pozornost zejména čtvercovým maticím.

Jazyk matematiky Matematická logika Množinové operace Zobrazení Rozšířená číslená osa

Operace s maticemi Sčítání matic: u matic stejného typu sečteme prvky na stejných pozicích: A+B=(a ij ) m n +(b ij ) m n =(a ij +b ij ) m n.

Univerzita Jana Evangelisty Purkyně v Ústí nad Labem. Jak na PDF

Elektronická dokumentace - LATEX. Maticové operace

3. Matice a determinanty

Lenka Zalabová. Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita. zima 2012

Registr smluv. Dokumentace k registru smluv v IS ALeX pro ČSAD Vsetín, ČSAD Invest a další společnosti skupiny. v

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

Matice se v některých publikacích uvádějí v hranatých závorkách, v jiných v kulatých závorkách. My se budeme držet zápisu s kulatými závorkami.

Lineární algebra. Matice, operace s maticemi

A0M15EZS Elektrické zdroje a soustavy ZS 2011/2012 cvičení 1. Jednotková matice na hlavní diagonále jsou jedničky, všude jinde nuly

KIV/ZI Základy informatiky MS EXCEL MATICOVÉ FUNKCE A SOUHRNY

Determinant. Definice determinantu. Permutace. Permutace, vlastnosti. Definice: Necht A = (a i,j ) R n,n je čtvercová matice.

Matice. Přednáška MATEMATIKA č. 2. Jiří Neubauer. Katedra ekonometrie FEM UO Brno kancelář 69a, tel

Uživatelská příručka pro Účetní / Vedoucí finanční účtárny. Projekt DMS modul Faktury

Podrobný postup stažení, vyplnění a odeslání elektronické žádosti

ESTATIX INFORMAČNÍ SYSTÉM REALITNÍCH KANCELÁŘÍ UŽIVATELSKÁ PŘÍRUČKA UŽIVATELSKÁ PŘÍRUČKA STRANA 1 / 23

Opatření a vyzkoušení distribuce. Michal Dočekal

Soustavy lineárních rovnic

Matematika B101MA1, B101MA2

ÚPRAVA BAKALÁŘSKÉ A DIPLOMOVÉ PRÁCE

Uživatelská příručka Evidence příchozí a odchozí pošty a elektronický archiv. V prostředí společnosti. Pražská vodohospodářská společnost a.s.

Vektorový prostor. Př.1. R 2 ; R 3 ; R n Dvě operace v R n : u + v = (u 1 + v 1,...u n + v n ), V (E 3 )...množina vektorů v E 3,

y = Spočtěte všechny jejich normy (vektor je také matice, typu n 1). Řádková norma (po řádcích sečteme absolutní hodnoty prvků matice a z nich

Kubatury, hydraulika vodní toky 4

Kapitola 11: Vektory a matice:

Dokumentace. k projektu Czech POINT. Konverze dokumentů z elektronické do listinné podoby (z moci úřední) Provozní řád

Základy matematiky pro FEK

AR-M256 AR-M316 DIGITÁLNÍ MULTIFUNKČNÍ SYSTÉM. PROVOZNÍ PŘÍRUČKA (pro síťový skener)

předmětu MATEMATIKA B 1

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE. Vytváření a evidence smluv Petr Čulík

Uživatelská příručka

Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

AC Napětí/Proud Data Logger Uživatelský Manuál

2 Spojité modely rozhodování

KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO LINEÁRNÍ ALGEBRA 1 OLGA KRUPKOVÁ VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN

Implementace numerických metod v jazyce C a Python

. Určete hodnotu neznámé x tak, aby

Vzorce počítačové grafiky

Uživatelský manuál. A3600 DL ( Data Download)

DUM 02 téma: Úvod do textového editoru MS Word a výběr klávesových zkratek

Euklidovský prostor Stručnější verze

Matematické symboly a značky

ALVA - řada BC6. Stručný průvodce Verze 4. UDC-02026A 2014 Optelec, Nizozemsko. Všechna práva vyhrazena (T) Spektra vdn, 2014

Gymnázium, Brno. Matice. Závěrečná maturitní práce. Jakub Juránek 4.A Školní rok 2010/11

(Cramerovo pravidlo, determinanty, inverzní matice)

Maticové operace projekt č. 3

Operace s maticemi. 19. února 2018

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

Tabulkové processory MS Excel (OpenOffice Calc)

matice([[1,1,0,0,0],[1,1,1,0,0],[0,1,1,0,0],[0,0,0,1,1],[0,0,0,1,1]],1). matice([[1,1,1],[1,1,0],[1,0,1]],2).

VZDĚLÁVACÍ MATERIÁL III/2

K vyplnění žádosti je nutné mít nainstalován v počítači program 602XML Filler

Datalogger Teploty a Vlhkosti

ÚVOD 3 SEZNÁMENÍ SE SYSTÉMEM 4

Matematika 1 MA1. 2 Determinant. 3 Adjungovaná matice. 4 Cramerovo pravidlo. 11. přednáška ( ) Matematika 1 1 / 29

Manuál k užívání aplikace Monitoringrejstriku.cz

Zdroj:

Matematika I Lineární závislost a nezávislost

PPEL Ing. Petr Kropík ICQ: tel.: (odd.

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

Konfigurace pracovní stanice pro ISOP-Centrum verze

Elektronická monitorovací zpráva 1.4 ZLEPŠENÍ PODMÍNEK PRO VZDĚLÁVÁNÍ NA ZÁKLADNÍCH ŠKOLÁCH OPERAČNÍHO PROGRAMU VZDĚLÁVÁNÍ PRO KONKURENCESCHOPNOST

Lineární algebra II. Adam Liška. 9. února Zápisky z přednášek Jiřího Fialy na MFF UK, letní semestr, ak. rok 2007/2008

- doplnění dotazu před provedením výmazu dlaždice nebo všech dlaždic

Objednávky OBX. Objednávkový systém určený k instalaci na PC u zákazníka pro tvorbu offline objednávek zboží

a + b + c = 2 b + c = 1 a b = a 1 2a 1 + a a 3 + a 5 + 2a 2 + a 2 + a

DEFINICE Z LINEÁRNÍ ALGEBRY

Poznámky z matematiky

8. Posloupnosti, vektory a matice

Skalární součin je nástroj, jak měřit velikost vektorů a úhly mezi vektory v reálných a komplexních vektorových prostorech.

1 of :27

DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky

Základy matematiky kombinované studium /06

MATLAB základy. Roman Stanec PEF MZLU

SPZ Uživatelská příručka

ERP informační systém

Matematika pro studenty ekonomie

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

Lineární algebra Operace s vektory a maticemi

Několik poznámek na téma lineární algebry pro studenty fyzikální chemie

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Technologie počítačových sítí 1. cvičení

Vzdělávání v egoncentru ORP Louny

Instalace a popis programu

Uživatelská příručka pro Příkazce / Správce zdrojů financování. Projekt DMS modul Faktury

MATEMATIKA 1 4 A B C D. didaktický test. Zadání neotvírejte, počkejte na pokyn! Krok za krokem k nové maturitě Maturita nanečisto 2006

Základy algoritmizace a programování

Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97. Vybrané části Excelu. Ing. Petr Adamec

Transkript:

Semestrální projekt Předmět: Programování v jazyce C Zadání: Operace s maticemi Uživatelský manuál ver. 1.0 Jakub Štrouf Obor: Aplikovaná informatika Semestr: 1. Rok: 2009/2010

Obsah: 1. Úvod 1.1. Technická podpora 1.2. Systémové požadavky 1.3. Instalace 2. Uživatelské rozhraní 2.1. Představení programu 3. Zadávání matic 3.1. Zadávání rozměrů 3.1.1. Vektory 3.1.2. Čtvercové matice 3.1.3. Obecné matice 3.1.4. Skalár 3.2. Zadávání hodnot 4. Volení operací s maticemi 4.1. Sčítání 4.2. Rozdíl 4.3. Násobení 4.4. Podíl 4.5. Skalární násobení 4.6. Výpočet determinantu 4.7. Transponování matice 4.8. Adjungovaná matice 4.9. Inverzní matice 5. Hlavičkové funkce 6. Použitá literatura a zvláštní poděkování

1. Pár slov úvodem Tento program byl vytvořen v rámci semestrálního projektu v předmětu Programování v jazyce C v prvním semestru na oboru Aplikovaná informatika. MathMatrix je komplexní program pro základní operace se dvěma maticemi (např. sčítání, rozdíl, násobení, transponování ). V tomto manuálu se dozvíte jak s programem správně pracovat pro využití všech jeho funkcí. Jak správně zadávat matice, čísla do matic a volit funkce. Děkuji Vám za Vaši důvěru a přeji Vám mnoho úspěchů a potěšení při používání aplikace MathMatrix. Informaci o aplikaci a o dalších produktech lze získat u autora kterého lze kontaktovat na webové adrese www.asuanweb.wz.cz v odkazu Názor na web v menu stránky. 1.1. Technická Podpora Technická podpora bohužel není možná z důvodu jednorázového účelu aplikace. 1.2. Systémové požadavky Před spuštěním se ujistěte že jsou splněny systémové požadavky: Operační systém: Windows 2000 s SP2 či více Operační paměť: minimálně 15MB Místo na disku: minimálně 1MB (včetně manuálu) Pro otevření manuálu je zapotřebí jedna z těchto aplikací Microsoft Word (verze 2003 a vyšší) Adobe Acrobat Reader (verze 7.0 a vyšší) 1.3. Instalace Aplikaci není nutno instalovat lze pouze nakopírovat a lze ji rovnou používat popř. ji lze znovu zkompilovat z přiložených zdrojových kódů v jakémkoli kompilátoru jazyka C.

2. Uživatelské rozhraní 2.1. Představení programu

3. Zadávání matic První o co budete v aplikaci požádáni budou rozměry obou matic se kterými později budete provádět později vysvětlené operace. Matice jsou označeny A a B, výsledná matice pak C u které jsou rozměry automaticky voleny podle zvolené operace. Každá operace je ošetřena na rozměry vstupních matic, pokud rozměry neodpovídají potřebným rozměrům pro danou operaci je program ukončen, proto pokud předem víte kterou operaci hodláte použít zvolte vhodně rozměry obou matic aby jste si ušetřili problémy v podobě opětovného spuštění aplikace a opětovného zadávání hodnot do matic. Předem Vás žádám o zadávání rozumných rozměrů matic a to ze dvou důvodů, prvním je, že budete muset m*n počet prvků a druhým je náročnost na operační paměť přidělenou operačním systémem a tudíž nebezpečí že dojde. 3.1. Zadávání rozměrů matic 3.1.1. Vektory Neboli jednořádkové/jednosloupcové matice lze zadat vždy zvolením za jeden rozměr jednotku. Např. matice A: řádkový vektor, B: sloupcový vektor 3.1.2. Čtvercové matice Čtvercová matice je matice s oběma rozměry stejnými. Tento typ matice je nezbytný pro operaci výpočtu determinantu. Příklad čtvercové matice A která má rozměry 5x5 3.1.3. Obecné matice Obecná matice má různé rozměry. Speciálními případy obecné matice jsou vektory, čtvercové matice či skalár. Obecné matice jsou vhodné např. pro operace typu součet, rozdíl, násobení, skalární součin a transponování matic. Příklad obecné matice A s rozměry 2x5

3.1.4. Skalár Skalár je jednorozměrnou maticí, má tudíž oba rozměry rovny jedné. Jedná se o speciální případ čtvercové matice. Se skalárem lze provádět např. následující operace: součet, rozdíl, násobení dvou skalárů, násobení skaláru a matice (zprava i zleva), výpočet determinantu ze skaláru. Příklad zadávání skaláru jako matice A 3.2. Zadávání hodnot do matic Hodnoty do matic lze zadávat dvěma způsoby, buďto ručně nebo z přeformátovaného souboru. Pokud se rozhodnete zadávat hodnoty ručně stiskněte r. Poté budete vyzváni k zadávání hodnot, pro potvrzení hodnoty stiskněte Enter. Po zadání všech hodnot budete požádáni jestli chcete tyto hodnoty uložit do externího souboru. Pokud ano stiskněte a pokud ne stiskněte n či jiné tlačítko. Pokud se rozhodnete načíst hodnoty ze souboru stiskněte s či jiné tlačítko a matice bude automaticky načtena z externího souboru. Pokud tento externí soubor dosud neexistuje budete požádáni o ruční zadání a následně opět vyzváni zda chcete tyto hodnoty uložit. Hodnoty v předpřipravených externích souborech byly vygenerovány náhodně.

4. Volení operací s maticemi Po zadání rozměrů a vyplnění matic všemi prvky budete požádáni o zvolení následujících operací, každá operace je charakterizována operátorem a operace je zvolena po stisknutí tohoto operátoru na klávesnici (neentruje se). Operátory jsou uvedeny v závorce vedle nadpisu a zároveň v popisu dané operace. Nezapomeňte si uvědomit která operace požaduje jaké rozměry obou matic, v případě nedodržení bude aplikace ukončena. 4.1. Sčítání ( + ) Sčítání lze provádět pouze s maticemi o stejných rozměrech, či dvou skalárů. Sčítání je prováděno součtem prvků se stejnými souřadnicemi v obou maticích. Výsledná matice má stejné rozměry jako obě původní matice. Operátor pro sčítání je +. Příklad součtu dvou matic o rozměrech 2x3 4.2. Rozdíl ( - ) Rozdíl lze provádět pouze s maticemi o stejných rozměrech, či dvou skalárů. Rozdíl je prováděn rozdílem prvků se stejnými souřadnicemi v obou maticích. Výsledná matice má stejné rozměry jako obě původní matice. Rozdíl je pouze A-B, proto dbejte pozoru při zadávání prvků do obou matic. Operátor pro rozdílu je -. Příklad rozdílu dvou matic o rozměrech 2x3

4.3. Násobení ( * ) Násobení lze provádět pouze s maticemi kdy druhý rozměr první matice musí být stejný jako první rozměr druhé matice. Výsledná matice má pak rozměry první rozměr první matice na druhý rozměr druhé matice. Výpočet je prováděn stylem řádek první a sloupec druhé. Násobení je pouze A*B, proto dbejte pozoru při zadávání prvků do obou matic. Speciální operací je násobení skaláru a matice. Je-li jedna z matic skalárem, je tento skalár vynásoben s každým prvkem matice. Výsledná matice má pak rozměry vstupní matice. Jsou-li obě matice skalárem pak jsou vynásobeny tyto skaláry a výsledná matice je též skalárem. Operátor pro násobení je * Příklad násobení matic 2x3 a 3x4 (výsledná matice 2x4) 4.4. Podíl ( / ) Podíl lze provádět pouze se čtvercovými maticemi stejného řádu (např. A=4x4, B=4x4). Výsledná matice má pak stejné rozměry jako vstupní matice. Výpočet je prováděn podle vzorce A*C=B => C=A -1 *B, proto dbejte pozoru při zadávání prvků do obou matic. Pokud chcete matici dělit skalárem využijte prosím násobení. Operátor pro podíl je / 4.5. Skalární násobení (. ) Skalární násobení lze provádět pouze s maticemi o stejných rozměrech, či dvou skalárů. Toto násobení se provádí obdobně jako sčítání. Výsledná matice má stejné rozměry jako obě původní matice. Speciální operací je násobení skalárů. Jsou-li obě matice skalárem pak jsou vynásobeny tyto skaláry a výsledná matice je též skalárem. Operátor pro skalární násobení je. (tečka). Příklad skalárního násobení dvou matic o rozměrech 2x3

4.6. Výpočet determinantu ( d ) Výpočet determinantu je prováděn čtyřmi způsoby a to dle velikosti vstupní matice. 1. způsob: Je-li vstupní matice skalárem pak výsledná matice je také skalárem o stejné hodnotě. 2. způsob: Je-li matice typu 2x2 pak je použito tzv. křížové pravidlo. 3. způsob: Je-li matice typu 3x3 pak je matice řešena Frajerovým pravidlem 4. způsob: Je-li matice vyššího řádu jak 3 je řešena pomocí Laplaceova rozvoje Výpočet determinantu lze použít POUZE na čtvercové matice či skaláry, pokud vstupní matice nebude čtvercová či skalár bude toto oznámeno a program bude ukončen. Časová složitost algoritmu je exponenciální proto nezadávejte příliš velké rozměry počítané matice. Po stisknutí operátoru pro determinant budete dotázáni ze které ze dvou matic se determinant bude počítat, zadávejte pouze velká písmena. Operátor pro výpočet determinantu je d Příklad výpočtu determinantu z matice druhého řádu 4.7. Transponování matice ( t ) Při transponování matice se z praktického hlediska provádí osová symetrie podle hlavní diagonály, či přepsání sloupců do řádků. Výsledná matice pak má opačné rozměry než matice vstupní. Použít se dají všechny typy matic. Po stisknutí operátoru pro transponování budete dotázáni která ze dvou matic se bude transponovat, zadávejte pouze velká písmena. Operátor pro transponování je t Příklad transponované matice 3x5 na matici 5x3

4.8. Adjungovaná matice ( a ) Lze požít pouze na čtvercové matice. Výsledná matice má pak rozměry vstupní matice. Tato operace využívá operace determinant. Časová složitost algoritmu je exponenciální proto nezadávejte příliš velké rozměry počítané matice. Po stisknutí operátoru pro transponování budete dotázáni která ze dvou matic se bude transponovat, zadávejte pouze velká písmena. Operátor pro adjungování matice je a 4.9. Inverzní matice ( i ) Lze požít pouze na čtvercové matice. Výsledná matice má pak rozměry vstupní matice. Tato operace využívá operace determinant a adjungování matice. Časová složitost algoritmu je exponenciální proto nezadávejte příliš velké rozměry počítané matice. Po stisknutí operátoru pro transponování budete dotázáni která ze dvou matic se bude transponovat, zadávejte pouze velká písmena. Operátor pro inverzní matici je i 5. Hlavičkové funkce 5.1. "IO_matrix.h" void ReadDimension(int *x, int *y) Procedura vrací rozměry pro dvourozměrné pole. void ReadMatrix(float *matrix, int x, int y,char name) Procedura se využívá pro naplnění dvourozměrného pole *matrix, které je definováno pointrem na adresu počátku alokované paměti, hodnotami. Dalšími vstupními parametry jsou rozměry daného pole a název zadávané matice. void PrintMatrix(float *matrix, int x, int y, char name) Procedura vypíše matici *matrix, která je definována pointrem na adresu počátku alokované paměti. Dalšími vstupními parametry jsou rozměry x, y a název dané matice.

5.2. "matrix_operations.h" void Matrixsum(float *c, float *a, char sign, float *b, int dxa, int dya, int dxb, int dyb) Procedura vrací součet vstupních matic. Parametry *c - pointr na výslednou matici *a - pointr na 1. vstupní matici *b - pointr na 2. vstupní matici sign - znaménko prováděné operace ( +, - či. ) dxa, dya - rozměry 1. matice dxb, dyb - rozměry druhé matice void MatrixMultiply(float *a, float *b, float *c, int dxa, int dya, int dxb, int dyb, int *dxc, int *dyc) Procedura vrací násobení dvou matic. Parametry *a - pointr na 1. vstupní matici *b - pointr na 2. vstupní matici *c - pointr na výslednou matici dxa, dya - rozměry 1. matice dxb, dyb - rozměry druhé matice *dxc, *dyc - pointr na rozměry výsledné matice void MatrixTrans(float *a, float *at, int x, int y) Procedura transponuje matici *a a tuto transponovanou matici vrátí na adresu uloženou v *at. Dalším vstupem jsou rozměry x, y původní matice. double Determinant(float *mat, const int n) Funkce vrací determinant vstupní matice *mat o rozměrech x, y. void AdjMatrix(float *mat, float *madj, int x, int y) Procedura vrací adjungovanou matici od matice *mat o rozměrech x, y na pointr *madj. void InvertMatrix(float *mat, float *imat, int x, int y) Procedura vrací invertovanou matici od matice *mat o rozměrech x, y na pointr *imat. 6. Použitá literatura Především internet: Gogole.cz www.sallyx.org Zvláštní poděkování Beta testeři: Lukáš Kučera, Milan Fašina, Ján Švec (Linux tester)