+ All Categories
Home > Documents > Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a...

Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a...

Date post: 07-Aug-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
29
´ Uvod do Matlabu 8. bˇ rezna 2012 Obsah 1 Aplikace MATLAB 2 1.1 Popis oken ....................................... 2 1.2 Pracovn´ ıadres´aˇ r ................................... 3 1.3 Nastaven´ ı cesty .................................... 3 1.4 Ikony editorov´ eho okna ............................... 4 1.5 Pr´ace v aplikaci MATLAB .............................. 4 1.6 Podprogramy ..................................... 5 1.7 Datov´ e soubory .................................... 6 1.8 ıstup ke statistick´ ym funkc´ ım MatStat ...................... 6 2 ´ Uvod do programov´ an´ ı v jazyce MATLAB 8 2.1 ´ Uvodn´ ı pozn´ amky .................................. 8 2.2 Promˇ enn´ e a operace ................................. 8 2.3 Programovac´ ı pˇ ıkazy ................................ 10 2.4 Tiskov´ y v´ ystup .................................... 11 2.5 Grafick´ y v´ ystup .................................... 12 3 ıklady program˚ u v jazyce MATLAB 13 1
Transcript
Page 1: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

Uvod do Matlabu

8. brezna 2012

Obsah

1 Aplikace MATLAB 2

1.1 Popis oken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Pracovnı adresar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Nastavenı cesty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4 Ikony editoroveho okna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.5 Prace v aplikaci MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.6 Podprogramy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.7 Datove soubory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.8 Prıstup ke statistickym funkcım MatStat . . . . . . . . . . . . . . . . . . . . . . 6

2 Uvod do programovanı v jazyce MATLAB 8

2.1 Uvodnı poznamky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Promenne a operace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3 Programovacı prıkazy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4 Tiskovy vystup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.5 Graficky vystup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Prıklady programu v jazyce MATLAB 13

1

Page 2: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

1 Aplikace MATLAB

MATLAB je profesionalnı interaktivnı system urceny pro technicke vypocty. Je vyroben a dalevyvıjen firmou The MathWorks, Inc. a je chranen americkymi patenty. Skola jej ma legalnezakoupen a studenti si ho mohou stahnout a pouzıvat i doma. Je pritom treba mıt trvalepripojenı k internetu. Ke stazenı je na adrese

https://download.cvut.cz/info/info.php

kde je treba se prihlasit a pak hledat a hledat a · · ·. Doporucujeme starsı verzi Matlab 2008(ma lepsı symbolicke pocıtanı).

Provoz Matlabu mimo skolu vyzaduje trvale prihlasenı pocıtace k internetu (pro prubezneoverovanı hesla).

Po spustenı programu MATLAB se objevı integrovane okno aplikace:

1.1 Popis oken

V leve casti aplikace je okno Current folder, kde se zobrazujı podadresare a soubory praveaktivnıho adresare (jedna se o adresar, ktery je vybran a zobrazen v bılem okenku v hornımpruhu ikon).

2

Page 3: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

Ve strednı casti aplikace se nachazı (nahore) okno Editor, ve kterem se editujı programy aodkud je take mozno je spoustet. Nıze je prıkazove okno Command window, ve kterem je moznointeraktivne zadavat prıkazy a ve kterem se take objevujı vysledky programu spustenych zeditoru.

V prave casti aplikace je otevreno okno s hodnotami promennych tzv. Workspace. Pod nım jeeditor promennych Variable editor, v nemz je mozne zadavat nebo upravovat slozite promennejako struktury nebo cell-vektory.

Okna lze aktivovat nebo skryvat z menu Desktop nebo prımo mysı - pro pretazenı lze oknouchopit za listu (vetsinou s ikonami) a tahnout. Objevı se ramecek, ktery postupne preskakuje.V okamziku, kdy jsme s umıstenım spokojeni, okno pustıme a to se usadı. Okno lze rovnez zintegrovaneho prostredı vytahnout kliknutım na sipku otocenou sikmo nahoru v prave castiikonove listy. Po vytazenı se sipka otocı sikmo dolu a okno se opet zasune do aplikace (dokuje).

1.2 Pracovnı adresar

Matlab pracuje s tzv. pracovnım adresarem. Do tohoto adresare uklada vysledky a v tomtoadresari take nejdrıve hleda volane soubory. Obsah pracovnıho adresare se ukazuje v okneCurrent folder.

Nastavenı pracovnıho adresare je mozno provest pomocı ikon nad editorem:

Vetsinou stacı bıle okenko, kde se ukladajı naposledy pouzite adresare a odkud je lze opetvyvolat. Pokud mame jeste nepouzity adresar, dostaneme se k nemu pomocı ikony vedleokenka (ikona s tremi teckami), ktera otevre cely adresarovy strom.

1.3 Nastavenı cesty

Pokud chceme pouzıvat i soubory, ktere nemame prımo v pracovnım adresari, musıme je zadatdo cesty Path, na ktere Matlab hleda volane soubory. To lze provest v menu File v polozce SetPath. Po jejım vyberu se otevre dialogove okno:

3

Page 4: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

Adresare lze pridavat pomocı tlacıtek Add Folder (pridanı jednoho adresare) a Add with Sub-folders (pridanı adresare i s jeho podadresari) a odstranovat pomocı Remove.

Dulezite!! Pred zavrenım okna je treba cestu ulozit. Pokud ulozena nebude, nastavenı platıjen do zavrenı Matlabu.

1.4 Ikony editoroveho okna

Pro spoustenı a ladenı programu jsou dulezite ikony v okne editoru. Ikony jsou uvedeny nanasledujıcım obrazku (pro odkazy jsou ocıslovane):

1.5 Prace v aplikaci MATLAB

Jak jiz bylo zmıneno, v Matlabu existuje dvojı zpusob prace.

• Interaktivnı - pracuje se pouze v okne Command window, kde se zadavajı (jednorad-kove) prıkazy a po odklepnutı pomocı Enter se ihned obdrzı odpoved’ (pokud nenı zaprıkazem strednık nebo pokud prıkaz nejaky vysledek dava).

X Pokud nenı zadany prıkaz (vyraz) prirazen promenne, jeho hodnota je prirazenaobecne promenne ans. Pod tımto jmenem lze spoctenou hodnotu nasledne zavolat.

X Naposledy zadany prıkaz (a pak i starsı) lze vyvolat klavesou ↑ a dale jej editovat.

• Davkovy - jednotlive prıkazy jsou zapisovany jako program do editoru. Potom jsouprıkazy spusteny najednou. Program lze spustit ikonou 12.

4

Page 5: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

X Vysledky lze zıskat trojım zpusobem: (i) tiskem nebo grafem z programu, (ii) dota-zem na promennou po ukoncenı behu, (iii) sledovanım vysledku v okne Workspace(dvojım kliknutım je promenna zkopırovana do okna Variable editor, lze prohlızet ipromenne slozite).

X Pokud program neprojde, ohlası v Command window chybu. Ve vypisu chyby jenapsano mısto a prıcina chyby. Toto hlasenı je velmi uzitecne.

X Pokud chybu neumıme z chyboveho vypisu urcit, mame moznost program krokovat.Mısto, kde chceme program po spustenı zastavit, oznacıme mysı tak, ze kliknemena pomlcku ( - ) u prıslusneho cısla radku. Objevı se velka tecka (zelena, pokudprogram nenı ulozen, cervena, pokud ulozen je). Zastaveny program je mozno kro-kovat ikonou 15. Pokud chceme pri krokovanı vstoupit do podprogramu, pouzijemeikonu 16. Zastavenı krokovanı provedeme ikonou 19.Uzitecne je take prave tlacıtko mysi. objevı se menu s dalsımi prıkazy.

1.6 Podprogramy

V programech jazyku MATLAB je mozne vyuzıvat podprogramy standardnı (obsazene vMatlabu) nebo vlastnı.

