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

% 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í

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

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

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ň

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

Interpolace a aproximace dat.

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

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

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 +

VÝUKA MOŽNOSTÍ MATLABU

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

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

při vykreslování křivky je důležitá velikost kroku, příp. počet prvků, ve vektoru t (na ose x). t = linspace(0,2*pi,500); y = sin(t); t =

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

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

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

10. cvičení - LS 2017

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

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

Extrémy funkce dvou proměnných

Lineární algebra s Matlabem cvičení 3

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

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

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ýrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

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

X37SGS Signály a systémy

plot() vytváří dvou-dimenzionální grafy, mnoho různých kombinací vstupních argumentů, nejjednodušší formou je plot(y), plot(x,y).

Stručný návod k programu Octave

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

otočení matice o 180

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

Kvadratickou funkcí se nazývá každá funkce, která je daná rovnicí. Definičním oborem kvadratické funkce je množina reálných čísel.

Polynomy a racionální lomené funkce

PPEL_3_cviceni_MATLAB.txt. % zadat 6 hodnot mezi cisly 2 a 8 % linspace (pocatek, konec, pocet bodu)

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

Aproximace a interpolace

Variace. Kvadratická funkce

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

Základy algoritmizace a programování

pracovní list studenta

13. Kvadratické rovnice 2 body

Algoritmizace a programování

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

M - Kvadratická funkce

MATURITNÍ TÉMATA Z MATEMATIKY

Popis metod CLIDATA-GIS. Martin Stříž

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

Numerické metody a programování. Lekce 8

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

Funkce pro studijní obory

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

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

Systém vykonávající tlumené kmity lze popsat obyčejnou lineární diferenciální rovnice 2. řadu s nulovou pravou stranou:

3.4 Řešení Příkladu 1 (str.55) v programu Maple

Jak pracovat s absolutními hodnotami

MATrixLABoratory letný semester 2004/2005

4. OBYČEJNÉ DIFERENCIÁLNÍ ROVNICE

Základy programování: Algoritmizace v systému MATLAB

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

2. prosince velikosti symboly a, b, je b ω a b = a b cosω (1) a. ω pro ω π/2, π platí a b = b a a (3) a b = a 1 b 1 + a 2 b 2 + a 3 b 3 (5)

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

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

Program SMP pro kombinované studium

Funkce a lineární funkce pro studijní obory

2.5.1 Kvadratická funkce

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

Obecná rovnice kvadratické funkce : y = ax 2 + bx + c Pokud není uvedeno jinak, tak definičním oborem řešených funkcí je množina reálných čísel.

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

Interpolace, aproximace

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

= - rovnost dvou výrazů, za x můžeme dosazovat různá čísla, tím měníme

Funkce - pro třídu 1EB

Základy matematiky kombinované studium /06

Pavlína Matysová. 5. listopadu 2018

1 Mnohočleny a algebraické rovnice

1 Mnohočleny a algebraické rovnice

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

Pozn. 1. Při návrhu aproximace bychom měli aproximační funkci vybírat tak, aby vektory ϕ (i) byly lineárně

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

E+034 = ; = e E+034

Parametrické rovnice křivek

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

8.1. Určete všechny lokální extrémy funkce f(x, y) = x 2 + arctg 2 x + y 3 + y, x, y R.

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

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

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Matematika I (KMI/5MAT1)

AVDAT Nelineární regresní model

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

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 ).

Nerovnice. Vypracovala: Ing. Stanislava Kaděrková

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

Funkce jedn e re aln e promˇ enn e Derivace Pˇredn aˇska ˇr ıjna 2015

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

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky

Transkript:

KTE / PPEL Počítačová podpora v elektrotechnice Ing. Lenka Šroubová, Ph.D. email: lsroubov@kte.zcu.cz http://home.zcu.cz/~lsroubov Polynomy opakování a pokračování 31. 10. 2012 Příklad: Funkce, která vykreslí zadaný polynom p v zadaném rozsahu a najde a označí v grafu maximum a minimum v daném rozsahu function 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') hold off show endfunction Volání funkce s příslušnými vstupními daty: kreslipolynom(p,-0.4,0.8,1000)

