Úvod do programování. Lekce 7



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

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í

Stručný návod k programu Octave

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

X37SGS Signály a systémy

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

MATrixLABoratory letný semester 2004/2005

Příklady k prvnímu testu - Matlab

Univerzita Pardubice Chemicko-technologická fakulta Katedra analytické chemie

Principy korekce aberací OS.

1. LINEÁRNÍ ALGEBRA Vektory Operace s vektory... 8 Úlohy k samostatnému řešení... 8

Zdroj:

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

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

Základy matematiky pro FEK

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

Maticová optika. Lenka Přibylová. 24. října 2010

AVDAT Vektory a matice

DEFINICE Z LINEÁRNÍ ALGEBRY

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

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

Operace s vektory a maticemi + Funkce

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

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

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

8. Posloupnosti, vektory a matice

Implementace numerických metod v jazyce C a Python

předmětu MATEMATIKA B 1

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

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

3. Matice a determinanty

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

Matematika pro studenty ekonomie

3.T Technické výpočty v Octave/Matlabu zpracování a zobrazení dat

MENDELOVA UNIVERZITA V BRNĚ LDF MT MATEMATIKA VEKTORY, MATICE

MENDELOVA UNIVERZITA V BRNĚ LDF MT MATEMATIKA VEKTORY, MATICE

Grafické výstupy v Octave/Matlabu a GnuPlotu

Fourierovské metody v teorii difrakce a ve strukturní analýze

Numerické metody a programování

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

7. Lineární vektorové prostory

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

Eukleidovský prostor a KSS Eukleidovský prostor je bodový prostor, ve kterém je definována vzdálenost dvou bodů (metrika)

Příklad 1/23. Pro rostoucí spojité fukce f(x), g(x) platí f(x) Ω(g(x)). Z toho plyne, že: a) f(x) Ο(g(x)) b) f(x) Θ(g(x)) d) g(x) Ω(f(x))

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,

Úvod do programování. Lekce 1

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

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

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

2. Matice, soustavy lineárních rovnic

Základy algoritmizace a programování

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

Zdrojem většiny příkladů je sbírka úloh 1. cvičení ( ) 2. cvičení ( )

Jedná se o soustavy ve tvaru A X = B, kde A je daná matice typu m n,

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

1. Matice a maticové operace. 1. Matice a maticové operace p. 1/35

Basic256 - úvod do programování Příklady. ing. petr polách

transformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím [1]

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: Předmět: ZAP

P íklady k prvnímu testu - Scilab

Afinní transformace Stručnější verze

Kapitola 11: Vektory a matice:

Historické brýle. 1690: brýle Norimberského stylu se zelenými čočkami. 1780: stříbrné brýle. konec 18. století: mosazné obruby, kruhové čočky

výsledek 2209 y (5) (x) y (4) (x) y (3) (x) 7y (x) 20y (x) 12y(x) (horní indexy značí derivaci) pro 1. y(x) = sin2x 2. y(x) = cos2x 3.

Viková, M. : MIKROSKOPIE II Mikroskopie II M. Viková

Lineární algebra. Matice, operace s maticemi

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Algoritmy a datové struktury

TECHNICKÁ UNIVERZITA V LIBERCI

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.

VĚTY Z LINEÁRNÍ ALGEBRY

Č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

Fotografický aparát. Fotografický aparát. Fotografický aparát. Fotografický aparát. Fotografický aparát. Fotografický aparát

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

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

Rotace, transpozice a zrcadlení matice hodnot

1 Vektorové prostory.

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

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

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

1 Zobrazení 1 ZOBRAZENÍ 1. Zobrazení a algebraické struktury. (a) Ukažte, že zobrazení f : x

Euklidovský prostor Stručnější verze

Hammingovy kódy. dekódování H.kódů. konstrukce. šifrování. Fanova rovina charakteristický vektor. princip generující a prověrková matice

ekologie Pavel Fibich Vektor a Matice Operace s maticemi Vlastnosti matic Pavel Fibich Shrnutí Literatura

Komplexní čísla, Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady

Matematické symboly a značky

Determinanty. Determinanty. Přednáška MATEMATIKA č. 3. Jiří Neubauer

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

FAKULTA STAVEBNÍ VUT V BRNĚ PŘIJÍMACÍ ŘÍZENÍ PRO AKADEMICKÝ ROK

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).

Příklady k druhému testu - Matlab

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

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

HODNOST A DETERMINANT MATICE, INVERZNÍ MATICE

Aplikovaná numerická matematika - ANM

Masarykova univerzita

Lekce 9 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Matematika B101MA1, B101MA2

Transkript:

I N V E S T I C E D O R O Z V O J E V Z D Ě L Á V Á N Í Inovace a zvýšení atraktivity studia optiky reg. č.: CZ.1.07/2.2.00/07.0289 Úvod do programování Lekce 7 Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