Matlab obsahuje velke mnozstvı vlastnıch funkcı. Jejich prehled lze dostat tak, ze se v Com-mand window zada prıkaz help. Objevı se klikacı seznam oblastı funkcı s kratkym popisem. Vnem lze dale hledat. Na konkretnı funkci je mozne se dotazat prıkazem help jmeno (naprıkladhelp plot). Lze take vyuzıt napovedu Matlabu, ktera muze byt vyvolana nejlepe kliknutımmysı na ikonu help (modre kolecko s otaznıkem v hornı rade ikon). Tady se nachazı kromenavodu i rada prıkladu k pouzitı dane funkce.

Vlastnı podprogramy se pısı jako samostatny programovy soubor se jmenem souboru a kon-covkou .m Volajı se jmenem (bez koncovky). Mohou mıt dvojı charakter.

• Skript - skupina prıkazu samostatne ulozena. Tam, kam jmeno souboru ve svem pro-gramu vlozıme, se prıkazy jednoduse zavolajı tak, jako by tam byly vypsane.

• Anonymnı funkce - jednoradkovy zapis funkce je mozno provest prımo na zacatkuskriptu. Jejı tvar je napr. nasledujıcı:

f = @(x,a) a*(x-1)ˆ2 volanı f(5,1)

• Funkce - skupina prıkazu samostatne ulozena vcetne hlavicky s formalnımi vstupnımia vystupnımi parametry. Vola se jmenem se skutecnymi parametry, ktere se predavajıdo formalnıch podle poradı.Poznamka:Zapis i pouzitı funkcı v Matlabu je obdobne jako u vsech beznych programovacıch jazyku.Promenne funkce jsou lokalnı. Hodnoty se vracı pres vystupnı parametry.

5

Page 6: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

Prıklad zapisu funkce

function [m1,m2,v1,v2,co] = momenty(x,y)

% [mx,my,vx,vy,co] = momenty(x,y)

% prvni a druhe momenty souboru x, y

% mx,my prvnı momenty (prumery)

% vx,vy druhe momenty (vyb. rozptyly)

% co druhy vzajemny moment (vyb. kovariance)

% x,y datove soubory (vybery)

mx=mean(x);

my=mean(y);

vx=var(x);

vy=var(y);

co=cov(x,y);

Prıklad pouzitı funkce

x = [1 2 2 3 2 3 1 1];y = [3 5 2 6 1 2 6 3];[meanX, meanY, varX, varY, covXY] = momenty(x,y)

1.7 Datove soubory

Data se v Matlabu nachazı ve dvou formach - data vstupnı, ktera chceme zpracovat, a datavypoctena v programu. Oba druhy dat lze natahnout do pameti, nebo naopak ulozit na diskpomocı prıkazu load nebo save. Nejbeznejsı je nasledujıcı syntaxe

prıkaz vyznam

load jmeno vola se soubor jmeno.mat ve formatu Matlabload jmeno.konc vola se soubor jmeno.koncload -ascii jmeno vola se soubor v textovem (ascii) formatusave jmeno uklada se soubor jmeno.mat ve formatu Matlabsave jmeno.konc uklada se soubor jmeno.koncsave -ascii jmeno uklada se soubor v textovem formatu

1.8 Prıstup ke statistickym funkcım MatStat

Balıcek funkcı MatStat byl vytvoren k podpore statistickych vypoctu pro studenty FD CVUT.Programy, ktere obsahuje i jejich forma vychazı ze systemu Octave (coz je velmi zdarilafreeware napodobenina Matlabu). System MatStat obsahuje funkce, ktere pocıtajı zakladnıstatisticke ulohy, jako jsou intervaly spolehlivosti, testy parametrickych i nekterych nepara-metrickych hypotez, zakladnı ulohy linearnı a nelinearnı regrese a analyzu rozptylu. Krometoho je take vybaven funkcemi pro vypocet kvantilu, kritickych hodnot a pravdepodobnostı“vlevo” a “vpravo” od zadaneho bodu a radou dalsıch uloh, demonstrujıcıch pouzitı systemuMatlab.MatStat

6

Page 7: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

Jak se k balıcku MatStat dostat

MatStat je mozno stahnout z webu

www.utia.cz/nagy/skola

v casti

Downloads

Matlab files - MatFiles = zakladnı procedury pro statisticke vypocty.

Po kliknutı se zacne stahovat soubor Matlab files.zip. Ten ulozte na disk a pamatujte, kamjste ho ulozili.

Na disku, kde mate povolen zapis (nejspıse to bude disk F:) si vytvorte pracovnı adresar Stat,tedy F:\Stat

Do tohoto adresare rozzipujte stazeny soubor Matlab files.zip. Obsah je zobrazen v nasledujı-cım obrazku

Jak se na balıcek napojit

Ted’ sice mate procedury v pocıtaci, ale Matlab o nich dosud nevı. Musıme mu je dat na path.Postup je nasledujıcı:

1. Kliknete na polozku File hlavnıho menu aplikace a zvolte Set Path ... Otevre se prıslusnemenu.

2. Kliknete na tlacıtko Add With Subfolders ...

3. Otevre se adresarovy strom. V nem najdete vytvoreny adresar Stat a potvrd’te OK.

4. Vratıte se do puvodnıho okna pro nastavenı cesty. To ukoncete stisknutım tlacıtka Save(jinak nastavena cesta platı jen do uzavrenı Matlabu).

Napojenı na balıcek MatStat lze otestovat prıkazem hlp v okne prıkazu. Pokud je napojenıspravne, objevı se menu pro jednotlive oblasti funkcı. Do konkretnı oblasti se dostanete za-danım odpovıdajıcıho cısla oblasti.

7

Page 8: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

Jak s balıckem pracovat

Nejlepe je zvolit adresar Stat jako pracovnı adresar (current folder). To se provede pomocıtlacıtka [...] (ikona s tremi teckami v hornım menu ikon aplikace Matlab). Zvolıte adresar Stata ten se vam objevı i v malem okenku vedle pouzite ikony. Z tohoto okenka lze pri prıstımsezenı adresar zvolit prımo.

Dulezite ale je, ze se pracovnı adresar objevı i v okne Current folder, ze ktereho lze take ote-vırat dalsı programove soubory (m-fajly). V nasem prıpade jsou to statisticke funkce balıckuMatStat.

2 Uvod do programovanı v jazyce MATLAB

2.1 Uvodnı poznamky

1. Vsechny promenne jsou matice. Skalar je a(1,1). Vektor muze byt radkovy a(1,5), nebosloupcovy a(5,1).

2. Strednık za zadanou promennou a=5; zpusobı, ze nenı zadna odezva po zadanı. Naopakpo zadanı promenne s carkou nebo bez niceho, tj. a=5, nebo a=5 se hodnota promennevypıse na obrazovku.

3. help”objekt“ zobrazı napovedu k objektu.

Ikona ? zavola interaktivnı stranku HELP.

4. Komentar je text zacınajıcı %. Nehraje zadnou roli ve vypoctech programu.

5. Prıkazy je mozne zapsat do textoveho souboru s koncovkou .m (batch-file) a spustit jenajednou zavolanım jmena souboru v hlavnım programu (viz 1/Prace v aplikaci Matlab).

2.2 Promenne a operace

Typy promennych

Nasledne jsou zmıneny zakladnı typy promennych, se kterymi budeme pracovat. Jsou vsakjen malym zlomkem z existujıcı mnoziny promennych.

• string slouzı pro zapis textu: a=’ahoj’. Stringy lze spojovat do vektoru:je-li a=’dobry ’; b=’den’ a c=[a,b], pak c=’dobry den’.Uzitecna je konverze cıslo → retezec: s=num2str(a), kde s je string a a double.

• logicke promenne jejichz hodnotami je”true“ (kodovano jako 1) a

”false“ (kodovano

jako 0).

• double promenne slouzı pro prirozene nebo realne promenne. Jejich definici je mozneprovest nasledovne:

8

Page 9: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

Zadanım hodnoty:

