Základy algoritmizace a programování

Petr Sváček
Ústav technické matematiky

Cviceni č. 3


Ulohy pro 3. tyden

MATLAB: Řešení soustav lineárních rovnic, Gaussova eliminace. Determinant, inverzní matice. Vlastní čísla a vlastní vektory matice. Příkaz plot, interpolace a spline funkce.


  1. Soustava rovnic
    a) Nalezněte řešení soustavy rovnic A x = b.
    b) Zjistěte reziduum, tj. r = b - A x a jeho velikost (norm).
    c) Zjistěte inverzní matici k dané matici A. Užijte ji k řešení dané soustavy.
    d) Spočtěte determinant matice A.
    e) Určete vlastní čísla a vlastní vektory matice A.
    f) Postup matice opakujte pro matice AA a AAA. Vektor b volte jako vektor samých jedniček.

    Uzivane prikazy:
    
    A = [ 4   -1  -2  0; -1 5 -1 0; -1 -1 3 -1; 0 -1 -1 2]
    
    b = [ 4 ; -1 ; -1 ; 0];
    
    Matice AA, AAA:
    
    AA = [1/1.   1/2.   1/3.   1/4.; 1/2. 1/3. 1/4. 1/5.;  1/3.   1/4.   1/5.   1/6.;  1/4.   1/5.   1/6.   1/7.];
    
    AAA = hilb(7);
    

  2. Vlastní čísla a vektory matic, geometrická interpretace.
    a) Nalezněte řešení soustavy rovnic A x = b.
    b) Určete všechna lambda, která řeší rovnici A x= lambda E x, kde E je jednotková matice.
    c) Určete vlastní čísla a vlastní vektory matice A.
    d) Zvolte 3 nejmenší a největší vlastní čísla a příslušné vektory znázorněte graficky (tj. na ose y jsou složky vektoru a na ose x index).

    Uzivane prikazy:
    n = 11; 
    A = 2 * diag(ones(n,1)) - diag(ones(n-1,1),1) - diag(ones(n-1,1),-1);
    b = zeros(n,1);
    b(5) = 1;
    

  3. Interpolace po částech lomenou čarou a spline funkce (interp1, spline).
    a) Je daná tabulka hodnot x, y. Vypočtěte přibližně hodnoty funkce v bodech xx pomocí interpolace (interp1)
    b) Je daná tabulka hodnot x, y. Vypočtěte přibližně hodnoty funkce v bodech xx pomocí spline fce (spline)
    c) Graficky (plot) znázorněte hodnoty x,y a také hodnoty interpolace z a), b).
    d) Spočtěte rozdíl hodnot z a,b a graficky tento rozdíl znázorněte.

    Uzivane prikazy:
    x = [ -2  -1   0   1      2];
    y = [  1  0.5  0   -0.6  -2];
    
    xx = -2:0.005:2;