VÝUKA MOŽNOSTÍ MATLABU

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

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

Interpolace a aproximace dat.

Aproximace a interpolace

APROXIMACE KŘIVEK V MATLABU TRIGONOMETRICKÉ POLYNOMY CURVE FITTING IN MATLAB TRIGONOMETRIC POLYNOMIAL

Interpolace pomocí splajnu

Aplikovaná matematika I

Program SMP pro kombinované studium

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

Odhad stavu matematického modelu křižovatek

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

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

Numerická integrace a derivace


5. Aproximace funkcí. Tento učební text byl podpořen z Operačního programu Praha- Adaptabilita. Hana Hladíková

Matematika I A ukázkový test 1 pro 2014/2015

NUMERICKÉ METODY. Problematika num. řešení úloh, chyby, podmíněnost, stabilita algoritmů. Aproximace funkcí.

Numerická matematika Písemky

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

Aplikovaná numerická matematika

APROXIMACE KŘIVEK V MATLABU NEWTONŮV INTERPOLAČNÍ POLYNOM CURVE FITTING IN MATLAB NEWTON INTERPOLATION POLYNOMIAL

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

MATEMATIKA III. Olga Majlingová. Učební text pro prezenční studium. Předběžná verze

Základy numerické matematiky. Interpolace a aproximace funkcí

Derivace funkce. Přednáška MATEMATIKA č Jiří Neubauer

Matematika 2 (Fakulta ekonomická) Cvičení z lineární algebry. TU v Liberci

Interpolace, aproximace

Matematika I A ukázkový test 1 pro 2011/2012. x + y + 3z = 1 (2a 1)x + (a + 1)y + z = 1 a

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

Popis metod CLIDATA-GIS. Martin Stříž

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Typy příkladů na písemnou část zkoušky 2NU a vzorová řešení (doc. Martišek 2017)

Regresní analýza. Ekonometrie. Jiří Neubauer. Katedra ekonometrie FVL UO Brno kancelář 69a, tel

a a

REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB

Numerické metody a programování

Budeme hledat řešení y(x) okrajové úlohy pro diferenciální rovnici druhého řádu v samoadjungovaném tvaru na intervalu a, b : 2 ) y i p i+ 1

Soustavy lineárních rovnic

Integrace funkcí více proměnných, numerické metody

Jméno... Cvičení den... hodina... Datum...rok... Počet listů... Varianta A

Zápočtová písemka z Matematiky III (BA04) skupina A

Vzpěr jednoduchého rámu, diferenciální operátory. Lenka Dohnalová

POLYNOMICKÁ REGRESE. Jedná se o regresní model, který je lineární v parametrech, ale popisuje nelineární závislost mezi proměnnými.

18 Fourierovy řady Úvod, základní pojmy

13.1. Úvod Cílem regresní analýzy je popsat závislost hodnot znaku Y na hodnotách

Soustavy lineárních rovnic

Základy algoritmizace a programování

PRAVDĚPODOBNOST A STATISTIKA

9 INTERPOLACE A APROXIMACE

Wolfram Alpha. v podobě html stránky, samotný výsledek je často doplněn o další informace (např. graf, jiné možné zobrazení výsledku a

Čebyševovy aproximace

1 Polynomiální interpolace

Co je obsahem numerických metod?

Literatura: Kapitola 2 d) ze skript Karel Rektorys: Matematika 43, ČVUT, Praha, Text přednášky na webové stránce přednášejícího.

Škola matematického modelování Petr Beremlijski, Rajko Ćosić, Lukáš Malý, Marie Sadowská, Robert Skopal

Ukázka závěrečného testu

4. OBYČEJNÉ DIFERENCIÁLNÍ ROVNICE

AVDAT Nelineární regresní model

z = a bi. z + v = (a + bi) + (c + di) = (a + c) + (b + d)i. z v = (a + bi) (c + di) = (a c) + (b d)i. z v = (a + bi) (c + di) = (ac bd) + (bc + ad)i.

Aplikovaná numerická matematika - ANM

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

EXPERIMENTÁLNÍ METODY I. 2. Zpracování měření

Základy matematiky pracovní listy

Regresní analýza 1. Regresní analýza

Numerické metody a programování. Lekce 4

Zdrojem většiny příkladů je sbírka úloh 1. cvičení ( ) 2. cvičení ( )

VYUŽITÍ MATLABU PRO VÝUKU NUMERICKÉ MATEMATIKY Josef Daněk Centrum aplikované matematiky, Západočeská univerzita v Plzni. Abstrakt

1 Zobrazení 1 ZOBRAZENÍ 1. Zobrazení a algebraické struktury. (a) Ukažte, že zobrazení f : x