- skalar a=5;- radkovy vektor a=[3 5 1];- sloupcovy vektor a=[3; 5; 1], coz je totez jako a=[3 5 1]’- matice a=[2 3 4; 8 7 6];

• Prvky vektoru nebo matic se zadavajı do hranatych zavorek.

• Prvky v radku se oddelujı carkou nebo mezerou.

• Strednık ukoncı radek matice a prejde na novy.

• Transpozice se provede pomocı apostrofu ’.

Pomocı dvojtecky:

- a=5:8 s inkrementem 1 vytvorı vektor [5 6 7 8]- a=2:3:10 s inkrementem 3 vytvorı vektor [2 5 8]Pomocı funkcı

- a=zeros(2,3) vytvorı matici 2 x 3 nul- a=ones(2,3) vytvorı matici 2 x 3 jednicek

Operace s promennymi

• Vyber prvku matice:a(3:5) vypis 3.,4. a 5. prvku vektoru a.a(:,1) vypis 1. sloupce matice a

a(2:3,:) vypis 2. a 3. radku matice a.

• Operace: + - ∗ / ˆ

a+b a a-b ... scıtanı a odecıtanı (tyto operace je mozne provest pouze pro stejnerozmery a a b)a*b ... nasobenı (pozor na spravne rozmery pri nasobenı matic, respektive vektoru)a/b nebo a\b ... a krat inverze b, nebo inverze a krat bˆ... umocnenı, a=sqrt(b) ... odmocnenı funkce

• Teckove operace: .∗ ./ .Znamenajı operace prvek po prvku. Napr.:[1 2 3].*[6 5 4] je [1*6 2*5 3*4][2 3; 4 1]. [5 3; 2 8] je [2 5 3 3; 4 2 1 8]

• Operace s maticı a skalarem: + - * / ˆ

Pro matice platı skalar pro vsechny prvky matice:[2 3]*4 je [2*4 3*4]

• Logicke operace:== ∼= < <= > >= & (=and) | (=or) ∼ (=not)

9

Page 10: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

Prace s promennymi

• Prıkazy who, whos davajı informaci o definovanych promennych.

• [m,n]=size(a), m=size(a,1), n=size(a,2) davajı informaci o rozmerech matice a, resp.poctu radku, resp. poctu sloupcu.

• n=length(a) udava informaci o delce vektoru (vetsı z rozmeru matice a)

• clear, clear all uvolnuje pamet’.

2.3 Programovacı prıkazy

• Podmınka if

if b>c,a=5;

elsea=0;

end

Je-li splnena podmınka b>c, provede se prıkaz a=5; jinak prıkaz a=0;.

• Vıcenasobna podmınka if

if b>1,a=5;

elseif b<-.1,a=-5;

elsea=0;

end

Je-li splnena podmınka b>1, provede se prıkaz a=5; a prıkaz koncı. Jinak se testuje podmınkab<-1 a provede se prıkaz a=-5; nebo prıkaz a=0;.

• Cyklus for

for i=1:5a(i)=2*i;

end

Pro i=1,2,3,4,5 se provede prıkaz a(i)=2*i;. Vysledek: a=[2, 4, 6, 8, 10].

• Cyklus while

while i<=5a(i)=0;i=i+1;

end

10

Page 11: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

Dokud je splnena podmınka i≤5, provadejı se prıkazy a(i)=0; a i=i+1;, kde i je inkrement.Vysledek: a=[0, 0, 0, 0, 0].

• Clc, clear, clear all, clear functions

Clc maze vse v Command window (okne prıkazu).

Clear maze data v pameti.

Clear all maze celou pamet’ krome natazenych funkcı.

Clear functions maze funkce z pameti.

• Close, close all

Close zavre aktivnı okno grafu.

Close all zavre vsechna okna s grafy.

• Break, return

Break zpusobı ukoncenı cyklu for nebo while. Program pokracuje za tımto cyklem.

Return zpusobı ukoncenı provadene procedury.

• Pause, keyboard, input

Pause zpusobı zastavenı programu (ten pokracuje po stisku libovolne klavesy)

Keyboard zpusobı zastavenı programu a preda rızenı klavesnici - moznost kontroly pro-mennych uvnitr programu (pokracuje po zadanı prıkazu exit).

Input zpusobı zastavenı programu a ceka na vstup promenne (zadat a potvrdit Enter).

Napr.: a=input(’Zadej hodnotu a: ’); vypıse text v apostrofech a zadanou hodnotu priradıpromenne a.

• Eval

Eval(string) spustı prıkaz, ktery je textove zapsan v promenne string.

Napr.eval(’x=1;’) da prıkaz x=1 neboeval([’x’,num2str(i),’=1;’]) pro i=5 da x5=1.

• Nastavenı seed pro nahodny generator

Rand(’seed’,cislo) - volba seed se pouzıva pro generovanı pseudonahodne realizace cısel(generuje nahodna cısla, ale v kazdem behu stejnou realizacı). Cislo je dlouhe liche celecıslo - napr. 135731.

2.4 Tiskovy vystup

Pro tisk promennych slouzı prıkazy disp (bez formatu) a fprintf (s formatem).

• disp(a) zobrazı hodnotu promenne a.

11

Page 12: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

• disp(’ahoj’) vypıse text ahoj.

• fprintf(’prvek %d vektoru a je %g\n’,i,a(i));vypıse napr.: prvek 5 vektoru a je 4.12

2.5 Graficky vystup

Dvojrozmerny graf je mozno vykreslit prıkazem plot.

Prıklady:

• plot(y) vykreslı hodnoty vektoru y. Na ose x je poradı slozky vektoru (index).

• plot(x,y) vykreslı hodnoty vektoru y proti hodnotam vektoru x – tzv. xy-graf.

• plot(a) vykreslı sloupce matice a.

Formatovanı grafu:

Typ car Typ bodu Barva

- (plna) . (bod) r (cervena): (teckovana) + (plus) g (zelena)-. (cerchovana) o (krouzek) b (modra)– (carkovana) x (krızek) w (bıla)

Pro dalsı moznosti zadejte: help plot.

Prıklady:

• plot(x,’or’) vykreslı vektor x pomocı cervenych krouzku.

• plot(x,y,’r-+’,u,v,’b-x’) vykreslı dve krivky (x,y) a (u,v); prvnı cervenou plnou carou splusy, druhou modrou plnou carou s krızky.

Trojrozmery graf (zadany maticı bodu) se vykreslı prıkazem mesh.Funkce meshgrid pripravı argumenty pro vypocet zobrazovane matice.

Nasledujıcı program vykreslı nenormovanou hustotu pravdepodobnosti normalnıho rozdelenı.

x=-1.9:.1:2; y=x’; sig=.6;[xx yy]=meshgrid(x,y);z=1/sig*exp(-.5/sigˆ2*(xx.ˆ2+yy.ˆ2));mesh(x,y,z);

12

Page 13: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

3 Prıklady programu v jazyce MATLAB

%% PRIRAZENI HODNOTY PROMENNE −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−% − s t r edn i k p o t l a c i okamzity vyp is hodnoty% − zob razen i hodnota − napsat promennou bez s t r edn iku% − textova promenna fungu je jako vektor pismenek

c l c , c l e a r a l l

a=5; % hodnota a j e 5 ; hodnota nebude zobrazena

b=[3 2 5 ] % zadani hodnot vektoru + zobrazen i

c=[2 1 3 ] ’ % zadani hodnot ( s loupcoveho ) vektorud= [ 2 ; 1 ; 3 ] % to t e z − s t r edn i k odde lu j e radky matice

e=[3 4 ;5 6 ; 7 8 ] % matice 3x2

f =[c e ] % spo j en i matic − musi mit spravne rozmeryg=[b c ’ d ’ ] % j i n y zpusob spo j en i matic

h=f ( : ) % natazen i matice do vektoru ( po s l oup c i ch )

