+ All Categories
Home > Documents > Matice a maticovárních rovnic, kořeny polynomu a soustava...

Matice a maticovárních rovnic, kořeny polynomu a soustava...

Date post: 29-Jun-2019
Category:
Upload: hahuong
View: 213 times
Download: 0 times
Share this document with a friend
19
 Matice a maticová algebra, soustavy lineárních Matice a maticová algebra, soustavy lineárních rovnic, kořeny polynomu a soustava nelin.rovnic rovnic, kořeny polynomu a soustava nelin.rovnic Úvod do programování v prostředích Octave, Scilab a Matlab co byste měli umět po dnešní lekci:  definovat matici, přistupovat k jejím prvkům  provádět základní algebraické operace  spočíst inverzní matici  najít řešení soustavy lineárních rovnic  určit vlastní čísla a vektory matice  najít řešení soustavy nelineárních rovnic
Transcript
Page 1: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

co byste měli umět po dnešní lekci:

● definovat matici, přistupovat k jejím prvkům ● provádět základní algebraické operace● spočíst inverzní matici ● najít řešení soustavy lineárních rovnic● určit vlastní čísla a vektory matice● najít řešení soustavy nelineárních rovnic

Page 2: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

matice v Octave/Matlabu:

A=[1 2; 3 4]

A =

   1   2   3   4

prvky v řádku matice se oddělují mezerou nebo čárkou, jednotlivé řádky středníkem

přístup k jednotlivým prvků matice: A(řádek, sloupec)

A(1,1) = 1   A(1,2) = 2A(2,1) = 3   A(2,2) = 4

Page 3: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

základní operace s maticemi:

sčítání: A+B

octave:1> A=[1 2; 3 4];octave:2> B=[1 0; 0 1];octave:3> A+Bans =

   2   2   3   5

octave:4>

odčítání: A­B

octave:4> A­Bans =

   0   2   3   3

octave:5>

násobení: A*B

octave:5> A*Bans =

   1   2   3   4

octave:6> A.*Bans =

   1   0   0   4

Page 4: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

matematické funkce a matice:

všechny matematické funkce působí na každý prvek matice zvlášť:

speciální maticové funkce: expm, sqrtm,...                    pouze pro čtvercové matice

Page 5: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

řešení soustavy rovnic Gaussovou eliminací:

Ax=b ⇒ x=A\b    nebo      x=A­1*b

“obrácené” lomítko octave:6> x=A\b                                      octave:7> x=inv(A)*b           x =                                                             x =

   8                                                                8  ­2                                                               ­2

Page 6: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

užitečné funkce:B=zeros(m,n)   vytvoří matici m x n s nulovými prvky  octave:8> B=zeros(3,2)

B =

   0   0   0   0   0   0

B=ones(m,n)   vytvoří matici m x n s jednotkovými prvky octave:9> B=ones(3,2)B =

   1   1   1   1   1   1

B=eye(m,n)   vytvoří matici m x n s jedn.prvky  na diagonále, ostatní 0 – jednotkové matice

B=eye(3,3)                   B = 1   0   0                                           0   1   0                                           0   0   1

   

Page 7: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

užitečné funkce:

transponovaná matice          transA=A';determinant matice              detA=det(A);

inverzní matice                     invA=inv(A);stopa matice                         trA=trace(A);

Úkol: Vyřešte následující soustavu rovnic (tři závaží za sebou na stejných pružinách):

m1= 2 kg, m2= 3 kg, m3= 2.5 kg, k=10 N/m, g je gravitační zrychlení

vektor diag.prvků                diagA=diag(A);součet prvků n­tého ř.     nradek=sum(A(n,:))násobení n­tého řádku     sloupcovým vektorem      A(n,:)*xsubmatice                        subA=A(r1:rn,s1:sn);

Page 8: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

LU dekompozice: další metoda řešení soustav rovnic  Ax=b

U a L jsou takové  matice, že platí: Ux=d                                                        L(Ux­d)=Ax­b

LU=ALd=b

Octave/Matlab: funkce lu             [L,U]=lu(A)

Page 9: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

Př: Řešte soustavu Ax=b pomocí LU dekompozice

