KTE / PPEL Počítačová podpora v elektrotechnice

Podobné dokumenty
KTE / PPEL Počítačová podpora v elektrotechnice

plot(c,'o') grid xlabel('re') ylabel('im')

POZOR!!! atan (imag(c)./real(c)) počítá úhel v 1. a 4. kvadrantu, podle vzorce

cyklus s daným počtem opakování cyklus s podmínkou na začátku (cyklus bez udání počtu opakování)

% vyhledání prvku s max. velikostí v jednotlivých sloupcích matice X

pi Ludolfovo číslo π = 3,14159 e Eulerovo číslo e = 2,71828 (lze spočítat jako exp(1)), např. je v Octave, v MATLABu tato konstanta e není

- transpozice (odlišuje se od překlopení pro komplexní čísla) - překlopení matice pole podle hlavní diagonály, např.: A.' ans =

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Příklad: Vytvoření uživatelské funkce prolozeni_bodu pro polynomiální regresi: Vstupní data: x-ové a y-ové souřadnice bodů (2 vektory x, y), stupeň

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2

Příklad elektrický obvod se stejnosměrným zdrojem napětí

Lineární a polynomická regrese, interpolace, hledání v tabulce

KTE / PPEL Počítačová podpora v elektrotechnice

Stručný návod k programu Octave

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Základy algoritmizace a programování

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

VÝUKA MOŽNOSTÍ MATLABU

E+034 = ; = e E+034

otočení matice o 180

Polynomy a interpolace text neobsahuje přesné matematické definice, pouze jejich vysvětlení

Příklad: Řešte soustavu lineárních algebraických rovnic 10x 1 + 5x 2 +70x 3 + 5x 4 + 5x 5 = 275 2x 1 + 7x 2 + 6x 3 + 9x 4 + 6x 5 = 100 8x 1 + 9x 2 +

MATLAB základy. Roman Stanec PEF MZLU

Algoritmizace a programování

Interpolace a aproximace dat.

Příklad animace změny prokládané křivky při změně polohy jednoho z bodů

více křivek v jednom grafu hold on přidrží aktuální graf v grafickém okně, lze nakreslit více grafů do jednoho grafického okna postupně hold off

while cyklus s podmínkou na začátku cyklus bez udání počtu opakování while podmínka příkazy; příkazy; příkazy; end; % další pokračování programu

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

Parametry hledáme tak, aby součet čtverců odchylek byl minimální. Řešením podle teorie je =

Aproximace a interpolace

Numerická integrace a derivace

SEMESTRÁLNÍ PRÁCE Z X37SAS Zadání č. 7

KVADRATICKÉ FUNKCE. + bx + c, největší hodnotu pro x = a platí,

MODAM Popis okna. 2 Jana Bělohlávková, Katedra matematiky a deskriptivní geometrie, VŠB - TU Ostrava

Programování v chemii (MATLAB)

Úloha 1. Napište matici pro případ lineárního regresního spline vyjádřeného přes useknuté

MATrixLABoratory letný semester 2004/2005

Extrémy funkce dvou proměnných

Popis metod CLIDATA-GIS. Martin Stříž

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU MODELOVÁNÍ MATLABEM

10. cvičení - LS 2017

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

LINEÁRNÍ REGRESE Komentované řešení pomocí programu Statistica

f(x) = ax + b mocnin (čili čtverců, odtud název metody) odchylek proložených hodnot od naměřených hodnot byl co (ax i + b y i ) 2 2(ax i + b y i ).

Metoda nejmenších čtverců Michal Čihák 26. listopadu 2012

Variace. Kvadratická funkce

Řešení diferenciálních rovnic v MATLABu

Průběh funkce 1. Průběh funkce. Při vyšetření grafu funkce budeme postupovat podle následujícího algoritmu:

KTE / PPEL Počítačová podpora v elektrotechnice

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

M - Kvadratická funkce

Úvod do Matlabu. Vít Vondrák Katedra aplikované matematiky FEI, VŠB-TU Ostrava

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Předzpracování dat. Cvičení 2: Import a příprava dat v Matlabu MI-PDD, 09/2011. Pavel Kordík MI-POA

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

Poznámka: V kurzu rovnice ostatní podrobně probíráme polynomické rovnice a jejich řešení.

Popisná statistika. Komentované řešení pomocí MS Excel

UNIVERZITA PARDUBICE. 4.4 Aproximace křivek a vyhlazování křivek

KTE / PPEL Počítačová podpora v elektrotechnice

Pokračování příkladu: funkce s2cos pro výpočet y = sin 2 (x) cos(x) function y = s2cos(x) y = (sin(x).^ 2).* cos(x);

KTE / PPEL Počítačová podpora v elektrotechnice

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

5 Přehled operátorů, příkazy, přetypování

