• Nebyly nalezeny žádné výsledky

Výukové materiály

N/A
N/A
Protected

Academic year: 2022

Podíl "Výukové materiály"

Copied!
30
0
0

Načítání.... (zobrazit plný text nyní)

Fulltext

(1)

www.vsb.cz

(2)

Informace o předmětu, úvod do Matlabu

Michal Merta

VŠB – Technická univerzita Ostrava michal.merta@vsb.cz

10. února 2022

(3)

1 Základní informace

2 Základy Matlabu

(4)

Kontakt

Kontakt

Michal Merta

michal.merta@vsb.cz

https://homel.vsb.cz/~mer126/

budova FEI, kancelář EA545 Výuka

Čtvrtek 16:00 (přednáška), 17:15 (cvičení) EB413

Konzultace osobně nebo přes MS Teams po předchozí domluvě e-mailem

Zápočty jsou automaticky uznané, o zrušení nutno požádat během prvních 14 dnů semestru

(5)

Základní informace

Předběžný průběh semestru

Informace o předmětu, úvod do Matlabu

Opakování pojmů z lineární algebry, řízení toku programu Systémy ukládání řídkých matic, grafika v Matlabu Řešení soustav lineárních rovnic, motivace, LU rozklad Pivotizace v LU rozkladu, LDMT, LDLT Choleského rozklad Lineární a gradientní iterační řešiče

QR rozklad

Vlastní čísla a spektrální rozklad Singulární rozklad a jeho aplikace Prezentace projektů

(6)

Výukové materiály

Přednášky, poznámky, cvičení, DÚ:

https://homel.vsb.cz/~mer126/teaching.html Záznamy přednášek, řešených příkladů ze cvičení tamtéž

Kozubek, T. et al.Lineární algebra s Matlabem. VŠB-TU Ostrava 2012.

http://mi21.vsb.cz/sites/mi21.vsb.cz/files/unit/

linearni_algebra_s_matlabem.pdf

Golub, G., van Loan, C. F.Matrix Computations. The John Hopkins University Press 1996.

Trefethen, L. N., Bau, D.Numerical Linear Algebra. SIAM 1997.

Online dokumentace k Matlabu

https://www.mathworks.com/help/matlab/

https://stackoverflow.com/questions/tagged/matlab

(7)

Základní informace

Podmínky absolvování

Test (0 – 10 bodů)

Teoretická a praktická část Projekt (0 – 20 bodů)

Miniprojekty (DÚ) – 5×2 body

Zaslat na e-mail vždy nejpozději do čtvrtka 16:00 následujícího týdne Projekt (0 – 10 bodů)

Obsáhlejší projekt, téma bude upřesněno v druhé polovině semestru

Zkouška (0 – 70 bodů)

Pro udělení zápočtu je třeba získat alespoň 15 bodů Celkem minimálně 51 bodů

(8)

MathWorks Matlab

MATrix LABoratory

Prostředí pro numerické výpočty Jazyk pro numerické výpočty, vývoj algoritmů, analýzu a vizualizaci dat IDE pro interkativní zadávání příkazů a vývoj

Knihovna funkcí pro základní a

pokročilou matematiku, import a export dat, datovou analýzu, vizualizaci, atd.

Velké množství toolboxů První verze z roku 1984

(9)

Základy Matlabu

MathWorks Matlab

Obsahuje externí řešiče optimalizované pro danou architekturu (např. BLAS - Basic Linear Algebra Subroutines)

Interface k C/C++, Java, .NET, Python, SQL, MS Excel, atd.

Nástroje k vytváření grafického uživatelského rozhraní

Rozsáhlá dokumentace https:

//www.mathworks.com/help/matlab/

(10)

Přehled nejdůležitějších toolboxů

Toolboxy rozšiřují funkcionalitu Matlabu https://www.mathworks.com/products.html Parallel Computing Toolbox

Pro paralelní výpočty na vícejádrových procesorech, grafických kartách a clusterech

Symbolic Math Toolbox

Pro analytické výpočty (derivace, integrály, zjednodušování výrazů, řešení rovnic, atd.) Alternativa např. Wolfram Mathematica, Maple Optimization Toolbox

Řešení optimalizačních problémů

Minimalizace nebo maximalizace objektivní funkce při splnění určitých podmínek

Např. optimalizace tvaru součástky, portfolia, atd.

(11)

Základy Matlabu

Přehled nejdůležitějších toolboxů

Partial Differential Equation Toolbox

Řešení parciálních diferenciálních rovnic pomocí metody konečných prvků

Výpočet šíření tepla nebo zvuku, deformací, atd.

Image Processing Toolbox