A výsledek: Max = 11 maximum z vektoru hodnotypolynomu indexmax = 334 poloha (index) maxima ve vektoru Min = 9.3020 minimum z vektoru hodnotypolynomu indexmin = 930 poloha (index) minima ve vektoru Grafy grid mřížka v 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 vypnutí, konec možnosti kreslit více grafů do jednoho grafického okna legend('krivka 1',krivka 2','krivka 3') zobrazení legendy v grafu, nutno dodržet pořadí jednotlivých křivek, jak byly kresleny, např. příkazem plot

Další příkazy pro práci s polynomy conv(p, q) součin polynomů p a q, tj. p(x)*q(x) = (4x 5 + 3.1x 3 7x 2 + 11)*( x 4 + x 3 x) ans = Columns 1 through 7: -4.00000 4.00000-3.10000 6.10000-7.00000-14.10000 18.00000 Columns 8 through 10: 0.00000-11.00000 0.00000 Tedy p(x)*q(x) = 4x 9 +4x 8 3.1x 7 + 6.1x 6 7x 5 14.1x 4 + 18x 3 11x roots(p) výpočet kořenů polynomu p (všechna x pro která je hodnota polynomu 0), tj. řešení rovnice 4x 5 + 3.1x 3 7x 2 + 11 = 0 ans = 0.97274 + 0.57470i 0.97274-0.57470i -0.51238 + 1.44129i -0.51238-1.44129i -0.92071 + 0.00000i Pozn. Stupněm polynomu p(x) rozumíme nejvyšší exponent proměnné x s nenulovým koeficientem. Stupeň polynomu p(x) je 5 => položíme-li ho rovný 0, má pak 5 kořenů) poly(x) zjištění koeficientů polynomu z kořenů (má-li vektor x n prvků, vypíše se vektor s n+1 prvky koeficienty polynomu n-tého stupně), funkce je opakem roots, první koeficient polynomu, tj. koeficient u nejvyššího exponentu proměnné x je vždy roven 1. Řešení kvadratické rovnice Kvadratická rovnice polynom, který je položen rovný nule Stupeň kvadratického polynomu (např k(x) = x 2 + 5x + 6) je tedy 2. Kvadratická rovnice má 2 kořeny. x 2 + 5x + 6 = 0 1x 2 + 5x + 6 = 0 k = [1, 5, 6]; x=roots(k)

x = -3.0000 tj x 1, -2.0000 tj x 2, tato kvadratická rovnice má reálné kořeny. Zkouška: (-3) 2 + 5*(-3) + 6 = 0 a (-2) 2 + 5*(-2) + 6 = 0, tj. polyval(k,x(1)) ans = 1.3323e-15 polyval(k,x(2)) ans = 2.2204e-16 Zjištění koeficientů polynomu z kořenů poly(x) ans = 1 5 6 Spočítáme průběh polynomu a vykreslíme graf i s kořeny xx = linspace(-4,1,1000); hp = polyval(k,xx); plot(xx,hp) hold on plot(x(1), polyval(k,x(1)),'*m') plot(x(2), polyval(k,x(2)),'*g') hold off

2x 2 + 4x + 6 = 0 k2 = [2,4,6]; x2 = roots(k2) x2 = -1.0000 + 1.4142i tj. x 1, -1.0000-1.4142i tj. x 2, tato kvadratická rovnice má komplexní kořeny. poly(x2) ans = 1.0000 2.0000 3.0000 Obě strany kvadratické rovnice můžeme vydělit dvěma: 2x 2 + 4x + 6 = 0 : 2 1x 2 + 2x + 3 = 0, tj. toto jsou koeficienty získané pomocí poly(x2) roots([1,2,3]) ans = -1.0000 + 1.4142i tj. x 1, -1.0000-1.4142i tj. x 2, => kvadratická rovnice 1x 2 + 2x + 3 = 0 má totožné řešení jako kvadratická rovnice 2x 2 + 4x + 6 = 0.

2x 2 + 6 = 0 2x 2 +0x + 6 = 0 k3 = [2,0,6]; x3 =roots(k3) x3 = 0 + 1.7321i tj. x 1, 0-1.7321i tj. x 2, tato kvadratická rovnice má komplexní kořeny bez reálné části poly(x2).*2 ans = 2.00000 0.00000 6.00000 x 2 2x + 1 = 0 1x 2 +( 2)x + 1 = 0 x4 = roots([1,-2,1]) x4 = 1 tj. x 1 1 tj. x 2, platí x 1 = x 2 tato kvadratická rovnice má dvojnásobný reálný kořen poly(x4) ans = 1-2 1 Řešení rovnic s polynomem vyššího stupně x 6 14 x 4 + 49x 2 = 36 1 x 6 + 0 x 5 14 x 4 + 0 x 3 + 49x 2 + 0x 36 x 0 = 0 r=[1,0,-14,0,49,0,-36] length(r) ans = 7 počet prvků ve vektoru je vždy o 1 větší než stupeň polynomu roots(r)

ans = -3.00000 3.00000-2.00000-1.00000 2.00000 1.00000 řešením je 6 kořenů počet kořenů stejný jako stupeň polynomu 7 x 8 = 7x 7 x 8 + 0 x 7 + 0 x 6 + 0 x 5 + 0 x 4 + 0 x 3 + 0 x 2 7x + 0 x 0 = 0 r2=[7,0,0,0,0,0,0,-7,0]; length(r2) ans = 9 počet prvků ve vektoru je vždy o 1 větší než stupeň polynomu roots(r2) ans = -0.90097 + 0.43388i -0.90097-0.43388i -0.22252 + 0.97493i -0.22252-0.97493i 1.00000 + 0.00000i 0.62349 + 0.78183i 0.62349-0.78183i 0.00000 + 0.00000i řešením je 8 kořenů počet kořenů stejný jako stupeň polynomu 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)

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)) nepravda nebo pravda ans = 1 xor((3<5),(4<6)) ans = 0 xor((3>5),(4<6)) ans = 1 xor((3>5),(4>6)) ans = 0 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 Příklady viz http://home.zcu.cz/~lsroubov/ppel nebo http://portal.zcu.cz