155GIT1 / 2. cvičení: Porovnání verzí

Z GeoWikiCZ
mBez shrnutí editace
(Není zobrazeno 43 mezilehlých verzí od jednoho dalšího uživatele.)
Řádek 1: Řádek 1:
{{Geoinformatika}}
{{Geoinformatika}}
{{Cvičení|155GIT1|2|Maticové a matematické funkce, speciální proměnné, operátory, skripty}}
{{Cvičení|155GIT1|2|Matlab - Maticové a matematické funkce, speciální proměnné, operátory}}


== Náplň cvičení ==
== Náplň cvičení ==


# opakování
# opakování
#* založit skript
#* vytvoření a spuštění skriptů {{bullet}} <code>edit</code>, <code>run</code>
#* vytvořit proměnnou A o rozměrech [3x4] s náhodnými čísly od 0 do 9
#* vytvořit proměnnou A o rozměrech [3x4] s náhodnými čísly od 0 do 9
#* vybrat třetí element z druhého řádku a vynásobit ho dvěma
#* vybrat třetí element z druhého řádku a vynásobit ho dvěma
# operátor dvojtečka
# speciální matice {{bullet}} <code>ones()</code>, <code>zeros()</code>, <code>eye()</code>, <code>rand()</code>
#* submatice
#* magický čtverec {{bullet}} <code>magic()</code>
# rozšiřování hranic matice
# maticové funkce {{bullet}} <code>diag()</code>, <code>det()</code>, <code>inv()</code>, <code>find()</code>
# operace s maticemi
#* náhodné přirozené číslo {{bullet}} <code>randi()</code>
#* sčítání
#* násobení, dělení
#* transponování s komplexně sdruženými hodnotami, bez komplexně sdružených hodnot
#* spojování
#* odstraňování, magický čtverec
# speciální funkce, ukázky
# relační a logické operátory
# relační a logické operátory
# základní matematické funkce
# základní matematické funkce
#* v matici - prvek po prvku {{bullet}} <code>abs()</code>, <code>sign()</code> {{bullet}} <code>exp()</code>, <code>log()</code> {{bullet}} goniometrické {{bullet}} zaokrouhlovací
#* v matici - sloupcové {{bullet}} <code>min()</code>, <code>max()</code> {{bullet}} <code>sum()</code>, <code>prod()</code> {{bullet}} <code>sort()</code> {{bullet}} <code>mean()</code>, <code>median()</code> {{bullet}} <code>std()</code>, <code>var()</code>
#* <code>atan2(Y,X)</code>


== Ukázky ==
== Ukázky ==


=== Operátor dvojtečka ===
=== Maticové funkce a relační operátory ===