Segmentace obrazu, redukce šumu, atd.

Statistics and Machine Learning Toolbox Deep Learning Toolbox

Computer Vision Toolbox Automatic Driving Toolboxy atd.

(12)

Instalace

Pro studenty a zaměstnance je dostupná školní licence

https://install.vsb.cz/Média pro zaměstnance a studentyMatlab Požadováno přihlášení (pomocí LDAP hesla – stejné jako na školní e-mail)

Nutno požádat o instalační klíč a licenční soubor přes HelpDesk ve frontě SW a licence (https://idesk.vsb.cz/)

Uveďte, že žádáte o MATLAB ClassKit (licence pro výuku) pro předmět Numerická lineární algebra, první ročník

Vizhttps://idoc.vsb.cz/xwiki/bin/view/pc/sw/sw-zdarma/

Při používání je třeba být ve školní síti Fyzicky nebo přes VPN

Návod k instalaci:https://idoc.vsb.cz/xwiki/bin/view/tuonet/vpn/

(13)

Základy Matlabu

Alternativy

GNU Octave Freemat Scilab Python

V kombinaci s balíčky numpy, scipy, pandas, matplotlib

Jupyter Notebook R

Julia

(14)

Uživatelské rozhraní

Current Folder

Obsah aktuálního adresáře Umožňuje základní souborové operace Umožňuje přidat adresář doPATH

Command Window Umožňuje interkativní zadávání příkazů, volání vlastních skriptů a funkcí Workspace

Přehled proměnných Command History

Umožňuje listovat příkazy a znovu je provést

(15)

Základy Matlabu

Některé užitečné příkazy

help <nazev funkce>

Vypíše stručnou nápovědu k dané funkci doc <nazev funkce>

Zobrazí stránku s dokumentací dané funkce

help elfun

Zobrazí seznam elementárních matematických funkcí

ans

Proměnná s posledním výsledkem clc

Vyčistí Command Window clear

format

Ovlivňuje, s jakou přesností jsou proměnné vypisovány

format long pi = 3.141592653589793

format shortpi = 3.1415 format long pi = 3.14 tic, toc

Slouží k měření času Znak% uvozuje komentář

Zastavení výpočtu: Ctrl+C, Ctrl+Break, Cmd+. (Mac)

(16)

Konstanty

pi– Ludolfovo číslo i, j– imaginární jednotka

eps – relativní přesnost reálných čísel

realmin – nejmenší podporované kladné reálné číslo realmax – největší podporované reálné kladné číslo Inf – nekonečno, např. výsledek operace1/0

NaN – nedefinovaná hodnota, např. výsledek operace0/0

(17)

Základy Matlabu

Matice, vektory, skaláry

Matlab je slabě typový jazyk - nedeklaruje typ proměnné

Interně jsou numerické hodnoty defaultně ukládány jakodouble Základní datový typ je matice

Matici zapisujeme do hranatých závorek, prvky na řádku oddělujeme mezerou nebo čárkou, řádky oddělujeme středníkem

Např. matici

 1 2 3 4 5 6

zadáme do Matlabu těmito způsoby

A = [1 2; 3 4; 5 6]

A = [1, 2; 3, 4; 5, 6]

A = [1 2 3 4

(18)

Matice, vektory, skaláry

Vektor je matice o rozměrechn×1 nebo1×n:

sloupcovyV = [1; 2; 3],radkovyV = [1, 2, 3]

Skalár je matice o rozměrech 1×1:

scalar = [1]neboscalar = 1

(19)

Základy Matlabu

Základní operace

Podobně jako v jiných jazycích:+, -, *, /, ^ Operátory pracují se skaláry i maticemi

[1, 2; 3, 4] * [5, 6; 7, 8]- násobení matice-matice [1, 2] * [3; 4]- skalární součin vektorů

[1, 2; 3, 4]^2- mocnina matice atd.

Operace po prvcích

Symbol tečky před operátorem

[1, 2; 3, 4] .* [5, 6; 7, 8][5, 12; 21, 32]

Transpozice pomoci apostrofu:A'

V případě komplexní matice se jedná o hermitovskou transpozici (transpozice + komplexní konjugace). Klasickou transpozici vynutíme tečkou před apostrofem.

(20)

Základní operace

Operátory porovnání a logické operátory

==, ˜ =, <, <=, >, >=

|(nebo)

&(a současně)

˜

Lze porovnávat dvě matice se stejnými rozměry nebo matici a skalár

(21)

Základy Matlabu

Operátor zpětného lomítka

K řešení soustav lineárních rovnic Ax=b slouží operátor zpětného lomítka \

x = A\b

Přibližně odpovídá násobení inverzní maticí zlevax = inv(A)*b Obsahuje interface na externí optimalizované knihovny (např.

UMFPACK)

Vyvarujte se použití explicitní inverze inv(A)

Numericky nestabilní

Časově a paměťově náročnější (zejména pro matice obsahující hodně nulových prvků)

(22)

Generování matic

zeros(m, n)– matice nul o rozměřech m×n ones(m, n)– matice jedniček o rozměřech m×n eye(m, n) – jednotková matice rozměřechm×n

rand(m, n)– matice náhodných čísel o rozměřechm×n magic(m, n)– magický čtverec o rozměřech m×m diag(v) – diagonální matice s vektoremv na diagonále

(23)

Základy Matlabu

Dvojtečkový operátor

Generuje vektor po sobě jdoucích čísel

(24)

Manipulace s maticí

Velikost: size(A)

Délka vektoru:length(v) Výběr prvků z matice

Matlab indexuje od jedničky Ai,jA(i,j)

Lze vybrat více prvků najednou (submatici)

např.A([1 2], 2), A(3, :), A(:, 2:2:10), A(2:end, 2:4) diag(A)– vybere diagonálu

sum(A)– vrací vektor se součty přes každý sloupec matice Mazání sloupců, řádků:A(:, 1) = [], A(1, :) = []

Slučování (konkatanace): C = [A, A+10]

(25)

Základy Matlabu

Manipulace s maticí

(26)

Skripty a funkce

Soubory s příponou.m

Umožňují spusti posloupnost příkazů Skript

Nepřijímá vstupní argumenty a nemá výstupní argumenty Pracuje s proměnnými v pracovním prostoru (workspace) Funkce

Přijímá vstupní argumenty a může vracet výstupní argumenty Matlab je interpretovaný jazyk

Při prvním volání funkce se m-soubor s její definicí přeloží do pseudokódu, který se uloží do paměti a zůstává tam po celou dobu běhu aplikace.

Run-time interpreter poté vykoná funkci podle pseudokódu

Pseudokód lze uložit do souboru s příponou.ppomocí příkazupcode (není třeba publikovat zdrojové m-soubory, ale jen nečitelné p-soubory)

(27)

Základy Matlabu

Základní struktura funkce

function [vystup1, vystup2] = nazevFunkce(vstup1, vstup2)

%NAZEVFUNKCE strucny popis (H1)

% Podrobna napoveda k funkci

% ...

%

% See also jinaFunkce1, jinaFunkce2, ...

end

(28)

Základní struktura funkce

(29)

Základy Matlabu

Řetězce

Vektory znaků

str = ’muj retezec’

Spojování pomocstrcat()nebo podobně jako vektory strcat(’Hello’, ’world’), [’Hello ’, ’world’]

Porovnávání pomocí strcmp, strncmp, strcmpi, strncmpi Prohledávání pomocí findstr, strrep

Funkce pro konverzi řetězce na čísla a naopak, např.str2num Vytvoření formátovaného řetězce pomocí sprintf

Tisk formátovaného řetězce na obrazovku nebo do souboru pomocí fprintf

(30)

Michal Merta

VŠB – Technická univerzita Ostrava michal.merta@vsb.cz

10. února 2022

Odkazy

Související dokumenty

Při odvozování obyčejné diferenciální rovnice, kterou se řídí průhyb struny, vyjdeme z rovnováhy sil na nějakém malém úseku struny... 1 · 10 3 MPa ) A je obsah

převod matice na součin horní a dolní trojúhelníkové pomocí lineárních transformací zleva známe-li LU rozklad matice A (tzn... LU rozklad

V případě systémů s řídkou maticí jsme schopni řešit přímými řešiči soustavy s větší dimenzí (desítky, stovky miliónů neznámých).. Používají

Přibližnou znalost nejmenšího a největšího vlastního čísla můžeme použít k určení rychlosti konvergence iteračních metod řešení soustav lineárních rovnic. (a)

Věta 11.4 nám jinými slovy říká, že všechna řešení ne- homogenní soustavy lineárních rovnic jsou určena součtem jednoho konkrétního řešení R této soustavy a

Pokud není uvedeno jinak, uvedený materiál je z vlastních zdrojů autora... Řešení soustav lineárních nerovnic o jedné neznámé.. Při řešení soustav lineárních

Matice a jejich vlastnosti, užití k řešení soustav lineárních rovnic.. Hodnost matice, regulární a singulární matice, inverzní matice,

práce s maticemi, determinanty a jejich využití pro řešení soustav rovnic nebo přímo řešení maticových rovnic jako takových. • Kapitoly, které tvoří základ