Základy algoritmizace a programování

Petr Sváček
Ústav technické matematiky

Cvičení č. 2

Stručně doporučené úlohy pro 2. cvičení

MATLAB: Editor, zápis vlastního programu (skriptu). Příkaz vstupu a výstup. Cyklus. Operace s prvky vektorů/matic a operátory pro práci po složkách. Podmíněnný příkaz. Příkazy load a save


  1. Zapište příklady z předchozího cvičení jako M-skript: Otevřete M-editor a zapište sekvenci přikazů. Uložte jako soubor s příponou .m, ukládejte do aktuálního adresáře. Výsledný program/skript spusťte z příkazového řádku. Vyzkoušejte si (přečtěte si manuál), vytvořte si adresář pro cvičení z MATLAB.
        ls
        pwd
        dir
        cd
      
  2. Zápis jednoduchého programu pro výpočet hodnoty výrazu (modifikace)
    a) Otevřete editor, vytvořte nový soubor a uložte ho jako soubor s příponou .m. Zkuste jak funguje.
    b) Upravte tak, aby počítal např. obsah a obvod kruhu.
    c) Upravte tak, aby byl vyhodnocen výraz .... pro zadané x.
    d) Upravte pro výpočet objemu rotačního kužele.
    e) Upravte pro výpočet obsahu pláště daného válce.

    Uzivane prikazy:
    
    R = 2;
    h = 3;
    V = pi * R*R*h;
    
    disp('Objem valce je');
    
    disp(V);
    
    
    

  3. Prace s vektory - jsou dany vektory u,v w
    a) Vypoctete skalarni soucin zadanych sloupcovych vektoru 𝑢⃗ ,𝑣⃗ .
    b) Urcete velikost vektoru u, vektor u nahradte vektorem o stejnem smeru a jednotkove velikosti.
    c) Vektor 𝑣⃗ upravte tak, aby byl ortogonalni na vektor u, 𝑣⃗ :=𝑣⃗ −(𝑢⃗ ⋅𝑣⃗ )𝑢⃗
    d) Vysledny vektor 𝑣⃗ normalizujte aby mel stejny smer a velikost 1.
    e) Upravte vektor 𝑤⃗ tak, aby byl ortogonalni na vektory 𝑢⃗ ,𝑣⃗ .
    f) Vypočtěte tzv. tenzorový součin 𝐴=𝑢⃗ ⊗𝑣⃗.
    g) Určete hlavní diagonálu získané matice A, určete hodnost matice A.
    h) Vytvořte nulovou a jednotkovou matici 5 x 5. Vytvořte matici tvořenou samými jedničkami o stejné velikosti.
    u = [2, 1, 0, -1]';
    v = [1, 4, 0,  2]';
    w = [1, 4, 0,  2]';
    u' * v
    dot(u,v)
    B = [1,2; 3, 4]
    diag(B)
    diag([5,2,1])
    ones(3,2)
    zeros(2,3)
    eye(3,3)
    
    a = [1, 0, 2]; 
    b = [1, 1, 1];
    dot(a,b)
    cross(a,b)
    a * b'
    a' * b