i=f ( : , 1 : 2 ) % vyber sub−matice − 1 :K=[1 2 3 . . K]j=g ( [ 3 : 5 6 8 ] ) % vyber podvektoru

k=’Navod ’ % textove promennel =’Matlab ’m=[k , ’ k ’ , l , ’ u ’ ] % s l o z e n i texu ( s l ova jako vektory pismen )

o=ze r o s (1 , 5 ) % generovan i vektoru 1x5 z nul − dek la racep=ones (3 ,4 ) % generovan i matice 3x4 z j edn i c ekq=rand (1 ,20) % generovan i vektoru s rovnomerne

% rozdelenymi nahodnymi c i s l y

13

Page 14: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

r=randn (12 ,2 ) % generovan i vektoru s normalne% rozdelenymi nahodnymi c i s l y

%% OPREACE S PROMENNYMI −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

3∗a % nasobeni ska la ru skalarem3∗b % nasobeni vektoru skalaremaˆ2 % umocneni na druhou

b∗c % nasobeni vektoru − . | ( vy s l . j e c i s l o )b ’∗ c ’ % nasobeni vektoru | .− ( vy s l . j e matice )b .∗ c ’ % nasobeni prvek po prvkue ∗ [ b ; c ’ ] % nasobeni maticb .ˆ2 % umocneni vsech prvku vektoru b na druhoub . ˆ [ 2 3 4 ] % umocneni na druhou , t r e t i a ctvr tou

%% PRIKAZY −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

% −−−> podminka i fc l c , c l e a r a l ls=randn % generovan i nahodneho c i s l a si f s>0

t=’kladne ’ ; % kladnee l s e

t=’zaporne ’ ; % zaporneendd isp ( [ ’ generovane c i s l o j e ’ , t ] ) % t i s k tes tovaneho c i s l a

% −−−> cyk lus f o rc l c , c l e a r a l la = [ ] ; % dek la race prazdne maticef o r i =1:5 % generovan i c i s e l 1 , 2 , 3 , 4 , 5

a=[a 1/ i ] ; % t r i k : do prazdne matice se pr idavaenda % t i s k vys ledku − l z e take : d i sp ( a )

% −−−> cyk lus wh i le% y=sq r t ( x ) − algor i tmus : y(0)=x% y( i +1)=.5∗(x/y ( i )+y( i ) )c l c , c l e a r a l lx=91; % i n i c i a l i z a c e promennycht e s t =1; y=x ; n=0;wh i l e t e s t >1e−5 % cyk lus ( dokud neni dosazeno p r e s n o s t i )

n=n+1; % poc i t ad l o i t e r a c iyn=.5∗( x/y+y ) ; % v l a s t n i algor itmus , r esp . vypocet yn

14

Page 15: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

t e s t=abs (yn−y ) ; % t e s t p r e s n o s t i mezi y a yny=yn ; % nove −> s t a r e

endd isp ( ’ vys ledek ’ ) % t i s k vys ledkud isp ( y )d i sp ( ’ pocet kroku ’ )d i sp (n )

%% SIKOVNE KOUSKY PROGRAMU −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

% −−−> Vykres l en ı funkce jedne promennec l c , c l e a r a l lf = @(x ) exp (−.5∗x )∗ cos (5∗x ) ; % zap i s anonymni funkce : f=@(x ) p r edp i s

x =0 : . 1 : 1 0 ; % vektor argumentu funkcen=length (x ) ; % delka vektoru xy=ze r o s (1 , n ) ; % dek la race y ( kvu l i r y ch l e j s im vypoctum)f o r i =1:n % cyk lus pro hodnoty funkce

y ( i )= f (x ( i ) ) ;end

f i g u r e (1 ) % vyk r e s l e n ip lo t ( x , y )

% −−−> Vykres l en ı funkce dvou promennychc l c , c l e a r a l l

m=1; n=−2;f = @(x , y ) exp ( − . 5∗ [ [ x y ]− [m n ] ] ∗ [ 1 0 ; 0 2 ] ∗ [ [ x y ] ’− [m n ] ’ ] ) ;

% zap i s anonymni funkce

x= −5: .1 :5; % vektor argumentu xy= −5: .1 :5; % vektor argumentu ynx=length (x ) ; % delka vektoru xny=length (y ) ; % delka vektoru yz=ze r o s (nx , ny ) ; % dek la race z : z=f (x , y )f o r i =1:ny % cyk lus pro hodnoty funkce

f o r j =1:nxz ( i , j )= f (x ( i ) , y ( j ) ) ;

endend

f i g u r e (1 ) % vyk r e s l e n imesh (x , y , z )

15

Page 16: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

% −−−> Pamatovani prubezne spoc i tanych hodnotc l c , c l e a r a l lf = @(x ) s i n (x ) ;

y = [ ] ;f o r x=0 : . 01 : p i

y=[y f ( x ) ] ;end

f i g u r e (1 )p lo t ( y )

% Poznamka :% Trik ”pr idavan i hodnot do prazdneho vektoru ” j e velmi ucinny .% Nemusime predem znat delku vektoru y a nemusime an i zavadet index% pro vektor y . Ale pozor ! Kazde r o z s i r e n i vektoru znamena z r u s i t% puvodni vektor , z a l o z i t novy d e l s i a do neho znovu nakopirovat% vsechny hodnoty . To v e l i c e zpomaluje vypocty .

% −−−> Opakovane generov an ı vyberu a vyberoveho prumeruc l c , c l e a r a l lm=0;s i g2 =1;n=10; % rozsah vyberunv=1000; % pocet opakovani vyberux=m+sq r t ( s i g 2 )∗ randn (n , nv ) ; % matice dat s vybery ve s l oup c i chmm=mean(x ) ; % vektor vyberovych prumeru

% Z opakovanych vyberu% mean( matice ) = vektor prumeru ze s loupcu

mx=mean(mm) ; % prumer z vyberovych prumerus2x=var (mm) ; % rozp ty l z vyberovych prumeru

f p r i n t f ( ’ S tr . hod : souboru %g , vyb . prumeru %g\n ’ ,m,mx)f p r i n t f ( ’ Rorptyl : souboru %g , vyb . prumeru %g\n ’ , s ig2 , s2x )f p r i n t f ( ’ Delka vyberu %d , pocet opakovani vyberu %d\n ’ , n , nv )d i sp ( ’ ’ )f p r i n t f ( ’ Rozptyl vyberoveho prumeru se ma rovnat\n ’ )f p r i n t f ( ’ r ozp ty lu souboru delenemu delkou vyberu\n ’ )

% −−−> I t e r a t i v n i vypocet se zastavovacim pravidlem% . . . j ak rych l e jde opakovana odmocnina x k c i s l u jednac l c , c l e a r a l lx=10; % pocatecn i hodnota

xt = [ ] ; % za l o z e n i vektoru pro uk ladan i hodnotj =0; % za l o z en i p oc i t ad l a i t e r a c i

16

Page 17: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

f o r i =1:1000 % cyk lus pro i t e r a c e (1000 maximalni pocet )j=j +1; % inkrement poc i t ad l ax=sq r t ( x ) ; % i t e r a c e a lgor i tmuxt=[ xt x ] ; % u l o z en i mezivypoctui f abs (x−1)<.00001 % zas tavovac i p rav id lo

break % pr e r u s en i cyklu f o rend

end

j % t i s k poctu i t e r a c if i g u r e (1 ) % vyk r e s l e n i hodnot mezivypoctubar ( xt )

% −−−> Soucet bodu na n kostkach n = 1 , 2 , 3 , . . .c l c , c l e a r a l ln=3; % pocet kosteknv=1000000; % pocet opakovani pokusu

x=f i x (6∗ rand (n , nv ))+1; % data ( s l oupec body pro jeden pokus )i f n==1, mx=x ; % soucet pro jednu kostkue l s e mx=sum(x ) ; end % a pro v i c e kostek

[ f , v]= h i s t (mx, n :6∗n ) ; % histogramf=f /nv ; % prepocet na r e l a t i v n i f r ekvencef i g u r e (1 ) % gr a fbar (v , f ) % histogramu