''(výčet, rozsah)''
* [http://geo.fsv.cvut.cz/vyuka/155git1/matlab/matlab.pdf#page=25 maticové funkce]
* [http://geo.fsv.cvut.cz/vyuka/155git1/matlab/matlab.pdf#page=26 relační a logické operátory]
 
''(ukázky použití maticových funkcí)''


<source lang=octave>
<source lang=octave>
%
d = rand(1,4)
i = -3
D = diag(d)
j = 3
i:j
%
I = 2
J = -2
I:J
J:I
%
a = 0
b = 10
c = 0.5
a:c:b
</source>
</source>
''(submatice)''


<source lang=octave>
<source lang=octave>
A = [ 2, 3, 4, 5 ; 6, 8, 9, 1; 3, 4, 6, 7; 3, 4, 7, 8 ]
E = -2 + 4*rand(4,3)  % náhodné hodnoty v rozsahu od -2 do 2
A(1:3,2:3)
e = diag(E)
A(2:3,3)
e1 = diag(E,1)
A(:,2)
e2 = diag(E,-1)
A(end,1:2)
A(:,end)
%
A(6,5)
A(6,5) = 10 % !!!
</source>
</source>
=== Maticové operace ===
''(sčítání)''


<source lang=octave>
<source lang=octave>
% skalární hodnota
F = -1 + 3*rand(4)
A + 10
Fi = inv(F)          % pouze pro čtvercovou matici
% matice stejného rozměru
F * Fi
a = [1, 2; 3, 4], b = [5, 6; 7, 8]
a + b
A + b % nelze
</source>
</source>
''(násobení)'' {{bullet}} {{wikipedia|Násobení matic|Wikipedia}}


<source lang=octave>
<source lang=octave>
% skalární hodnota
F>=0
A * 10
find(F>=0)
% (m, n) x (n, p)
F( find(F>=0) )
a * b
F( find(F>=0) ) = 2
A * b % nelze
</source>
</source>


''(operace po prvcích)''
=== Matematické funkce ===


<source lang=octave>
* [http://geo.fsv.cvut.cz/vyuka/155git1/matlab/matlab.pdf#page=27 matematické funkce]
% násobení prvků se stejnými indexy
a .* b
% další operace
a ./ b
a .^ 2
a .^ b
</source>


''(transponovaná matice)'' {{bullet}} {{wikipedia|Transpozice matice|Wikipedia}} {{bullet}} {{wikipedia|Komplexně sdružené číslo}}
''(ukázky použití matematických funkcí)''


<source lang=octave>
<source lang=octave>
B = [ 0, 1 + 5i; 10 + 3i, -1 ]
abs(E)
B'
sign(E)
B.'
</source>


''(spojení matic)''
round(E)
ceil(E)  % zaokrouhluje k plus nekonečnu
floor(E)  % zaokrouhluje k minus nekonečnu
fix(E)    % celá část čísla


<source lang=octave>
max(E)
% horizontálně
maxE = max(max(E))
[a, b]
% vertikálně
[a; b]
% rozměr se musí shodovat
c = [ 10, 12 ; 15 13; 18 19 ]
[a, c] % nelze
[a; c]
</source>


''(odstranění řádku/sloupce)''
Erad = sum(E')
minErad = min(Erad)
ind = find(Erad == minErad) % index řádku s nejmenším řádkovým součtem
E(ind,:)                   % řádek s nejmenším řádkovým součtem


<source lang=octave>
sort(E)
A(5,:) = []
sort(E,2)
A(end,:) = []
sort(E,2,'descend')
A(:, [3, 5]) = []
</source>
</source>
=== Maticové funkce, operátory ===
* [http://geo.fsv.cvut.cz/user/gin/git1/matlab/matlab.pdf#24 funkce]
* [http://geo.fsv.cvut.cz/user/gin/git1/matlab/matlab.pdf#25 operátory]
=== Matematické funkce ===
* [http://geo.fsv.cvut.cz/user/gin/git1/matlab/matlab.pdf#26 funkce]


== Úlohy ==
== Úlohy ==


; Řešení soustavy lineárních rovnic
* [[155GIT1 / 2. cvičení / Příklady|2. cvičení - příklady]]
<math>
x = inv(A) * b
\begin{cases}
17x_1 + 24x_2 +  x_3 +  8x_4 + 15x_5 = 175 \\
23x_1 +  5x_2 +  7x_3 + 14x_4 + 16x_5 = 190 \\
  4x_1 +  6x_2 + 13x_3 + 20x_4 + 22x_5 = 245 \\
10x_1 + 12x_2 + 19x_3 + 21x_4 +  3x_5 = 190 \\
11x_1 + 18x_2 + 25x_3 +  2x_4 +  9x_5 = 175 \\
\end{cases}
</math>
 
; Další úlohy
 
* http://peso.fsv.cvut.cz/vyuka/git1/2.html

Verze z 24. 2. 2021, 08:44

Matlab - Maticové a matematické funkce, speciální proměnné, operátory

Náplň cvičení

  1. opakování
    • vytvoření a spuštění skriptů • edit, run
    • vytvořit proměnnou A o rozměrech [3x4] s náhodnými čísly od 0 do 9
    • vybrat třetí element z druhého řádku a vynásobit ho dvěma
  2. speciální matice • ones(), zeros(), eye(), rand()
    • magický čtverec • magic()
  3. maticové funkce • diag(), det(), inv(), find()
    • náhodné přirozené číslo • randi()
  4. relační a logické operátory
  5. základní matematické funkce
    • v matici - prvek po prvku • abs(), sign()exp(), log() • goniometrické • zaokrouhlovací
    • v matici - sloupcové • min(), max()sum(), prod()sort()mean(), median()std(), var()
    • atan2(Y,X)

Ukázky

Maticové funkce a relační operátory

(ukázky použití maticových funkcí)

 d = rand(1,4)
 D = diag(d)
 E = -2 + 4*rand(4,3)  % náhodné hodnoty v rozsahu od -2 do 2
 e = diag(E)
 e1 = diag(E,1)
 e2 = diag(E,-1)
 F = -1 + 3*rand(4)
 Fi = inv(F)          % pouze pro čtvercovou matici
 F * Fi
 F>=0
 find(F>=0)
 F( find(F>=0) )
 F( find(F>=0) ) = 2

Matematické funkce

(ukázky použití matematických funkcí)

 abs(E)
 sign(E)

 round(E)
 ceil(E)   % zaokrouhluje k plus nekonečnu
 floor(E)  % zaokrouhluje k minus nekonečnu
 fix(E)    % celá část čísla

 max(E)
 maxE = max(max(E))

 Erad = sum(E')
 minErad = min(Erad)
 ind = find(Erad == minErad) % index řádku s nejmenším řádkovým součtem
 E(ind,:)                    % řádek s nejmenším řádkovým součtem

 sort(E)
 sort(E,2)
 sort(E,2,'descend')

Úlohy