Matematika I (KX001) Užití derivace v geometrii, ve fyzice 3. října f (x 0 ) (x x 0) Je-li f (x 0 ) = 0, tečna: x = 3, normála: y = 0

České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská OKRUHY. ke státním závěrečným zkouškám BAKALÁŘSKÉ STUDIUM

Úlohy k přednášce NMAG 101 a 120: Lineární algebra a geometrie 1 a 2,

Integrace. Numerické metody 7. května FJFI ČVUT v Praze

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

1. Náhodný vektor (X, Y ) má diskrétní rozdělení s pravděpodobnostní funkcí p, kde. p(x, y) = a(x + y + 1), x, y {0, 1, 2}.

ÚSTAV MATEMATIKY A DESKRIPTIVNÍ GEOMETRIE. Matematika 0A1. Cvičení, zimní semestr. Samostatné výstupy. Jan Šafařík

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

Přijímací zkoušky z matematiky pro akademický rok 2018/19 NMgr. studium Učitelství matematiky ZŠ, SŠ

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

5. Maticová algebra, typy matic, inverzní matice, determinant.

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

Aproximace a vyhlazování křivek

APROXIMACE FUNKCÍ. Jedním ze základních úkolů numerických metod matematické analýzy je studium aproximací

Aproximace funkcí. Polynom Φ m (x) = c 0 + c 1 x + c 2 x c m x m. Φ m (x) = c 0 g 0 (x) + c 1 g 1 (x) + c 2 g 2 (x) +...

Interpolace, ortogonální polynomy, Gaussova kvadratura

Operace s maticemi. 19. února 2018

Matematika 1 sbírka příkladů

LINEÁRNÍ REGRESE. Lineární regresní model

16 Fourierovy řady Úvod, základní pojmy

Matematika vzorce. Ing. Petr Šídlo. verze

Bakalářská matematika I

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

Lineární algebra : Změna báze

Modelování ternárních systémů slitin

5. Interpolace a aproximace funkcí

Regresní a korelační analýza

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

Arnoldiho a Lanczosova metoda

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

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

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

Transkript:

VÝUKA MOŽNOSTÍ MATLABU Miroslav Olehla Technická univerzita v Liberci, Fakulta strojní, Katedra aplikované kybernetiky V následujícím příspěvku jsou uvedeny některé oblasti MATLABU ve výuce. Vychází se z učebních textů Metody zpracování dat MATLAB a snahou je, provést studenty možnostmi uvedeného programovacího jazyka. Jsou uvedeny možnosti vizualizace, řízení průběhu výpočtu, relační a logické operátory, základní operace s maticemi. Řešení soustavy lineárních rovnic. Řešme soustavu přeurčených lineárních rovnic různými metodami Gausova metoda, metoda Gauss Jordanova eliminace s částečnou pivotací, inverzí a pomocí determinantů. Uvažujme soustavu A.x = b x 4x x x + 7x + x + x + 7x x + x 6x + x = = 5 = = Zadání koeficientů řešené soustavy: >> A=[ 7 -; 4 ; -6; - 7 ] A= 7-4 -6-7 >> b=[;5;-;-]%nebo b=[ 5 - -]' b = 5 - - Kontrola řešitelnosti soustavy určením hodnosti a determinantu matice: >> rank(a) ans = >> rank([a,b]) ans = >>det(a'*a) ans = 8750 Gausova metoda >> x=a\b x =.74-0.00 0.7 Metoda Gauss Jordanova eliminace s částečnou pivotací >> C=rref([A,b]) C =

.0000 0 0.74 0.0000 0-0.00 0 0.0000 0.7 0 0 0 0 Řešení pomocí inverze >>x=inv(a'*a)*(a'*b) x =.74-0.00 0.7 Řešení pomocí determinantů. >> bt=a'*b bt = 5 9 >> At=A'*A At = 0 48-48 8-5 - -5 5 >> A=[bt,At(:,:)] A = 5 48-8 -5 9-5 5 >> A=[At(:,),bt,At(:,)] A = 0 5-48 -5-9 5 >> A=[At(:,:),bt] A = 0 48 5 48 8 - -5 9 >> x=det(a)/det(at) x =.74 >> x=det(a)/det(at) x = -0.00 >> x=det(a)/det(at) x = 0.7 Aproximace periodické funkce V případě, že je nutné aproximovat periodické funkce f(x), získané na základě měření, lze aproximace získat funkcemi ve tvaru trigonometrických polynomů M a0 fm( xi ) = + ( an cos nxi + bn sin nxi ) n= Uvažujme, že aproximovaná funkce f má periodu π a že jsou známy její hodnoty v intervalu <-π,π>. Označme