%% PRACE S VEKTORY A MATICEMI −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

% −−−> n e j v e t s i sudy prvek vektoruc l c , c l e a r a l lnd=100; % pocet c i s e lv=f i x (100∗ rand (1 , nd ) ) ; % ce l a c i s l a z i n t e r v a l u (0 , 100)mx=−i n f ; % n e j v e t s i hodnota − i n i c i a l i z a c ef o r i =1:nd % cyk lus prochazen i c i s e l

i f v ( i )/2== f i x (v ( i )/2) % na l e z en i sudych c i s e li f v ( i )>mx % nalezeno v e t s i sude nez zatim n e j v e t s imx=v( i ) ; % u l o z en i c i s l ami=i ; % u l o z en i porad i

endend

endf p r i n t f ( ’ Ne j v e t s i hodnota sudeho c i s l a j e %g .\n ’ ,mx)f p r i n t f ( ’ Tato hodnota byla nalezena na %g−tem miste .\n ’ , mi )

% −−−> s e r a z en i prvku vektoru 1

17

Page 18: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

c l c , c l e a r a l lnd=20; % pocet c i s e lv=f i x (1000∗ rand (1 , nd ) ) /100 ; % generovan i c i s e l s e dvemi des . mistyvv=v ; % pracovn i vektorf o r i =1:nd % zacatek cyklu

[ yy i i ]=max( vv ) ; % n e j v e t s i c i s l oy ( i )=yy ; % u l o z en i c i s l avv ( i i )=− i n f ; % schovan i c i s l a do d a l s i c h kroku

endf p r i n t f ( ’ S e razen i prvku j e n a s l e d u j i c i :\n ’ )f p r i n t f ( ’%g\n ’ , y )

% −−−> s e r a z en i prvku vektoru 2c l c , c l e a r a l lnd=20; % pocet c i s e lv=f i x (1000∗ rand (1 , nd ) ) /100 ; % generovan i c i s e l s e dvemi des . mistyy=v ; % pracovn i vektort e s t =1; % vstup do cyklu whi lewh i l e t e s t

t e s t =0; % pokud se nezmeni , cyk lus bude ukoncenf o r i =2:nd

i f y ( i−1)<y( i ) ; % predchoz i j e mensi nez aktua ln iz=y ( i −1); % prohozen i : zapamatujeme predchoz iy ( i−1)=y ( i ) ; % aktua ln i do predchozihoy ( i )=z ; % zapamatovane do aktualn ihot e s t =1; % byla zmena − j e s t e nekonc i t

endend

endf p r i n t f ( ’ S e razen i prvku j e n a s l e d u j i c i :\n ’ )f p r i n t f ( ’%g\n ’ , y )

%% GENEROVANI NAHODNYCH CISEL −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

% −−−> normalni = soucet s e s t i rovnomernych r o zd e l e n i na i n t e r v a l u ( − . 5 , . 5 )c l c , c l e a r a l lx=sum( rand (6 ,1000) − . 5 ) ; % sum s c i t a mat ic i po s l oup c i ch

% rand−.5 j e rovnomerne na (−0.5 , 0 . 5 )f i g u r e ( 1 ) , h i s t (x , 20 ) % histogram (20 i n t e r v a l u )t i t l e ( ’ Hustota pravdepodobnost i normalniho r o zd e l en i ’ )

% −−−> ch i ˆ2 = soucet kvadratu normalnihoc l c , c l e a r a l lx=sum( randn (5 , 1000 ) . ˆ2 ) % teckova operace = pro kazdy prvekf i g u r e ( 2 ) , h i s t (x , 20 )t i t l e ( ’ Hustota pravdepodobnost i ch i ˆ2 r o zd e l en i ’ )

18

Page 19: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

% −−−> student = normalni / ch i ˆ2c l c , c l e a r a l lx=sum( randn (5 , 1000 ) . ˆ2 )y=randn (1 , 1000 ) . / x ;f i g u r e ( 3 ) , h i s t (y , 20 )t i t l e ( ’ Hustota pravdepodobnost i studentova r o zd e l en i ’ )

% −−−> a l t e r n a t i v n i s p i =.3c l c , c l e a r a l lx=rand (1 ,1000) < . 3 ; % generov an ı z a l t r o z d e l e n i ∗)y=h i s t (x , 2 ) ; % gen e ru j i s e c e t n o s t i ∗∗)f i g u r e ( 4 ) , bar ( [ 0 1 ] , y /1000 , . 5 ) % sloupkovy g r a fax i s ([−1 2 0 1 ] ) % nastaven i os gra fut i t l e ( ’ Hustota pravdepodobnost i a l t e r n a t i v n i h o r o zd e l en i ’ )%% ∗)% rand<.3 = 1 j e s t l i z e bylo z rand generovano c i s l o mensi nez 0 .3 a% = 9 j e s t l i z e bylo geerovano c i s l o v e t s i .% Protoze c i s l a mensi nez 0 .3 l e z i na usece 0−0.3 a c i s l a v e t s i na% usecce 0.3−1 , bude pravdepodobnost j edne rovna 0 .3 a nuly 0 .7%% rand (1 ,1000)< .3 de la t o t e z pro kazde z t i s i c e generovanych c i s e l .% Vysledek j e tedy vektor nul a j edn icek , kde nuly maji pr . 0 . 3 a% jedn i cky 0 .7%% ∗∗)% pr ikaz h i s t s vystupnimi argumenty n ek r e s l i , a l e j en generu j e% f r ekvence a strdy i n t e r v a l u . Ty l z e pak vyuz i t ke k r e s l e n i pomoci% funkce bar = kresnemi s loupkoveho grafu .

% −−−> multinomickec l c , c l e a r a l lp = [ . 2 . 1 . 1 . 3 . 3 ] ; % pravdepodobnost i j edno t l i v y ch hodnotpp=cumsum(p) % kumulat ivni soucet pravdepodobnost ix=ze r o s ( 1 , 1000 ) ; % dek la racef o r i =1:1000 % opakovani experimentu

x ( i )=sum( rand>pp)+1; % p r i k l . : . 451 > [ . 2 . 3 . 4 . 7 1]=[0 0 0 1 1 ]enda=h i s t (x , l ength (p ) )f i g u r e ( 5 ) , bar ( 1 : l ength (p ) , a /1000)t i t l e ( ’ Hustota pravdepodobnost i multinomickeho r o zd e l en i ’ )

% −−−> binomickec l c , c l e a r a l lp=.3; n=10; nd=1000; % pravdep . , pocet pokusu , pocet exper .

19

Page 20: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

x=ze r o s (1 , nd ) ;f o r i =1:nd % opakovani experimentu

x ( i )=sum( rand (1 , n)<p ) ; % generovan i z i s e l z binom . r o zd e l e n i ∗)enda=h i s t (x , 0 : n ) ;f i g u r e ( 6 ) , bar ( 0 : n , a/nd)t i t l e ( ’ Hustota pravdepodobnost i binomickeho r o zd e l en i ’ )%% ∗)% pr ikaz rand (1 , n)<p generu j e vektor j edn i c ek a nul s pravd . p a 1−p% v i z generovan i z a l t e r n a t i v n i h o r o zd e l e n i . Jednicka j e uspech , nula% neuspech . Suma z tohoto vektoru j e tedy pocet uspechnu v n% a l t e r n a t i v n i c h pokusech , coz j e binomucke r o zd e l e n i .

% −−−> geometr ickec l c , c l e a r a l lp=.3; nd=1000; % pravdepodobnost , pocet experimentux=ze r o s (1 , nd ) ;f o r i =1:nd % opakovani experimentu

j =0;r=rand<p ; % a l t e r n a t i v n i pravdep . ( prvn i krok )wh i le r==0

j=j +1;r=rand<p ; % a l t e r n a t i v n i pravdep . ( v prubehu)

endx ( i )= j ; % u l o z en i vys ledku