Funkce - pro třídu 1EB

Diferenciální počet 1 1. f(x) = ln arcsin 1 + x 1 x. 1 x 1 a x 1 0. f(x) = (cos x) cosh x + 3x. x 0 je derivace funkce f(x) v bodě x0.

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Jak pracovat s absolutními hodnotami

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

MĚŘENÍ STATISTICKÝCH ZÁVISLOSTÍ

Odhad parametrů N(µ, σ 2 )

TEPELNÉ ÚČINKY EL. PROUDU

Operace s vektory a maticemi + Funkce

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

Příklady k druhému testu - Matlab

Lineární regrese. Komentované řešení pomocí MS Excel

Skriptování aneb funkce a procedury, cykly a vstupy a výstupy

ÚLOHA S2 STATICKÁ CHARAKTERISTIKA KONDENZÁTORU BRÝDOVÝCH PAR

4. OBYČEJNÉ DIFERENCIÁLNÍ ROVNICE

Vyšetření průběhu funkce zadané předpisem

Interpolace, aproximace

Kombinatorická minimalizace

1. Téma 03 - Rozhodování

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

Aplikovaná matematika I

Téma je podrobně zpracováno ve skriptech [1], kapitola 6, strany

Funkce jedné reálné proměnné. lineární kvadratická racionální exponenciální logaritmická s absolutní hodnotou

verze 1.3 x j (a) g k 2. Platí-li vztahy v předchozím bodu a mají-li f, g 1,..., g s v a diferenciál K = f + j=1

KTE / PPEL Počítačová podpora v elektrotechnice

MATURITNÍ TÉMATA Z MATEMATIKY

REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB

Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64, 37021

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Chyby nepřímých měření

Bézierovy křivky Bohumír Bastl KMA/GPM Geometrické a počítačové modelování Bézierovy křivky GPM 1 / 26

Circular Harmonics. Tomáš Zámečník

KFC/SEM, KFC/SEMA Elementární funkce

Břetislav Fajmon, UMAT FEKT, VUT Brno. Poznámka 1.1. A) první část hodiny (cca 50 minut): představení všech tří metod při řešení jednoho příkladu.

Teorie úlohy: Operační zesilovač je elektronický obvod, který se využívá v měřící, výpočetní a regulační technice. Má napěťové zesílení alespoň A u

Transkript:

KTE / PPEL Počítačová podpora v elektrotechnice 2. 11. 2011 Ing. Lenka Šroubová, Ph.D. email: lsroubov@kte.zcu.cz http://home.zcu.cz/~lsroubov Polynomiální regrese polyfit(x, y, st) proloží množinu bodů o souřadnicích obsažených ve vektorech x a y polynomem stupně st. Výstupem jsou koeficienty polynomu zvoleného stupně st. Např.: Při měření byla získána data uvedená v tabulce. t[s] 1 2 3 4 5 u[v] 5.5 43.1 100.2 190.7 218.4 t = [1:5]; u = [5.5, 43.1, 100.2, 190.7, 218.4] plot(t,u,'o') xlabel('t[s]') ylabel('u[v]') title('data z mereni') show Body na příslušných souřadnicích zobrazeny jako kolečka.

Proložíme naměřené hodnoty polynomem 3. řádu a vykreslíme jeho průběh společně s naměřenými hodnotami do grafu. Nejprve vypočteme regresní polynom: regr = polyfit(t,u,3) regr = -6.8583 62.6964-110.3452 61.5800 tj.: regr(x) = 6.8583 x 3 + 62.6964 x 2-110.3452 x 1 + 61.5800 x 0 = 6.8583 x 3 + 62.6964 x 2-110.3452 x + 61.5800 Regresní křivku (zjištěný polynom) přidáme do grafu t t = 1 2 3 4 5 Pro zobrazení polynomu musíme zjemnit x-ovou osu (na ní zobrazeno t), vytvoříme vektor rt: rt = [0:0.05:6]; Vektor rt je z intervalu od 0 do 6 => dali jsme kousek i okolo. Pak vypočteme hodnoty polynomu pro všechna rt: hp = polyval(regr,rt); plot(t,u,'o',rt, hp, 'r') show

Prokládané body i křivka (polynom) jsou v jednom grafu, polynom zobrazen červeně, aby byl dobře vidět ;-) Křivka není úplně v pořádku, zvláště na krajích intervalu. Zkusíme proložit naměřené hodnoty polynomem 4. řádu a vykreslíme jeho průběh společně s naměřenými hodnotami do grafu. regr_moc = polyfit(t,u,4) regr_moc = -4.5875 48.1917-164.7125 263.2083-136.6000 hp_moc = polyval(regr_moc,rt); plot(rt, hp_moc, 'g') show