a n b n π = ( ) cos, π f x nx dx π π = ( )sin, π f x nx dx π n = 0,,,... n = 0,,,... Předpokládejme, že známe N+ hodnot funkce f, která má periodu π. Využitím numerické N π π N integrace obdržíme v bodech x i = π, π,...,,0,,..., π, π N N N N a pro M N, kde M je stupeň trigonometrického polynomu (počet koeficientů a, b) vztahy a N 0 = f ( x i ) N i= N N an = f ( xi )cos mxi, m = 0,,,..., M N i= N N bn = f ( xi )sin mxi, m = 0,,,..., M N i= N %Program v MATLABU: % simulace vstupních dat x=-pi:0.:pi; N=length(x) y=(cos(x)+sin(*x)+cos(*x))+0.9; % výpočet koeficientů N=(N-)/; a0=/n*sum(y) a=/n*(sum(y*cos(x)')) a=/n*( sum(y*cos(*x)')) a=/n*(sum(y*cos(*x)')) b=/n*(sum(y*sin(x)')) b=/n*( sum(y*sin(*x)')) b=/n*(sum(y*sin(*x)')) %výpočet aproximační funkce f=a0/+(a*cos(x) +b*sin(x)); f=a0/+(a*cos(x) +b*sin(x)+ a*cos(*x) +b*sin(*x) ); f=a0/+(a*cos(x) +b*sin(x)+ a*cos(*x) +b*sin(*x) + a*cos(*x) +b*sin(*x)); %grafické zobrazení plot(x,y, '*',x,f, x,f, x,f) grid on legend('body', ' řád', ' řád', ' řád') nebo lépe: % simulace vstupních dat x=-pi:0.:pi; N=length(x) y=(cos(x)+sin(*x)+cos(*x))+0.9; % výpočet koeficientů N=(N-)/; a0=/n*sum(y); M=; % stupeň trigonometrickeho polynomu M for k=:m a(k)=/n*(sum(y*cos(k*x)')); b(k)=/n*(sum(y*sin(k*x)')); end a0 a b

%výpočet aproximační funkce f=a0/+(a()*cos(x) +b()*sin(x)); f=a0/+(a()*cos(x) +b()*sin(x)+ a()*cos(*x) +b()*sin(*x) ); f=a0/+(a()*cos(x) +b()*sin(x)+ a()*cos(*x) +b()*sin(*x) + a()*cos(*x) +b()*sin(*x)); %grafické zobrazení plot(x,y, '*',x,f, x,f, x,f) grid on legend('body', ' řád', ' řád', ' řád') Výsledek: N = 6 a0 =.878 a =.098-0.0064.098 b = -0.000.09-0.0008 obr.- Aproximace periodických funkcí pomocí Fourierovy řady Lineární regrese. Jednoparametrová lineární regrese Obecný tvar lineárního modelu s jednou nezávisle proměnnou je dán vztahem j y = a0 + ag( x), kde g(x) může být nelineární, např. g( x) = x, j =,,..., nebo hyperbola, logaritmická funkce atd. U těchto funkcí můžeme k určení regresních koeficientů použít přímo metodu nejmenších čtverců. r y = a0 + ax pro r<0 musí být x 0 y = a + 0 a log x pro x>0 x y = a + 0 ae

Určeme koeficienty pro aproximační funkci y = a a ln x pro naměřená data 0 + x y 0.0 0.60.0 4.0 5.70 6.79 7.90 8.00 9.0 0.5 x=::0; y=[0. 0.6...7.79.9.0..5]; X=[ ; log(x)]; a=x'\y' xgraf=:0.:0; ygraf=a()+a()*log(xgraf); plot(x,y,'*', xgraf,ygraf) % nebo po dosazení a(), a() % plot(x,y,'*') % hold on %fplot('0.06+0.949*log(x)',[,0]) a = 0.06 0.9490 V některých případech je možno provést následující transformaci Obr. - Lineární regrese x y = a0 a log y = log a0 + x log a a y = a x log = log a + a x y 0 = a + a x 0 y 0 log / = a + a x y 0. Víceparametrová lineární regrese Uvažujme naměřené hodnoty: x 4 4 5 4 x 0 8 5 y 4 4 6 4 5 a určeme koeficienty regresní funkce y=a 0.+a.x + a.x.

Doplněním vektoru jedniček má matice X tvar X=[ ;4 4 5 4;0 8 5 ]; y=[4 4 6 4 5]; a=x'\y' a = -0.74 0.8 0.8 Poznámka: Výsledkem X*X T je matice symetrická X*X' ans = 7 7 87 70 7 70 855 Vytvoření grafu: xp=[0::6]; yp=[0::6]; [XP,YP]=meshgrid(xp,yp); zp=a()+a()*xp+a()*yp; surf(xp,yp,zp) obr. - Víceparametrová lineární regrese. Aproximace pomocí polynomu Pro uvedené výsledky měření uvažujme aproximaci ve tvaru polynomu. stupně, tedy y = a + a x + a x + a. 0 x x=[ 4 5]; X=[ ;x;x.^;x.^]; y=[5.5 4. 00. 90.7 8.4]; a=x'\y' a=