endxx=max(x ) ;a=h i s t (x , 0 : xx ) ;f i g u r e ( 7 ) , bar ( 0 : xx , a/nd)t i t l e ( ’ Hustota pravdepodobnost i geometr ickeho r o zd e l en i ’ )

%% PRIKLADY NA STATISTICKOU PRAVDEPODOBNOST −−−−−−−−−−−−−−−−−−−−−−−−−−

% −−−> Jaka j e pravdepodobnost , ze p r i hodu dvema minceni padne s t e j n a% strana ?c l c , c l e a r a l lnd=100000; % pocet hodum1=rand (1 , nd)< .5 ; % generovan i hodu prvn i mince s prp<0,5m2=rand (1 , nd)< .5 ; % generovan i hodu druhe mince s prp<0,5n1=sum(m1==m2) ; % s t e j n e hodnoty pravdepodobnost i ?P=n1/nd % vypocitana pravdepodobnost

% −−−> V klobouku j sou 3 b ı l e a 5 modrych kor a lk u . Postupne , bez% vracen ı , vytahneme 2 kor a lky . Jaka j e pravdepodobnost , ze druhy% kor a l ek bude b ı l y ?

20

Page 21: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

c l c , c l e a r a l lPb=3/8; % t e o r e t i c k a pravdep . vytazen i b i l eh ond=1000; % pocet experimentun1=0;f o r i =1:nd % opakovani experimentu

i f rand<PbPb=2/7; % prp ( b i l eh o | prvn i b i l y ) v druhem tahu

e l s ePb=3/7; % pr ( b i l eh o | prvn i modry) v druhem tahu

endi f rand<Pb

n1=n1+1; % kdyz druhy j e b i l yend

endP2b=n1/nd % pravdepodobnost z experimentuf p r i n t f ( ’ s t a t i s t i c k a pravdepodobnost z %d pokusu j e %g\n ’ , nd , P2b)f p r i n t f ( ’ t e o r e t i c k a pravdepodobnost j e %g\n ’ , 3/8 )

% −−−> Hazıme dvema kostkami . Jaka j e pravdepodobnost , ze sou cet bude% sudy , j e s t l i z e vıme , ze :% ( i ) Na prvn ı kos t ce nepadla s e s tka ?% ( i i ) Ani na jedn e kos t ce nepadla s e s tka ?nd=1000;d i sp ( ’ Uloha ( i ) ’ )% −−−−−−−−−−− uloha ( i )K1=f i x (5∗ rand (1 , nd ))+1; % prvn i kostka ( bez s e s tky )K2=f i x (6∗ rand (1 , nd ))+1; % druha kostka ( c e l a )s=K1+K2; % soucet prp obou kostekn1=sum( f i x ( s/2)∗2==s ) ; % t e s t na sude c i s l o ( f i x u r i zne des . ca s t )Ps1=n1/nd ; % vypoctena pravdepodobnostf p r i n t f ( ’ s t a t i s t i c k a pr . sudeho souctu j e %g\n ’ , Ps1 )f p r i n t f ( ’ t e o r e t i c k a pr . sudeho souctu j e %g\n ’ , . 5 )d i sp ( ’ ’ )d i sp ( ’ Uloha ( i i ) ’ )% −−−−−−−−−−−− uloha ( i i )K3=f i x (5∗ rand (1 , nd ))+1; % druha kostka ( bez s e s tky )s=K2+K3; % soucet prp obou kostekn1=sum( f i x ( s/2)∗2==s ) ; % t e s t na sude c i s l oPs2=n1/nd ; % vypoctena pravdepodobnostf p r i n t f ( ’ s t a t i s t i c k a pr . sudeho souctu j e %g\n ’ , Ps2 )f p r i n t f ( ’ t e o r e t i c k a pr . sudeho souctu j e %g\n ’ , 13/25)

% −−−> Dva soupe r i s t r dav e h az ı minc ı . Vyhrava ten , komu jako prvn ı% padne l ı c . Jaka j e pravdepodobnost , ze vyhraje ten , co za c a l h azet ?c l c , c l e a r a l l

21

Page 22: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

nd=10000;n1=0; % poc i t ad l o uspesnych her p rvn ih if o r i =1:nd % cyk lus pro opakovane hry

j =0; % ind i ka to r hracu ( l i c h e=prvni , sude=druhy )whi le 1 % cyk lus pro s t r i d av e hazen i

j=j +1; % kdo zrovna haz ix=round ( rand ) ; % co bylo hozeno (1= l i c , 0=rub )i f x==1 % kdyz byl hozen l i c

i f f i x ( j /2)∗2˜= j % a hod i l ho prvn i hracn1=n1+1; % p r i c t e se mu uspesna hra

endbreak % jedna hra konc i

endend

endP=n1/nd % pr . uspechu prvniho

% −−−> Na sk lad e j e n vyrobku . Mezi mimi j e m vadnych . Ke kont ro l e% vybereme c t y r i vyrobky . Jaka j e pravdepodobnost , ze mezi mimi bude% zadny , j eden az c t y r i dobre vyrobky ?% −− vyber najednou = bez vracen ı .c l c , c l e a r a l lnd=10000;n=10; % pocet vyrobku na sk ladem=4; % pocet spatnychnv=4; % v e l i k o s t vyberux=[ z e r o s (1 ,m) ones (1 , n−m) ] ; % vyrobky (0=spatny , 1=dobry )d=ze r o s (1 , nv+1); % d e f i n i c e p oc i t ad l a pro dobre vyrobkyf o r i =1:nd % opakovani pokusu

xp=x ; % pracovn i vektor vyrobkuf o r k=1:nv % vyber nv vyrobku bez vracen i

nx=length ( xp ) ; % pocet zbylych vyrobku ns sk ladej=f i x ( nx∗ rand )+1; % nahodny vyber vyrobku ( jeho porad i )v (k)=xp( j ) ; % vybrany vyrobekxp=xp ( [ 1 : j−1 j +1:nx ] ) ; % zbytek vyrobku ( bez vybraneho )

endk=sum(v ) ; % pocet dobrych ve vyberud(k+1)=d(k+1)+1; % poc i t ad l o vys ledku

endd isp ( ’ Vyber bez vracen i ’ )P1=d/nd % s t a t i s t i c k a pravdepodobnost

% −− vyber postupne s vracenımp=m/n ; % pr . dobreho vyrobku ( s t a l e s t e j n a )c=ze r o s (1 , nv+1); % d e f i n i c e p oc i t ad l a pro dobre vyrobkyf o r i =1:nd % opakovani pokusu

22

Page 23: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

x=f i x ( rand (1 , nv)>p ) ; % vyber vyrobku s vracenimk=sum(x ) ; % pocet dobrych ve vyberuc (k+1)=c (k+1)+1; % poc i t ad l o vys ledku

endd isp ( ’ Vyber s vracenim ’ )P2=c/nd % s t a t i s t i c k a pravdepodobnost

% −−−> Overte p l a tn o s t vztahu o s r edn i hodnote a r ozp ty lu vyb eroveho% prumeru% Poznamka : Oznacime− l i Xm = 1/n . suma( x i ) jako vyberovy prumer , pak% z t e o r i e plyne , ze :% E[Xm] = mi ( s t r e d n i hodnot souboru ) a% D[Xm] = s i g ˆ2/n ( r o zp ty l souboru deleny rozsahem vyberu )c l c , c l e a r a l lnd=1000; % pocet opakovani pokusunx=100; % pocet datn=50; % v e l i k o s t vyberumi=5; % s t r e d n i hodnota generatoru datsg=10; % smerodatna odchylka generatoru datx=sg∗ randn (1 , nx)+mi ; % datad i sp ( ’ S t r edn i hodnota a r o zp ty l souboru ’ )mx=mean(x ) % s t r e d n i hodnota dats2x=var (x ) % rozp ty l datf o r i =1:nd