Octave, Matlab vyšší programovací jazyky pro numerické výpočty základní charakteristiky oproti C zjednodušená syntaxe, proměnné není nutno explicitně definovat uzpůsobeny pro snadnou práci s vektorovými a maticovými objekty obsahují funkce pro grafický výstup a rozsáhlé knihovny pro numerické výpočty program, které plně nevyužívá maticovou aritmetiku běží ve srovnání s obdobným programem napsaným v jazyku C velmi pomalu příklad: program vynásobí dvě matice 3x3 a výslednou matici vypíše na obrazovku #include<stdio.h> #define DIM 3 // dimenze matice main(){ // reprezentuji matice jako dvourozmerne pole double a[dim][dim]={{0,0,1,{0, 1,0,{ 1,0,0; double b[dim][dim]={{0,0, 1,{0, 1,0,{1,0,0; double c[dim][dim]; int i,j,k; for(i=0;i<dim;i++){ for(j=0;j<dim;j++){ c[i][j]=0; for(k=0;k<dim;k++){ c[i][j]+=a[i][k]*b[k][j]; // radek "a[i]" nasobi sloupec "b[j]" for(i=0;i<dim;i++){ for(j=0;j<dim;j++) printf("%f ",c[i][j]); // tisk prvku matice printf("\n"); totéž v Octave/Matlabu function nasobeni a=[0,0,1;0, 1,0; 1,0,0]; # strednik potlacuje vystup b=[0,0, 1;0, 1,0;1,0,0]; c=a*b # automaticky zobrazi vysledek práce s prvky vektoru/ matice a=[0,0,1;0, 1,0; 1,0,] # matice v=[1;0; 1] # sloupcový vektor dolni:krok:horni # rozsah (range) 1:0.5:1 # generuje: [ 1, 0.5,0,0.5,1] a(1,3) # prvek na prvním řádku a třetím sloupci: 1 a(2,:) # druhý řádek: [0, 1,0] a(1:2,1:2)# submatice 2x2 v levém horním rohu: [0,0;0, 1] a*v # součin matice a vektoru: [ 1;0; 1] v.*v # součin po elementech: [1;0;1] v' # transponovaný vektor: [1,0, 1] v'*v # skalární součin: 2

zeros(dim1,dim2) # nulová matice dim1 x dim2 ones(dim1,dim2) # matice vyplněná jednotkami eye(dim1,dim2) # diagonální jednotková matice inverse(a) # vypočte inverzní matici (totéž co a^ 1) trace(a) # stopa det(a) # determinant eig(a) # vlastní čísla logm(a) # logaritmus matice sqrtm(a) # odmocnina matice sum(a,dim) # součet vzhledem k dimenzi dim(1 = po sloupcích) přehled základních řídících struktur příkaz if if (podmínka) endif Octave/Matlab příkaz while while (podmínka) endwhile příkaz for for var=výraz # postupně dosa # zuje sloupce příklad na for soucet=0; for i=1:2:100 soucet=soucet+i; jazyk C if (podmínka){ while (podmínka){ for(start,podmínka,příkaz){ soucet=0; for(i=1;i<=100;i+=2){ soucet+=i; totéž ale mnohem efektivněji soucet=sum(1:2:100) příklad: výpočet histogramů pro soubor 5x10000 náhodných čísel function histogramy MAX=20 fr=fopen("random.txt","r"); data=fscanf(fr,"%f",[10000,5]); # nacita matici po sloupcich fclose(fr); data=data'; # data bude mit 5 radku a 10000 sloupcu histogram=zeros(5,max+1); # cetnosti nuly az MAX for i=0:max # pocitam cetnost hodnoty "i" kde=(data==i); # kde_i ma "1" na miste "i" jinak nuly histogram(:,i+1)=sum(kde,2); # scita jednicky na radcich

for i=1:5 bar(0:max,histogram(i,1:max+1)); # kresli histogram pause(2); # ceka 2 sekundy příklad: počítá Fraunhoferovu difrakci na čtvercovém otvoru function difrakce pupila=zeros(100,100); # propustnost 0=clona, 1=otvor ctverec=ones(10,10); pupila(1:10,1:10)=ctverec; # vkladame otvor do pupily vystup=fft2(pupila); # Fraunhoferova aproximace obrazec=abs(vystup); # budeme kreslit abs. hodnotu # ted posuneme stred obrazce do stredu matice z=shift(obrazec,50); # posun radku z=shift(z',50)'; # posun sloupcu # generujeme matice souradnic x a y [x,y]=meshgrid(1:100); mesh(x,y,z); # kreslime plochu příklad: modifikace pro případ kruhového otvoru function difrakce2 [x,y]=meshgrid( 50:50); pupila=sqrt(x.^2+y.^2)<5; # uvnitr kruhu 1 jinak 0 obrazec=abs(fft2(pupila)); z=shift(shift(obrazec',50)',50); mesh(x,y,z); příklad: vypočte ohniskovou vzdálenost objektivu, parametry čte ze souboru function ohnisko fr=fopen("objektiv.txt","r"); pocet=fscanf(fr,"%d",[1,1]); fprintf("pocet rozhrani: %d\n",pocet); data=fscanf(fr,"%f",[3,pocet])'; fclose(fr); dt=1:100; # mezera focal=zeros(1,100); for j=dt abcd=eye(2,2); n=1; # paprsek prichazi ze vzduchu for i=1:pocet nn=data(i,2); # index lomu za rozhranim r=data(i,1); # polomer krivosti t=data(i,3)+dt(j); # vzdalenost rozhrani diopt=(nn n)/r; # mohutnost rozhrani refr=[1,0; diopt,1]; # refrakcni matice tran=[1,t/nn;0,1]; # translacni matice abcd=tran*refr*abcd; # abcd matice n=nn; # "nn" bude index lomu pred dalsim rozhranim focal(j)= 1/abcd(2,1); # ohniskova vzdalenost pro mezeru dt

plot(dt,focal); print deps graf.eps # tiskne graf do souboru např. objektiv ze dvou menisků objektiv.txt 4 80 1.5 10 90 1 100 80 1.5 10 90 1 0 funkce ohnisko vytvoří výstup