6.5800-0.45 6.6964-6.858 % Vykreslení grafu: xgraf=:0.0:5; graf=a()+a()*xgraf+a()*xgraf.^+a(4)*xgraf.^; plot(x,y,'*',xgraf,ygraf); %nebo po dosazení koeficientů % plot(x,y,'*') % hold on %fplot('6.58-0.45*x+6.696*x.^-6.858*x.^',[,5]) %není povolen zápis fplot('a()+a()*x+a()*x.^',[,5]) Obr. - Regrese polynomem. stupně V případě, že chceme data aproximovat polynomem n-tého stupně, můžeme to provést pomocí funkce p=polyfit(x,y,n). Výsledek je stejný, jako v předchozích případech. x je vektor hodnot nezávisle proměnné, y je vektor hodnot závisle proměnné, n je stupeň polynomu, jímž chceme aproximovat body [x i,y i ], p je vektor koeficientů výsledného polynomu P(x) = a n.x n + a n-.x n- +... + a.x + a 0 x=[0 5 7 50 6 70]; y=[0.5.7.58..6. 4.9]; x=0:0.:70; p=polyfit(x,y,) y=polyval(p,x); plot(x,y,'*',x,y) p = 0.68-0.90 Musíme připravit datové vektory odpovídající jednotlivým grafům. Zkusme nadefinovat několik bodů a proložit jimi polynomy různých stupňů pomocí funkce polyfit. Prokládané body jsou dány vektory x a y. V grafu budou vyznačeny hvězdičkami. Za povšimnutí stojí průběh polynomu y8 aproximace tohoto stupně je interpolací.

x=[ 4 5 6 7 8 9]; y=[ 4 5 4 ]; x=:0.:9; y=polyval(polyfit(x,y,),x); y=polyval(polyfit(x,y,),x); y5=polyval(polyfit(x,y,5),x); y8=polyval(polyfit(x,y,8),x); plot(x,y,'*',x,y,x,y,x,y5,x,y8) Obr. -4 Grafické okno funkce polyfit Dalším příkladem je nalezení koeficientů polynomu zvoleného stupně prokládajícího naměřená data podle kritéria nejmenších čtverců: x=[ 4 5]; y=[5.5 4. 00. 90.7 8.4]; r=polyfit(x,y,) % nalezení koeficientů polynomu. stupně yp=polyval(r,x); plot(x,y,'*',x,yp) Výsledek: r = 0.974 5.54-5.6400 tedy polynom ve tvaru 0.974.x^+5.54.x-5.6400 obr. -5 Polynomická aproximace

S proložením bodů pomocí polynomu úzce souvisí interpolace, respektive proložení polynomem je jeden typ interpolace. MATLAB poskytuje několik standardních funkcí pro různé typy interpolačních funkcí. Popis všech funkcí a jejich použití přesahuje rozsah tohoto textu. Uveďme názornou ukázku použití funkce polyval pro aproximaci, interp, spline pro interpolaci a použijeme příkaz plot pro grafické zobrazení zadaných bodů a bodů získaných proložením polynomem. a 6. stupně, interpolační funkcí a kubickými spline. obr. -6 Nevhodně použitá polynomiální interpolace x = [:7]; y=[5.5 4 50 00. 90.9 8]; % interpolace xp=:0.:7; yi=interp(x,y,xp); %spline yp=spline(x,y,xp); %aproximace yp=polyval(polyfit(x,y,),xp); %aproximace = interpolace yp6=polyval(polyfit(x,y,6),xp); plot(x,y,'*',xp,yi, ':',xp,yp,xp,yp,'--',xp,yp6, '-.') legend('body', 'interp','spline','polynom ','polynom 6') Příklad ukazuje nebezpečí bezmyšlenkového použití polynomiální aproximace. Pokud je aproximujeme polynomem 6. stupně a dopočítáme hodnoty pro dané x dostaneme ideální shodu. Pokud se však podíváme i na hodnoty mimo sledované body už spokojeni nebudeme. Aproximace se sice přesně shoduje v zadaných bodech, ovšem průběh mezi zadanými body se značně odchyluje od očekávaného průběhu. Polynomiální aproximace není rovněž vhodná pro aproximaci průběhů s ostrými zlomy. Literatura: Olehla, M., Dušek, F.: Metody zpracování dat MATLAB. Technická Univerzita Liberec 0, ISBN 978-80-77-95- Aproximace polynomem n- stupně