octave:82> [L,U]=lu(A)L =

   0.14286   0.32836   1.00000   0.57143   1.00000   0.00000   1.00000   0.00000   0.00000

U =

   7.00000  ­8.00000   9.00000   0.00000   9.57143   0.85714   0.00000   0.00000   1.43284

octave:83>

octave:83> d=L\bd =

   5.0000  ­5.8571   9.2090

octave:84> x=U\dx =

  ­8.9062  ­1.1875   6.4271

Page 10: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

výpočet inverzní matice pomocí LU dekompozice:

Ax=b

je­li b “jednotkový vektor”, jsou řešení x sloupcem inverzní matice A

Page 11: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

Podmíněnost matice:

norma vektoru norma matice

hodnota čísla Cond[A] udává tzv. podmíněnost matice (Cond ≥ 1)

čím je hůře podmíněná matice A, tímjsou chyby řešení většíCond[A]=10c, koef A jsou známy na t­­desetinných míst, pak řešení jsou přesnájen na (t­c) míst

funkce norm(X,p) a cond(X,p) – podívejte se do helpu co dělají

Page 12: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

známé špatně podmíněné matice:

Hilbertova                                                                Vandermonde

A=hilb(n); c=[x1 x2 x3];A=vander(c);

Page 13: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

Iterativní metoda řešení soustavy lineárních rovnic (Gauss­Seidel)

Ax=b, kde A je matice jejíž diagonální členy jsou nenulové.

postačující podmínka konvergence

relaxace (urychlující konvergenci)(zkuste různě podmíněné matice)

Úkol: Napište skript (funkci), která bude řešit soustavu rovnic Gauss­Seidelovou metodou

Page 14: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

kořeny polynomu

funkce na hledání jednoho kořene (viz minule) neefektivní

kořeny polynomu = vlastní čísla A

x=eig(A);[v,x]=eig(A);  % i v.vektory

x=roots([a1 a2 ...]);  % koreny

a=poly([x1 x2 ...]); % koef.polyn.

Page 15: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

Soustava nelineárních rovnic (Newton­Raphson):

pro 1 rovnici pro soustavu 2 rovnic

prvky Jacobiánu

Page 16: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

Soustava nelineárních rovnic (Newton­Raphson):

kromě matice koef. soustavy rovnic potřebujeme ještě matici derivací, Jacobián

obecně: [Jac]*xi+1=­f+[Jac]*xi, kde [Jac] je matice Jacobiánu, xi+1 je vektor nových iterací,                                               f je vektor hodnot funkcí (rovnic f(x1, x2,...)=0) a xi je vektor                                               původních iterací

Jacobián =

Page 17: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

Soustava nelineárních rovnic (Newton­Raphson):

Příklad: Řešme soustavu

Napište funkci, která bude tuto soustavu řešit pomocí Newton­Raphsonovy metody. Výsledek porovnejte s výsledkem funkce fsolve (Octave) nebo fzero (Matlab).

fsolve('f',[1 1])

nějaká funkce f v souboru f.m

Page 18: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

e1=7V, e2=10VR1=100 , R2=200 , R3 = 200 

1. Určete proudy v jednotlivých větvích2. Určete napětí UAB mezi uzly A a B

Úkol:

Úkol: Rozdělení teploty úzkého pásku

2m

T0=40 T5=200

x=0 x=10

Ta=10

Ta=10

h' je koef. přenosu tepla, h'=0.05, ∆x=2m

Page 19: Matice a maticovárních rovnic, kořeny polynomu a soustava …kfes-16.karlov.mff.cuni.cz/~standa/matlab/matlab4.pdf · jeli b “jednotkový vektor”, jsou řešení x sloupcem

   

Matice a maticová algebra, soustavy lineárníchMatice a maticová algebra, soustavy lineárníchrovnic, kořeny polynomu a soustava nelin.rovnicrovnic, kořeny polynomu a soustava nelin.rovnic

Úvod do programování v prostředích Octave, Scilab a Matlab

Úkol: Rozdělení teploty úzkého pásku

2m

T0=40 T5=200

x=0 x=10

Ta=10

Ta=10


Recommended