Prokládané body i křivky (polynomy) jsou v jednom grafu, polynom 3. st. zobrazen červeně, polynom 4. st. zobrazen zeleně. Dostali jsme nevhodnou regresní křivku, nesmyslnou. Ani ta červená není úplně v pořádku Zkusíme tedy ještě polynom ještě vyššího stupně. regr_jeste_vic = polyfit(t,u,6); hp_jeste_vic = polyval(regr_jeste_vic,rt); plot(t,u,'o',rt, hp, 'r',rt, hp_moc, 'g',... rt, hp_jeste_vic, 'k') show Polynom 6. st. zobrazen černě, je to ještě horší, proto zkusíme proložit naměřené hodnoty polynomem 2. stupně: regr_mene = polyfit(t,u,2) regr_mene = 0.9714 51.5114-53.6400 hp_mene = polyval(regr_mene,rt); plot(t, u,'o',... rt, hp, 'r',... rt, hp_moc, 'g',... rt, hp_jeste_vic, 'k',... rt, hp_mene, 'm')

show Nejlépe by zde vyhověl polynom 2. stupně. Zkusíme ještě přímku (polynom 1. stupně): regr_min = polyfit(t,u,1) regr_min = 57.340-60.440 hp_min = polyval(regr_min,rt); regr_min = polyfit(t,u,1) hp_min = polyval(regr_min,rt); plot(t,u,'o', rt,hp_mene,'m', rt,hp_min,'c') legend('body','polynom 2.st.','polynom 1.st.','Location','SouthEast') show Polynom 1. stupně y(x) = 57.34 x 60.44 (rovnice přímky) Polynom 2. stupně y(x) = 0.9714 x 2 + 51.5114 x 53.6400 (rovnice paraboly) Polynom 1. stupně a polynom 2. stupně na intervalu od 0 do 6 mají velmi podobný průběh a jsou vhodné pro proložení těchto naměřených dat z tabulky.

Příklady viz http://edison.fel.zcu.cz publikované sešity Lze použít i další typy regresních křivek, nejen výše uvedené polynomy Např.: spline Použitelné funkce: interp1 1Dimenzionální interpolace interp2 2D interpolace interp3 3D interpolace interpn ndimenzionální interpolace interpft interpolace s využitím FFT Např. 1D interpolace pomocí spline fukcí spl_int = interp1(t,u,rt,'spline'); plot(t,u,'o',rt,spl_int, 'g')

Příklad: vlastní funkce pro polynomiální interpolaci Vstupní data: x-ové a y-ové souřadnice bodů (2 vektory), stupeň polynomu, kterým budou body proloženy. Nejprve provedeme jemnější dělení osy x pro zobrazení křivky (od minima z vektoru x do maxima z vektoru x s krokem vypočteným jako (max(x)-min(x))/100), poté získáme koeficienty polynomu n- tého stupně pro polynomiální interpolaci příkazem polyfit a vyčíslíme hodnoty polynomu pro všechny body z jemnějšího dělení osy x příkazem polyval. Nakonec vykreslíme graf. function prolozeni_bodu(x,y,n) xp=[min(x):((max(x)-min(x))/100):max(x)]; yn=polyval(polyfit(x,y,n),xp); plot(x,y,'*',xp,yn,'m') show endfunction Volání funkce: prolozeni_bodu([1:7],[1,2,2,4,3,4,5],3)

Výstup textový (bez možnosti formátování textu) disp výstup bez názvu proměnné, nemá možnost formátovat text promenna=7; disp(promenna); 7 disp([1:5]) 1 2 3 4 5 disp('textovy retezec 1'); textovy retezec 1 disp(['textovy ','retezec ', '2']) textovy retezec 2 Pozn.: num2str převod čísel na řetězec, např. num2str(rand) ans = 0.81472 whos Name Size Bytes Class ans 1x7 14 char

Využití disp a num2str: x=5; disp(['zvetsime-li cislo ', num2str(x), ' o jednicku, dostaneme ', num2str(x+1)]); Výstup na obrazovku: Zvetsime-li cislo 5 o jednicku, dostaneme 6 Vlastní uživatelské funkce opakování a pokračování Příklad výpočet obsahu a obvodu kruhu function [S,o]=obsah_obvod(r) S=pi.*(r.^2); o=2.*pi.*r; endfunction Volání funkce [obs,obv]=obsah_obvod(10) obs = 314.16 obv = 62.832 Některé z uvedených funkcí v MATLABu m-file File > New > M-file (editor) function [S,o]=obsah_obvod(r) S=pi.*(r.^2); o=2.*pi.*r; Soubor je nutné uložit. Save as: obsah_obvod.m Volání funkce v příkazovém okně Command Window [obs,obv]=obsah_obvod(10) obs = 314.16 obv = 62.832

