Základy algoritmizace a programování



Podobné dokumenty
Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Doňar B., Zaplatílek K.: MATLAB - tvorba uživatelských aplikací, BEN - technická literatura, Praha, (ISBN:

pi Ludolfovo číslo π = 3,14159 e Eulerovo číslo e = 2,71828 (lze spočítat jako exp(1)), např. je v Octave, v MATLABu tato konstanta e není

X37SGS Signály a systémy

MATLAB základy. Roman Stanec PEF MZLU

KTE / PPEL Počítačová podpora v elektrotechnice

KTE / PPEL Počítačová podpora v elektrotechnice

- transpozice (odlišuje se od překlopení pro komplexní čísla) - překlopení matice pole podle hlavní diagonály, např.: A.' ans =

Seminář z MATLABU. Jiří Krejsa. A2/710 krejsa@fme.vutbr.cz

MATrixLABoratory letný semester 2004/2005

ROZ1 - Cv. 1 - Zobrazenэ snэmku a zсklady Matlabu

Předmluva 9 Obsah knihy 9 Typografické konvence 10 Informace o autorovi 10 Poděkování 10

PPEL_3_cviceni_MATLAB.txt. % zadat 6 hodnot mezi cisly 2 a 8 % linspace (pocatek, konec, pocet bodu)

Základy algoritmizace a programování

Základy programování: Algoritmizace v systému MATLAB

% vyhledání prvku s max. velikostí v jednotlivých sloupcích matice X

PPEL_4_cviceni_MATLAB.txt. % 4. cvičení z předmětu PPEL - MATLAB. % Lenka Šroubová, ZČU, FEL, KTE %

Stručný návod k programu Octave

Algoritmizace a programování

KTE / PPEL Počítačová podpora v elektrotechnice

Lineární algebra s Matlabem. Přednáška 1

Př. další použití pointerů

Úvod do práce s Matlabem

KTE / PPEL Počítačová podpora v elektrotechnice

Pro tvorbu samostatně spustitelných aplikací je k dispozici Matlab library.

cyklus s daným počtem opakování cyklus s podmínkou na začátku (cyklus bez udání počtu opakování)

Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele

Cvi ení 1. Cvi ení 1. Modelování systém a proces. Mgr. Lucie Kárná, PhD. March 2, 2018

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Algoritmizace a programování

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

Operace s vektory a maticemi + Funkce

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

Základy algoritmizace a programování

Grafické výstupy v Octave/Matlabu a GnuPlotu

Lineární algebra s Matlabem cvičení 3

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje

Algoritmizace a programování

Formátové specifikace formátovací řetězce

POČÍTAČE A PROGRAMOVÁNÍ

while cyklus s podmínkou na začátku cyklus bez udání počtu opakování while podmínka příkazy; příkazy; příkazy; end; % další pokračování programu

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

DATABÁZE MS ACCESS 2010

Vizualizace. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií

Příklad: Řešte soustavu lineárních algebraických rovnic 10x 1 + 5x 2 +70x 3 + 5x 4 + 5x 5 = 275 2x 1 + 7x 2 + 6x 3 + 9x 4 + 6x 5 = 100 8x 1 + 9x 2 +

Algoritmus pro hledání nejkratší cesty orientovaným grafem

smaže n-tý sloupec matice A vybere hodnotu 6.,1.,3.,2.prvku vektoru a a1 =

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

Cvi ení 1. Modelování systém a proces. Mgr. Lucie Kárná, PhD. March 2, Organizace cvi ení 2 Matlab Za ínáme Základní operace Základní funkce

Základy algoritmizace a programování

Kreslení grafů v Matlabu

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

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

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

Lineární algebra Operace s vektory a maticemi

MATLAB Úvod. Úvod do Matlabu. Miloslav Čapek

Základy algoritmizace a programování

LabView jako programovací jazyk II

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

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

MATLAB HRAVĚ Zdeněk Jančík, FIT VUT Brno

Paměť počítače. alg2 1

Univerzitní licence MATLABu. Pište mail na: se žádostí o nejnovější licenci MATLABu.

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

Příklad elektrický obvod se stejnosměrným zdrojem napětí

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Racionální čísla, operátory, výrazy, knihovní funkce

Příklady k druhému testu - Matlab

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

E+034 = ; = e E+034

Úvod do programování. Lekce 1

SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU MODELOVÁNÍ MATLABEM

NPRG030 Programování I, 2018/19 1 / :25:37

- dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h. - jak na vlastní makro:

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

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

1 Základní funkce pro zpracování obrazových dat

Úvod do programování - Java. Cvičení č.4

- 1 - MATLAB základy I.Pultarová, únor 2002

MATLAB, v , Release 13

Cvi ení 2. Cvi ení 2. Modelování systém a proces. Mgr. Lucie Kárná, PhD. March 5, 2018

více křivek v jednom grafu hold on přidrží aktuální graf v grafickém okně, lze nakreslit více grafů do jednoho grafického okna postupně hold off

Elementární datové typy

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

ZÁPOČTOVÝ TEST. Zpracoval Vilém Závodný, #include "stdafx.h" #include "stdio.h"

Sada 1 - Základy programování

Zápis programu v jazyce C#

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

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

II. Úlohy na vložené cykly a podprogramy

Pôvodne: Interaktívny program na operácie s maticami Teraz: Vysoko úrovňový jazyk na technické výpočty a interaktívne prostredie na:

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

8. Posloupnosti, vektory a matice

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Transkript:

Základy algoritmizace a programování Práce s maticemi Přednáška 9 23. listopadu 2009

Pole: vektory a matice Vektor (jednorozměrné pole) deklarace statická int v1[5]; dynamická int * v2; + přidělení paměti: v2 = (int *) malloc(5*sizeof (int)); Matice (dvourozměrné pole) deklarace statická int m1[2][3]; dynamická int * * m2; + přidělení paměti: m2 = (int **) malloc(2*sizeof(int *)); for(i=0; i< 2; i++) m2[i]= (int *) malloc(3*sizeof(int));

Operace NELZE s celým polem najednou! Pomocí cyklů s každý prvkem Vektor jeden cyklus prvek v[i] načtení hodnot for(i=0; i<5; i++) scanf("%d", &v1[i]); tisk hodnot for(i=0; i<5; i++) printf("%d", v1[i]); Matice dva cykly prvek m[i][j] načtení hodnot for(i=0; i<2; i++) for(j=0; j<3; j++) scanf("%d",&m1[i][j]); tisk hodnot for(i=0; i<2; i++) for(j=0; j<3; j++) printf("%d",m1[i][j]);

Úvod do MATLABu Komponenty MATLABu Jazyk Prostředí Grafika Knihovny funkcí Interface (C, Fortran)

Balíčky toolboxes Simulink MATLAB Compiler MATLAB C/C++ Graphics Library MATLAB C/C++ Math Library Signal Processing Toolbox Filter Design Toolbox Neural Network Toolbox Spline Toolbox Control System Toolbox Statistics Toolbox System Identifcation Toolbox Fuzzy Logic Image Processing Toolbox Mapping Toolbox Optimization Toolbox Symbolic Math Toolbox a mnoho dalších

Spuštění MATLABU příkazový řádek : matlab

Kde získat informace příkaz help příkaz lookfor informační okno informační navigátor stránka MathWorks : www.mathworks.com/products/matlab české stránky : www.humusoft.cz/produkty/matlab

Informace příkaz help >>help inv INV Matrix inverse. INV(X) is the inverse of the square matrix X. A warning message... See also SLASH, PINV... Overloaded methods...

Informace příkaz lookfor >> lookfor inverse INVHILB Inverse Hilbert matrix. ACOS Inverse cosine. ACOSH Inverse hyperbolic cosine.... INV Matrix inverse.... příkaz >> lookfor -all inverse hledá slovo inverse v celém helpu.

Informace informační okno Je možné spustit příkazem >>helpwin nebo z menu Poskytuje tytéž informace jako help, ale přehledněji

Informace informační navigátor >>helpdesk Spustí "průzkumník" informačních souborů, které jsou dostupné ve formátu html. Pokud víme, co hledáme, lze použít příkaz >>doc <jméno funkce nebo příkazu>

Matice hlavní datový typ MATLABu skalární proměnná matice rozměru (1 1) vektor matice rozměru (1 n) nebo (m 1) matice (m n) Zadání matice po prvcích ze souboru genenerováním pomocí zabudovaných funkcí vytváření matic vlastními funkcemi

První operace Zadání matice po prvcích: řádky a = [1 2 3 4] nebo b = [1, 2, 3, 4] sloupce a = [1 2 3 4] nebo b = [1; 2; 3; 4] matice A = [1 2; 3 4] >>A = [16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 Po zadání je vytvořena v prostředí MATLABu vytvořena proměnná A, můžeme ji používat. >>sum(a) ans = 34 34 34 34 Pokud není určena proměnná, kam se má uložit výsledek, použije se proměnná ans

Operace s maticemi C Transponování matice: for(i=0; i<n; i++) for(j=0; j<m; j++) B[i][j] = A[j][i]; Sčítání prvků ve sloupcích for(i=0; i<n; i++) { sl[i] = 0; for(j=0;j<m;j++) sl[i]=sl[i]+a[i][j];} Sčítání prvků v řádcích for(j=0; j<m; j++) { sr[j] = 0; for(i=0;i<n;i++) sr[j]=sr[j]+a[i][j];} MATLAB Transponování matice: operace B = A Sčítání prvků ve sloupcích operace sum sl = sum(a); Sčítání prvků v řádcích sr= sum(a ) dostaneme vektor sloupec

Operace s maticemi C Sčítání prvků na hlavní diagonále sd = 0; for(i=0; i<n; i++) { sd=sd+a[i][i];} Sčítání prvků na vedl. diagonále sv=0; { for(i=0;i<n;i++) sv=sr+a[n-i-1][n-i-1];} MATLAB Sčítání prvků na hlavní diagonále operace diag, sum sd = sum(diag(a)) Sčítání prvků na vedl. diagonále operace fliplr, diag, sum sv = sum(diag(fliplr(a)));

MATLAB indexy Indexy prvků matic: Prvek v i tém řádku, j tém sloupci: A(i,j) A(4,2) = 15... změní hodnotu jednoho prvku Součet prvků ve 4. sloupci lze zapsat: A(1,4)+A(2,4)+A(3,4)+A(4,4) Pokus manipulovat s prvkem "mimo matici" t=a(4,5) vyvolá chybové hlášení:??? Index exceeds matrix dimension ALE >>X = A; >>X (4,5) = 17 X= 16 3 2 13 0 5 10 11 8 0 9 6 7 12 0 4 15 14 1 17

MATLAB operátor : >>1:10 1 2 3 4 5 6 7 8 9 10 >>100:-7:50 100 93 86 79 72 65 58 51 >>0:pi/4:pi 0 0.7854 1.5708 2.3562 3.1416 A(1:k,j) prvních k prvků sloupce j sum(a(1:4, 4)) součet prvků 4. sloupce sum(a(:,end)) součet prvků posledního sloupce sum(1:16)/4 součet čísel 1..16 dělený 4 B=A(:,[1 3 2 4]) pro každý řádek A se do B se uloží prvky v zadaném pořadí spojení matic: C=[A B], C=[A;B] odstranění řádků a sloupců: A(i,:)=[ ], A(:,j)=[ ]

MATLAB Výrazy proměnné čísla operátory funkce Proměnné: není nutné deklarovat typ, určovat rozměr při prvním použití jména se vytvoří proměnná a je jí přidělena pamět pokud už proměnná existuje, je změněna hodnota, případně rozměr jména: písmena, číslice, _, záleží na velikosti písmen Operátory: +, -, *, / \ ˆ,, ( )

Čísla Reálná čísla (double precission) (8 bytů) zpravidla 16 znaků mantisa, ±308 exponent Inf = NaN (Not a Number) při 0/0, /,, apod. eps = 2.22 10 16 pi = π = 3.1415926 Komplexní čísla 16 bytů i, j imaginární jednotky realmin, realmax

Příklady a = 2 a = 2.0 z = 1 + 2i z = 1 + 2*i real(z), imag(z) abs(z), conj(z) z = r * exp(i * phi) huge = exp(log(realmax)) toobig = pi*huge huge= 1.7977e+308 toobig = Inf

Formát výstupu (zobrazení čísel) format implicitní, totéž jako short; format short 5 znaků za desetinnou tečkou; format long 15 znaků za desetinnou tečkou; format short e pohyblivá desetinná tečka, 5 znaků za desetinnou tečkou; format long e pohyblivá desetinná tečka, 15 znaků za desetinnou tečkou; format rat nahrazení čísla racionálním zlomkem

MATLAB Generování matic Jednoduché funkce pro generování matic Operace Funkce zeros(m,n) ones(m,n) eye(m,n) rand(m,n) "maticové" A+B, A-B, A * B, A / B, A \ B, "po prvcích A.*B, A./B, A.ˆB, elementární funkce log10(a) kombinace B = A -8.5; B(1:2,2:3)=0 size(a), length(a) det(a), inv(a), rank(a), eig(a)

Řetězce znaků a = Matrix ; b = Laboratory ; c = [a(1:3) b(1:3)]

Grafika - příkaz plot x = 0:pi/100:2*pi; y = sin(x); plot(x,y) xlabel( x = 0:2pi ) ylabel( Sine of x ) title( Plot of the Sine Function,... FontSize,12)

Grafika Příkaz figure vytvoří nové grafické okno, které se stane aktivním. Příkaz figure(n): grafické okno n se stane aktivním. Několik křivek v jednom okně y2 = sin(x-.25); y3 = sin(x-.5); plot(x,y,x,y2,x,y3) legend( sin(x), sin(x-.25), sin(x-.5) ) Typ a barva čar plot(x,y, color_style_marker ) color_style_marker řetězec 1 4 znaků, určují styl a barvu barva: c, m, y, r, g, b, w, k styl čáry: -,, :, -. typ markeru: +, o, *, x, s, d, ˆ, v, >, <, p, h Více o grafice bude na 11. přednášce