v=vyber (n , x ) ; % funkce vyber z dat ∗)mv=mean(v ) ; % s t r e d n i hodnota vyberumm( i )=mv; % u l o z en i s t r e d n i hodnoty vyberu

endd isp ( ’ S t r edn i hodnota a r o zp ty l vyberu ’ )mmx=mean(mm) % s t r e d n i hodnota vyberovych prumeruss2x=var (mm) % rozp ty l vyberovych prumeru%% ∗) funkce k predchozimu programufunct i on v=vyber (nv , x )% v=vyber (nv , x ) nahodny vyber nv prvku z vektoru x bez vracen iv=ze r o s (1 , nv ) ;f o r k=1:nv % vyber nv prvku bez vracen i

nx=length ( x ) ; % pocet zbylych prvku v xj=f i x ( nx∗ rand )+1; % nahodny vyber prvku ( j eho porad i )v (k)=x ( j ) ; % vybrany prvekx=x ( [ 1 : j−1 j +1:nx ] ) ; % zbytek prvku ( bez vybraneho )

end

% −−−> Overte p l a tn o s t c e n t r a l n i l im i t n ı v ety pro z ak l adn ı soubor s% a l t e rnat ivn ım rozd e l en ım s parametrem p

23

Page 24: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

c l c , c l e a r a l lnd=100000; % pocet opakovani pokusun=500; % v e l i k o s t vyberup=.3; % parametr a l t e r n a t i v n i h o r o zd e l e n inh=30; % pocet i n t e r v a l u pro histogramx=ze r o s (1 , nd ) ;f o r i =1:nd % opakovani pokusu

s=0; % poc i t an i vyberoveho prumeruf o r j =1:n

s=s+f i x ( rand < . 3 ) ;ends=s /n ; % vyberovy prumer z Alt r o zd e l e n ix ( i )=s ; % u l o z en i vyberoveho prumeru

endf i g u r e (1 )[ f s ]= h i s t (x , nh ) ;bar ( s , f )t i t l e ( ’ Histogram vyberovych prumeru z a l t e r n a t i v n i h o r o zd e l en i ’ )

% −−−> Hustota pravdepodobnost i a h istogramc l c , c l e a r a l lnv=10000; % pocet hodnot z norm . r o zd e l e n in f =30; % pocet i n t e r v a l u pro histogramm=2; % s t r e d n i hodnota norm . r o zd e l e n is2=5; % rozp ta l norm . r o zd e l e n i

x=m+sq r t ( s2 )∗ randn (1 , nv ) ; % generovane hodnoty z norm . r o zd e l e n i[ f v]= h i s t (x , n f ) ; % histogram f=frekvence , v=s t r edy in t .h=(max(v)−min( v ) )/ nf ; % s i r k a i n t e r v a l u v histogramuf=f /nv ; % r e l a t i v n i f r ekvence ( soucet = 1)f=f /h ; % pr i zp . hustote prav . − v i z Poznamkas=min (v ) : . 0 1 :max(v ) ; % rozsah argumentu pro hustotu pr .g=1/sq r t (2∗ p i ∗ s2 )∗ exp (−1/(2∗ s2 )∗ ( s−m) . ˆ 2 ) ; % hustota norm . r o zd e l e n i

f i g u r e (1 ) % gra fybar (v , f , . 5 ) , hold on % histogramp lot ( s , g , ’ r ’ , ’ l inewidth ’ , 4 ) , hold o f f % normalni r o z d e l e n i%% Poznamka :% Kdyz pocitame i n t e g r a l z hustoty pr . numericky , sc itame plochy% obdeln iku f i . h , kde f i j e hodnota f v i−tem i n t e r v a l u krat de lka% in t e r v a l u h , t j .% in t { f ( x )dx} = suma{ f i . h} = suma{ f i } . h = 1% Odtud tedy pro hodnoty f i p lyne% suma{ f i } = 1/h% Tak musi byt normovane hodnoty histogramu s s i r kou i n t e r v a l u h , aby

24

Page 25: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

% odpovidaly hustote pravdepodobnost i .

% −−−> Hustota pravdepodobnost i a h istogram vyberoveho prumeru .c l c , c l e a r a l ln=12; % rozsah vyberunv=100000; % pocet opakovani vyberunf =30; % pocet i n t e r v a l u pro histogramm=2; % s t r e d n i hodnota souborus2=5; % rozp ty l souboru

x=m+sq r t ( s2 )∗ randn (n , nv ) ; % generovana data ( vybery ve s l oup c i ch )mx=mean(x ) ; % vektor vyberovych prumeru ∗)[ f v]= h i s t (mx, nf ) ; % histogram z vyberovych prumeru ∗∗)h=(max(v)−min( v ) )/ nf ; % s i r k a i n t r va l u v histogramuf=f /nv ; % normovani na soucet f r e k v en c i = 1f=f /h ; % normovani na podobnost s hp ∗∗∗)s=min (v ) : . 0 1 :max(v ) ; % argument pro v yk r e s l e n i hpsv=s2/n ; % prepocet r ozp ty lu pro vyberovy prumerg=1/sq r t (2∗ p i ∗ sv )∗ exp (−1/(2∗ sv )∗ ( s−m) . ˆ 2 ) ; % hp normalniho r o zd e l e n i

f i g u r e (1 ) % gr a fbar (v , f , . 5 ) , hold on % histogram vyberovych prumerup lo t ( s , g , ’ r ’ , ’ l inewidth ’ , 4 ) , hold o f f % hp pro vyberove prumery%% ∗)% funkce mean z matice fungu je pro s l oupce matice − vys ledek j e vektor% prumeru ze s loupcu matice%% ∗∗) kdyz ma funkce h i s t vystupni argumenty , n e k r e s l i histogram , a l e% jen poc i ta f=frekvence , v=s t r edy in te rva lu , na kterych se f r ekvence% poc i t a l y ; druhy vstupn i argument d e f i n u j e pocet i n t e r v a l u%% ∗∗∗)% Kdyz pocitame i n t e g r a l z hustoty pr . numericky , sc itame plochy% obdeln iku f i . h , kde f i j e hodnota f v i−tem i n t e r v a l u krat de lka% i n t e r v a l z h , t j .% in t { f ( x )dx} = suma{ f i . h} = suma{ f i } . h = 1% Odtud tedy pro hodnoty f i p lyne% suma{ f i } = 1/h% Tak musi byt normovane hodnoty histogramu s s i r kou i n t e r v a l u h , aby% odpovidaly hustote pravdepodobnost i .

% −−−> Histogram pro soucet bodu na n kostkach a jeho porovnani% s odpov idaj i c im normalnim rozde len im .c l c , c l e a r a l ln=5; % pocet kostek

25

Page 26: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

nv=100000; % pocet opakovani pokusuxd=f i x (6∗ rand (n , nv ))+1; % matice dat s vybery ve s l oup c i ch

% data = body na hozene kos tcex=sum(xd ) ; % soucet bodu na n kostkach

kf=n :6∗n ;nf=length ( k f ) ;[ f v]= h i s t (x , k f ) ; % f=f r ekvence a v=st r edy i n t e r v a l u pro x ,

% nf=pocet i n t e r v a l u pro histogram% porovnani

h=(max(v)−min( v ) )/ nf ; % s i r k a i n t e r v a l u v histogramuf=f /nv ; % normovani f r e k v en c i na soucet jednaf=f /h ; % normovani na podobnost s hustotou pr .

mx=mean(x ) ; % prumer z generovanych souctusx2=var (x ) ; % rozp ty l z generovanych souctus=min (v ) : . 0 1 :max(v ) ; % argumenty pro v yk r e s l e n i hustoty pr .g=1/sq r t (2∗ p i ∗ sx2 )∗ exp (−1/(2∗ sx2 )∗ ( s−mx) . ˆ 2 ) ; % hustota norm . r o zd e l e n i

s e t ( f i g u r e ( 2 ) , ’ pos i t i on ’ , [ 8 0 0 500 600 450 ] )p lo t ( s , g , ’ r ’ , ’ l inewidth ’ , 3 ) , hold onbar (v , f ) , hold o f f

