Výpočetní technika II - Algoritmizace v systému MATLAB Aktualizace: 14. prosince 2000


Navigační menu
  Vysvětlivky
  Obsah
  Kapitola 1: Matlab
       Kapitola 1.1: Úvod
       Kapitola 1.2: Režimy práce
  Kapitola 2: Skaláry, vektory, matice
       Kapitola 2.1: Operace
       Kapitola 2.2: Funkce
       Kapitola 2.3: Submatice
  Kapitola 3: Vytváření funkcí
  Kapitola 4: Větvení a rozhodování
  Kapitola 5: While cyklus
  Kapitola 6: For cyklus
  Kapitola 7: Objekty a 2-D grafika
  Kapitola 8: 3-D grafika
  Kapitola 9: Datové soubory
       Kapitola 9.1: Ukládání do souboru
       Kapitola 9.2: Načtení ze souboru
       Kapitola 9.3: Import dat z Excelu
  Kapitola 10: Symbolická matematika
  Kapitola 11: Řešení rovnice f(x)=0
  Kapitola 12: Soustavy lineárních rovnic
  Kapitola 13: Minimum funkce f(x)
  2. Operace a funkce skalárů, vektorů a matic  

  2.1. Operátory  

 
  • Aritmetické –
    a) maticové: + (sčítání), - (odčítání), * (násobení), / (dělení – to není chyba, matematicky je maticové dělení násobení inverzní maticí), ^ (umocnění), ' (transpozice)
    b) vektorové – provádí se po jednotlivých elementech, v zápisu se před operátor napíše tečka: .* (násobení), ./ (dělení), .^ (umocnění)
  • Relační: >, >=, <, <=, == (je rovno), ~= (není rovno) – výsledkem je buď nepravda (nula), nebo pravda (jednička)
  • Logické: & (and, a), | (or, nebo), ~ (not, negace)
 
 
  Příklad 2A.1:  
  Generujte matici A=[1,2,3;4,5,6;7,8,1] a vektor v=[1,2,3]. Spočtěte: v*A, A', v*A', v', A*v', A/v, v/A. Pomocí logického operátoru určete v matici A prvky větší než 5.  
  Řešení:  
        A=[1,2,3;4,5,6;7,8,1]; v=[1,2,3];
      v*A, A', v*A', v', A*v', A/v, v/A
      A>5
 

  2.2. Funkce  

 
  • Jako operátory, i funkce se dělí do kategorií:
    a) skalární – aplikují se na každý prvek matice, běžné funkce typu sin(x), ex,… Přehled pomocí nápovědy help elfun
    b) vektorové – aplikují se na každý sloupec matice, převážně statistické funkce typu suma (sum), minimum (min), maximum (max), směrodatná odchylka (std), průměr (mean), medián… Přehled pomocí nápovědy help stats
    c) maticové – aplikují se na celou matici, funkce typu determinant (det), inverse (inv)… Přehled pomocí nápovědy help matfun, elmat
 
 
  Příklad 2A.2:  
  Spočtěte determinant matice A z předchozího příkladu, je-li možno tak inverzní matici A, sumu jednotlivých řádků, sumu jednotlivých sloupců, určete minimální a maximální prvek matice a součet všech prvků matice.  
  Řešení:  
 
det(A), inv(A)  
sum(A) % sloupce
sum(A') % radky
min(min(A)), max(max(A)), sum(sum(A))  
 

  Příklad 2A.3:  
  Řešte soustavu rovnice:  
             x1+2x2+3x3=6
           4x1+5x2+6x3=15
           7x1+8x2+x3=16
 
  Řešení:  
 
A=[1,2,3;4,5,6;7,8,1]; b=[6;15;16]  
det(A) % pokud je 0, nema reseni
x=inv(A)*b  
 

  2.3. Submatice  

 
  • Z každé matice lze separovat její různé submatice a naopak lze i různé matice skládat jako jednotlivé submatice do nějaké jiné větší
  • Submatice se získá pomocí zápisu A(od:do,od:do), kde od značí číslo řádku (sloupce), odkud se začíná submatice vytvářet, do číslo řádku (sloupce), kde se bude končit
  • Pokud se použije místo rozsahu od:do pouhá dvojtečka (:), znamená to, že do výběru spadají všechny řádky (sloupce) matice
  • Sdružované submatice zapisujeme do hranatých závorek, např. A=[A1, A2] nebo A=[A1; A2]
 

  Příklad 2A.4:  
  Z matice A vyberte submatici A1, která bude obsahovat 1. řádek a první dva sloupce.  
  Řešení:  
        A1=A(1,1:2)  

  Příklad 2A.5:  
  Pomocí determinantů řešte soustavu rovnic:  
             x1+2x2+3x3=6
           4x1+5x2+6x3=15
           7x1+8x2+x3=16
 
  Řešení:  
 
A=[1,2,3;4,5,6;7,8,1]; b=[6;15;16]  
D=det(A) % pokud je 0, nema reseni
A1=[b,A(:,2:3)]; A2=[A(:,1),b,A(:,3)]; A3=[A(:,1:2),b];
x1=det(A1)/D, x2=det(A2)/D, x3=det(A3)/D
% získám samostatne x1, x2, x3
 

  Příklady pro samostatné vypracování  
  Příklad 2B.1:  
  Pro matici A=[1 1.1 1.2; 1.5 1.7 1.9; 2.1 2.4 2.7] určete průměry jednotlivých řádků, minimum a maximum celé matice, determinant matice, inverzní matici.  

  Příklad 2B.2:  
  Řešte soustavu rovnic:  
             3x1-5x2+47x3+20x4=18
           11x1+16x2+17x3+10x4=26
           56x1+22x2+11x3-18x4=34
           17x1+66x2-12x3+7x4=82
 

  Příklad 2B.3:  
  Pomocí determinantů řešte soustavu rovnic  
             5x1+8x2+5x3+2x4+5x5+5x6=0
           3x1+2x2+4x3+8x4+3x5+10x6=-10
           x1-x2+x3-2x4+x5-4x6=10
           4x1-4x2+2x3-2x4+8x5+10x6=10
           5x1+x2-x3+x4-x5=1
           2x1-2x2+4x3+x4+3x5-11x6=22
 

  Příklad 2B.4:  
  Pro data: 1, 1.1, 1.11, 0.98, 1.35, 0.8, 1.25, 1.1, 1.1, 1.2, 0.9 spočtěte průměr a směrodatnou odchylku, určete minimum a maximum.  

  Příklad 2B.5:  
  Z příkladu 2B.3 určete submatici, která bude obsahovat druhý až čtvrtý řádek a první, pátý a šestý sloupec.  

  Seznam použitých příkazů  
  sin, sinh, asin (inverse sin), asinh (hyperbolický sin),cos, cosh, acos, acosh,tan, tanh, atan, atan2, atanh, cot (kotangens), coth, acot, acoth
exp, log (přirozený), log10, log2
sqrt, abs, imag, real, round, mod, sign
maticové:det, inv, expm, logm, sqrtm
statistika:cov, mean, var, std, sum
 



© 2000 by Darina Bártová, Jaromír Kukal, Martin Pánek

Testováno v prohlížečích MSIE 5.x a NN 4.x při rozlišení 1024x768x256