|
|
1. Matlab |
|
|
|
1.1. Úvod aneb co a k čemu je MATLAB |
|
|
|
Sčítat a násobit - to zvládne každý poměrně rychle.
Trochu pomalejší je to např. s numerickým řešením různých problémů. Zde je namístě
zformulovat problém matematicky a přenechat výpočet počítačům. Je mnoho programů,
které zvládnou řešení takových úkolů, určitě znáte např. Excel. Možností výběru
vhodného výpočetního prostředí máte mnoho. Jednou z nich je MATLAB. Ten umožňuje
rychlou práci s maticemi a komplexními čísly. Získané výsledky si můžete nechat
libovolným způsobem graficky znázornit. MATLAB vám umožní zpracovávat data z
nejrůznějších oborů lidské činnosti, a to díky široké škále již hotových funkcí -
stačí jen pročíst nápovědu. (Někdy je tomu potřeba věnovat pár dlouhých zimních
večerů a autoři nápovědy přirozeně předpokládali, že umíte alespoň trošku anglicky).
Umíte-li sestavovat algoritmy, vaše pole působnosti se velmi rozšíří (stačí si jen
zvyknout na základní syntaxi příkazů a pochopit práci s maticemi). Chcete-li si např.
nakreslit graf funkce dvou proměnných anebo si ušetrit práci s počítáním integrálů,
neváhejte a začněte objevovat skrytá zákoutí MATLABu, této "matematické laboratoře".
Možná časem zjistíte, že ne všechno vyřeší MATLAB dostatečně rychle, ale naučit se
jej používat je dobrým začátkem Vaší budoucí praxe.
|
|
-dm- |
|
Základní postulát úspěšného zvládnutí Matlabu:
Matlab vychází z následující filozofie: vše je matice. Má-li jednu řádku nebo
jeden sloupec, říká se jí vektor, má-li právě jednu řádku a jeden sloupec, je
to skalár.
|
|
|
|
1.2. Režimy práce |
|
|
|
Dialogový režim |
|
|
- Je přístupný v okně command window
- Příkazy se ihned vykonávají
- Přiřazovací příkaz se přirozeně provádí pomocí rovnítka =
- Existuje proměnná ans, která je k dispozici vždy a ukládá se
do ní výsledek výpočtu v případě, že není nazván jinak
- Pokud chcete potlačit zobrazení výsledku, napište za příkaz středník
- V tomto režimu je možno Matlab používat jako více méně inteligentní
kalkulačku s funkcemi
- Argumenty funkcí se dávají vždy do kulatých závorek
- Je možno jednoduše generovat vektory či matice, řádky se oddělují
středníkem, sloupce čárkou, při výčtu prvků se používají hranaté závorky
- Operace – základní +, -, *, /, ^ (umocnění) – podrobně budou probrány
v další lekci
- Jednoduše je možno matice či vektory transponovat pomocí apostrofu
|
|
|
|
Příklad 1A.1: |
|
|
Generujte vektor a
přirozených čísel od 1 do 50 |
|
|
Řešení: |
|
|
a=1:50 |
|
|
|
Příklad 1A.2: |
|
|
Generujte vektor b,
který bude obsahovat racionální čísla od 1 do 10 s krokem 0.2 |
|
|
Řešení: |
|
|
b=1:0.2:10 |
|
|
|
Příklad 1A.3: |
|
|
Generujte matici A o
rozměrech 3x3, která bude obsahovat samé jednotky a nulovou matici
B stejných rozměrů |
|
|
Řešení: |
|
|
A=ones(3,3)
B=zeros(3,3) |
|
|
|
Příklad 1A.4: |
|
|
Generujte matici C
o rozměrech 3x3, která bude obsahovat následující prvky:
1, 2, 3
4, 5, 6
7, 8, 1
|
|
|
Řešení: |
|
|
C=[1,2,3;4,5,6;7,8,1] |
|
|
|
Příklad 1A.5: |
|
|
Transponujte matici C,
vektory a a b |
|
|
Řešení: |
|
|
C', a', b' |
|
|
|
- Použité proměnné se zachovávají v paměti,
lze je vypsat příkazem who, s jejich rozměry
pak příkazem whos
- Proměnné je možno mazat příkazem clear název_proměnné,
všechny pak příkazem clear all (uplatní se později v
programovém režimu)
|
|
|
|
Programový režim |
|
|
- Pracuje se zvláštním editorem – debuggerem
- Je možno a doporučeno používat komentáře, uvozují se znakem %
(procento). Vše za procentem do konce řádku je považováno za komentář
a ignoruje se
- Příkazy je možno oddělovat čárkou nebo středníkem
- Do programového režimu se lze dostat následujícími cestami:
a) ikona či příkaz menu Command window pro otevření nového
souboru
b) otevření již existujícího programového souboru v Matlabu
(dvojkliknutí myší – double click)
c) ikona či příkaz menu Command window pro otevření již
existujícího programového souboru v Matlabu
- Soubor je před spuštěním nutno uložit na disk a pojmenovat
(nevolte ve svém vlastním zájmu divoké názvy)
- Soubor se spouští v okně Command window zapsáním
názvu souboru
- Vyučující vás seznámí s tím, na které disky máte povoleno
své soubory ukládat
- Je vhodné nastavit si na příslušný disk cestu pomocí ikony
Path Browser
- Pro jednoduché zobrazení výsledků lze použít příkaz
plot(x,y)
|
|
|
|
Příklad 1A.6: |
|
|
V programovém režimu tabelujte
funkce sinus a kosinus pro x z intervalu
<0, 2> s krokem /20
|
|
|
Řešení: |
|
|
x=0:pi/20:2*pi;
y1=sin(x); y2=cos(x);
plot(x,y1,x,y2)
|
|
|
|
Grafický režim |
|
|
- Grafika bude podrobně probrána samostatně
- Používá se samostatné grafické okno Figure
- Příkazem figure lze otevřít nové okno
- Příkazem close lze zavřít poslední aktivní grafické okno,
vyplatí se používat na počátku programů příkaz close all
- Pro základní zobrazení se používá příkaz plot(x,y), kde
x a y jsou sloupcové vektory
- Podrobnější informace lze nalézt pomocí příkazu help plot
- CS'>Pro určení barvy zobrazovaných dat se příkaz modifikuje do tvaru
plot(x,y,'l'), kde l je zkratka barvy zobrazovaných dat
- Pro modifikaci typu čáry či volbu zobrazení pomocí značek se příkaz
modifikuje do tvaru plot(x,y,'z'), kde z je zkratka typu
čáry či značky
- Oba předchozí příkazy lze kombinovat jako plot(x,y,'lz')
- Pro přidání pomocného měřítka se použije příkaz grid
- Pro změnu rozsahu zobrazení se použije příkaz axis([xmin, xmax, ymin, ymax])
- Osy lze popsat pomocí příkazů xlabel('text'), ylabel('text')
- Celý graf lze popsat pomocí příkazu title('text')
|
|
|
|
Příklad 1A.7: |
|
|
Tabelujte a znázorněte funkce
y1 = ex, y2 = e2x, y3 = ex/2 na
intervalu <-1, 1> s krokem h=0.1
|
|
|
Řešení: |
|
|
clear all; close all
|
|
a=-1; b=1;
|
% meze intervalu
|
h=0.1;
|
% krok
|
x=a:h:b; x=x';
|
|
y1=exp(x); y2=exp(2*x); y3=exp(x/2);
|
|
plot(x,[y1 y2 y3])
|
% graficka vylepseni
|
grid
|
% mrizka
|
axis([-1 1 0 10])
|
% meritko
|
xlabel('x'), ylabel('f(x)'),
|
|
title('Exponencialni funkce')
|
|
plot(x,y1)
|
|
figure
|
% nove okno pro grafiku
|
plot(x,y2,'r.')
|
% styl zobrazeni
|
hold on
|
% drzeni okna
|
plot(x,y1,'b:')
|
% styl zobrazeni
|
|
|
|
|
Příklady pro samostatné vypracování |
|
|
Příklad 1B.1: |
|
|
Tabelujte a graficky znázorněte
funkci y=2x na intervalu <-5;5> s krokem h=0.25
|
|
|
|
Příklad 1B.2: |
|
|
Graficky znázorněte průběh funkce
y = (3sin(a)cos(a))/(sin3(a)+cos3(a))
na intervalu <0; /2>
s krokem /100
|
|
|
|
Příklad 1B.3: |
|
|
Graficky znázorněte průběh funkce
y = -cos(2a)/cos(a)
na intervalu <0; /4>
s krokem /100
|
|
|
|
Příklad 1B.4: |
|
|
Tom je pyšný, že našel o
3 valouny zlata více, než Joe. Jima mrzí, že má o 2 valouny méně,
než Sam. Fred našel tolik, kolik mají Jim a Sam dohromady.
Tom s Joem si za svých společných 24 valounů chtějí koupit vilu
na Canaria Islands. Celá parta vytěžila dohromady 44 valounů.
Kolik tedy kdo má?
|
|
|
|
Příklad 1B.5: |
|
|
Babička poslala svým třem
vnukům koš ořechů. Měli rozdělit počet ořechů v poměru věku
všech tří. Když je rozdělili, zjistili, že Karel má tolik jako
Ivan a ještě třetinu toho, co měl Vašek. Vašek měl tolik, co Karel
a ještě třetinu podílu Ivana. Ivan měl 20 ořechů a třetinu Karlova
podílu. Spočtěte:
a) kolik bylo v koši ořechů
b) kolik měl každý z chlapců
c) kolik jim bylo let
|
|
|
|
Příklad 1B.6: |
|
|
Na louce byly slepice a
krávy. Měly dohromady 100 hlav a 300 nohou. Kolik bylo kterých?
|
|
|
|
Příklad 1B.7: |
|
|
Součet věku otce a syna je 80 let.
Před osmi lety byl otec 3x starší než syn. Kolik je jim let?
|
|
|
|
Seznam použitých příkazů |
|
|
ans, who, whos, clear, plot, figure, close, grid, axis, xlabel, ylabel, title
|
|
|
|
|