%% KRESLENI −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

% −−−> p lo t − zak ladn i p ou z i t ic l c , c l e a r a l lnd=100; % max pro i n t e r v a l k r e s l e n is =0 : . 1 : nd ; % body pro k r e s l e n i ( po d e s e t i n e )x=s in ( s /nd∗4∗ p i ) ; % funkce xy=2∗cos ( s ) . ∗ exp (−.05∗ s ) ; % funkce yz=3∗ s i gn ( s i n ( s /nd∗3∗ p i ) ) ; % funkce zf i g u r e (11)p lo t ( s , x , ’ r ’ , s , y , ’ b ’ ) , hold on % gra f ( po hold on se k r e s l i dop lo t ( s , z , ’ g ’ , ’ l inewidth ’ , 3 ) , hold o f f % s te jn eho obrazku −

% − z r u s i se hold o f f )ax i s ( [ 1 nd −4 4 ] )l egend ( ’ s inus ’ , ’ tlumeny kos inus ’ , ’ skoky ’ , 0 ) % pop is k r iv ek ( podle porad i )

% −−−> p lo t − nastaven i pro formatovani gra fuc l c , c l e a r a l lnd=100;s = . 1 : . 1 : nd ;x=s ( 1 0 : 1 0 : nd ) ; % funkce x

26

Page 27: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

y=s .∗ exp (−.05∗ s ) ; % funkce y[my i ]=max(y ) ; % maximum funkce (my) a jeho poloha ( i )mx=i /10; % poloha maxima v re a lnych jednotkach

% −−−> g r a f a j eho formatovanis e t ( f i g u r e ( 12 ) , ’ Pos i t ion ’ , [ 1 0 0 100 600 600 ] )p lo t ( s , y,’−−r ’ ,mx,my, ’ o ’ , ’ MarkerEdgeColor ’ , ’ k ’ , ’ LineWidth ’ , 2 , . . .

’ MarkerFaceColor ’ , ’ g ’ , ’ MarkerSize ’ , 1 0 )t i t l e ( ’ Funkce ’ ’ x∗exp(−x ) ’ ’ a j e j i maximum’ , ’ FontSize ’ , 1 6 , . . .

’FontName ’ , ’ Times ’ )x l ab e l ( ’ argumenty ’ , ’ FontSize ’ , 1 4 , ’ FontName ’ , ’ Times ’ )y l ab e l ( ’ funkcn i hodnoty ’ , ’ FontSize ’ , 1 4 , ’ FontName ’ , ’ Times ’ )l egend ( ’ funkce ’ , ’maximum’ , 0 )

% −−−> p lo t − d a l s i p ou z i t ic l c , c l e a r a l lnd=30.4∗ p i ; s = . 1 : . 1 : nd ; % pocet dat , body pro k r e s l e n ia=5; b=10; h=.01; % a , b − poloosy e l i p s y , h − zmena poloosx=ze r o s (1 , l ength ( s ) ) ; y=x ;f o r i =1: l ength ( s )

x ( i )=a∗ s i n ( s ( i ) ) ; % x−ova souradn icey ( i )=b∗ cos ( s ( i ) ) ; % y−ova souradn icea=a+h ; b=b−h ; % zmena poloos

endf i g u r e (13)p lo t ( x , y )

% −−−> 3D gra fyc l c , c l e a r a l lf=@(x , y ) exp (−.01∗xˆ2−.03∗y ˆ2 ) ; % d e f i n i c e anonymni funkcex=−10:10; y=−10:10; % meze pro x a yf o r i =1: l ength (x )

f o r j =1: l ength (y )z ( i , j )= f (x ( i ) , y ( j ) ) ; % matice hodnot dvourozmerne funkce

endends e t ( f i g u r e ( 14 ) , ’ pos i t i on ’ , [ 1 0 0 500 400 400 ] ) ,mesh (x , y , z )t i t l e ( ’mesh ’ )view (−132 ,62) % format grafu ( otocen i , naklon )s e t ( f i g u r e ( 15 ) , ’ pos i t i on ’ , [ 6 0 0 500 400 400 ] )w a t e r f a l l (x , y , z )t i t l e ( ’ wa t e r f a l l ’ )s e t ( f i g u r e ( 16 ) , ’ pos i t i on ’ , [ 1 1 0 0 500 400 400 ] )contour (x , y , z )t i t l e ( ’ contour ’ )

27

Page 28: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

%% RUZNE −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

% −−−> Grad ientn ı metodou najd e te extrem dane funkcec l c , c l e a r a l lf=@(x , y ) . 02∗ ( x−1)ˆ2+.1∗( y−2)ˆ2; % d e f i n i c e anonymni funkce

h=.01; % krok h l edan i extremueps=1e−6; % male c i s l o ( pr ipustna chyba h l edan i )a l =.1; % vaha grad ientux=0; y=0; % s t a r t o v a c i bod pro h l edan ij =0; % poc i t ad l o kroku ( i n i c i a l i z a c e )t e s t =1; % vstup do cykluwhi le t e s t

j=j +1; % ak tua l i z a c e poc i t ad l adfx=( f ( x+h , y)− f (x , y ) )/ h ; % grad i en t xdfy=( f (x , y+h)− f (x , y ) )/ h ; % grad i en t yxn=x−a l ∗dfx ; % krok h l edan i ( pro x )yn=y−a l ∗dfy ; % krok h l edan i ( pro y )d=sq r t ( ( xn−x)ˆ2+(yn−y ) ˆ 2 ) ; % delka aktualn iho kroku p r i h l edan ii f d<eps , t e s t =0;end % kdyz de lka kroku < eps , konec h l edan ix=xn ; y=yn ; % nove −> s t a r ei f j>1e6 , % h ledan i nekonverguje

d i sp ( ’ Povoleny pocet i t e r a c i j e vycerpan ’ )break

endend% vysledkyi f t e s t==0

tx=’bylo ’ ;e l s e

tx=’nebylo ’ ;endf p r i n t f ( [ ’ Hledane r e s e n i ’ , tx , ’ na lezeno − pocet kroku %d .\n ’ ] , j )f p r i n t f ( ’ Reseni j e [ x , y ] = [%g %g ] . \ n ’ , x , y )

% −−−> I t e r a t i v n i vypocet se zastavovacim pravidlem% − vypocet odmocniny metodou tecen − f ( x)=xˆ2−a=0c l c , c l e a r a l l

a=10; % hodnota k odmocneni

xt = [ ] ; % za l o z e n i vektoru pro uk ladan i mezihodnotj =0; % za l o z en i p oc i t ad l a i t e r a c ix=a ; % pocatecn i hodnota i t e r a c it e s t =1; % pro vstup do cyklu

28

Page 29: Úvod do Matlabu - cvut.cz · metricky´ch hypot´ez, zakladn´ı u´lohy linea´rn´ı a nelinea´rn´ı regrese a analy´zu rozptylu. Kromˇe toho je tak´e vybaven funkcemi pro

whi le t e s t % cyk lus pro i t e r a c e (1000 maximalni pocet )j=j +1; % inkrement poc i t ad l axn=.5∗( x+a/x ) ; % i t e r a c e a lgor i tmuxt=[ xt x ] ; % u l o z en i mezivypoctut e s t=abs (xn−x )> .00001; % zas tavovac i p rav id lox=xn ; % nove −> s t a r ei f j >1000 % zas tavovac i p rav id lo

break % pr e r u s en i cyklu f o rend

end

j , a , x % t i s k poctu i t e r a c i , zadani a vys ledkuf i g u r e (1 ) % vyk r e s l e n i hodnot mezivypoctubar ( xt )%% Poznamka :% Prikaz i f j >1000 , break . . . h l i d a maximalni dovoleny pocet i t e r a c i .% Kdyby algor i tmus nekonvergoval , aby vypocet s k on c i l r egu la rne .

29


Recommended