whos Name Size Bytes Class Attributes obs 1x1 8 double obv 1x1 8 double r lokální proměnná (s ukončením funkce zaniká), výstupní proměnné zůstanou zachovány Funkce bez výstupu function obsah_obvod2(r) S=pi.*(r.^2); o=2.*pi.*r; disp('obsah') disp(s) disp('obvod') disp(o) Volání funkce obsah_obvod2(5) Obsah 78.5398 Obvod 31.4159 r, S, o lokální proměnné (s ukončením funkce zanikají), výstupní proměnná není whos => po příkazu whos se nevypíše nic

Relační operátory == porovnání na rovnost (je rovno) ~= porovnání na nerovnost (není rovno) <, > je menší, je větší <=, >= je menší nebo rovno, je větší nebo rovno ~ negace (not) Příklady viz http://edison.fel.zcu.cz publikované sešity Logické operátory & a zároveň (and) nebo (or) xor exkluzivní nebo ~ negace (not) (3<5)&(4<6) ans = 1 (3<5)&(4>6) ans = 0 (3>5)&(4>6) ans = 0 Lze psát i takto: and((3>5),(4<6)) ans = 0 pravda a zároveň pravda pravda a zároveň nepravda nepravda a zároveň nepravda nepravda a zároveň pravda (3<5) (4<6) pravda nebo pravda ans = 1 (3<5) (4>6) pravda nebo nepravda ans = 1 (3>5) (4>6) nepravda nebo nepravda ans = 0

Lze psát i takto: or((3>5),(4<6)) ans = 1 xor((3<5),(4<6)) ans = 0 xor((3>5),(4<6)) ans = 1 xor((3>5),(4>6)) ans = 0 nepravda nebo pravda pravda nebo pravda exkluzivně pravda nebo pravda exkluzivně pravda nebo pravda exkluzivně ~0 negace 0 (nepravdy) je 1 (pravda) ans =1 ~1 negace 1 (pravdy) je 0 (nepravda) ans =0 ~5 negace 5 (pravdy) je 0 (nepravda) ans =0 ~(3<5) negace pravdy je nepravda ans =0 not(3<5) lze psát i takto, nepravda ans =0 Tedy pak: (~(3<5))&(4<6) nepravda a zároveň pravda ans = 0

Řízení běhu výpočtu - řídící příkazy: Podmíněný příkaz if logický_výraz příkaz; příkaz; příkaz; end; Středníky nejsou povinné. nebo plný tvar: if logický_výraz příkazy_je_li_podmínka_pravdivá; else příkazy_není_li_podmínka_pravdivá; end; Středníky nejsou povinné. nebo if logický_výraz příkazy1; elseif jiný_logický_výraz příkazy2; else příkazy3; end; Středníky nejsou povinné. Pozor else nebo elseif se vztahuje vždy k nejbližšímu if nad ním. (samozřejmě pokud se před ním nevyskytne end)

Příklad: Funkce pro porovnaní čísla s určitou mezí vstupní parametry: číslo, mez testu,se kterou se bude číslo porovnávat function porovnani(cislo, meztestu) if (cislo < meztestu) disp('cislo je mensi nez zadana mez') elseif (cislo == meztestu) disp('cislo je rovno zadane mezi') else disp('cislo je vetsi nez zadana mez') end Ve funkci relační operátor == (rovná se ve smyslu porovnání) Volání funkce: porovnani(3, 2) cislo je vetsi nez zadana mez nebo porovnani(5, 5) cislo je rovno zadane mezi Příklad: Funkce, která vykreslí zadaný polynom p v zadaném rozsahu, najde a označí v grafu maximum a minimum v daném rozsahu a pokud jsou všechny kořeny reálné, vykreslí je také do grafu. Takže do příkladu, který byl uveden dříve, přidáme výpočet a zobrazení kořenů (do grafu jen reálné kořeny) function k=kreslipolynom(p,odkudx,kamx,prvkux) x = linspace(odkudx,kamx,prvkux); hodnotypolynomu = polyval(p,x); plot(x,hodnotypolynomu) title('prubeh polynomu') xlabel('x')

ylabel('y') hold on [Max,indexMax]=max(hodnotyPolynomu); plot(x(indexmax),max,'or') [Min,indexMin]=min(hodnotyPolynomu); plot(x(indexmin),min,'ok') k = roots(p); if (isreal(k)==1) plot(k, polyval(p,k),'og') else disp('koreny polynomu nejsou realne') end hold off Volání funkce např.: p(x) = x 2 + 5x + 6 x = kreslipolynom([1,5,6],-4,-1,100) x = -3.0000-2.0000 Příklady viz http://home.zcu.cz/~lsroubov/ppel nebo http://portal.zcu.cz