A gyakorlatban az (1)-beli szumma a technológiai korlátok következtében csak véges t értékig mehet, ami ábrázolási pontatlansághoz vezethet.

Hasonló dokumentumok
Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István

1. Feladatlap. Függvények. Mőveletek Matlab nyelvben. Példa inverz osztásra >>d=2\1 d= Információkérési lehetıségek help utasítás

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Algoritmusok Tervezése. 1. Előadás MATLAB 1. Dr. Bécsi Tamás

A számok kiíratásának formátuma

Gauss elimináció, LU felbontás

Matematikai programok

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Matlab alapok. Baran Ágnes

MATLAB. 5. gyakorlat. Polinomok, deriválás, integrálás

Normák, kondíciószám

Informatikai alkalmazások - levelező ősz

Numerikus matematika. Irodalom: Stoyan Gisbert, Numerikus matematika mérnököknek és programozóknak, Typotex, Lebegőpontos számok

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

rank(a) == rank([a b])

MATLAB OKTATÁS 1. ELŐADÁS ALAPOK. Dr. Bécsi Tamás Hegedüs Ferenc

Gauss-Seidel iteráció

Ismerkedés a Matlabbal

Numerikus matematika vizsga

Matematikai programok

Példatár a bevezetés a Matlab programozásába tárgyhoz

NUMERIKUS MÓDSZEREK I. TÉTELEK

LEBEGŐPONTOS SZÁMÁBRÁZOLÁS

Numerikus módszerek beugró kérdések

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

MATLAB. 3. gyakorlat. Mátrixműveletek, címzések

6. előadás. Matlab 1. (Ismerkedés, környezet, adattípusok) Dr. Szörényi Miklós, Dr. Kallós Gábor. Széchenyi István Egyetem

12 48 b Oldjuk meg az Egyenlet munkalapon a következő egyenletrendszert az inverz mátrixos módszer segítségével! Lépések:

Polinomok, Lagrange interpoláció

MATLAB alapismeretek III.

15. LINEÁRIS EGYENLETRENDSZEREK

Hamming-kód. Definíció. Az 1-hibajavító, perfekt lineáris kódot Hamming-kódnak nevezzük. F 2 fölötti vektorokkal foglalkozunk.

10. Előadás. Megyesi László: Lineáris algebra, oldal. 10. előadás Sajátérték, Kvadaratikus alak

Vektorok, mátrixok, lineáris egyenletrendszerek

MÁTRIXFÜGGVÉNYEK, SAJÁT FÜGGVÉNYEK, GRAFIKA

Lineáris Algebra GEMAN 203-B. A három dimenziós tér vektorai, egyenesei, síkjai

Numerikus módszerek I. zárthelyi dolgozat (2017/18. I., A. csoport) Megoldások

Java II. I A Java programozási nyelv alapelemei

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Gauss-eliminációval, Cholesky felbontás, QR felbontás

Feladat Nézzük meg a súgóban (help és doc) a sin parancs használatáról olvasható információt! Próbáljuk ki a kirajzoltató utasítást.

Excel Hivatkozások, függvények használata

MATLAB. 6. gyakorlat. Integrálás folytatás, gyakorlás

Statisztikai függvények

Kvadratikus alakok és euklideszi terek (előadásvázlat, október 5.) Maróti Miklós, Kátai-Urbán Kamilla

Excel Hivatkozások, függvények használata

Assembly programozás: 2. gyakorlat

Mátrixok és lineáris egyenletrendszerek

Függvények ábrázolása

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, mátrixegyenlet

Matlab alapok. Vektorok. Baran Ágnes

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

Feladatok a Gazdasági matematika II. tárgy gyakorlataihoz

MATLAB alapismeretek II.

Széchenyi István Egyetem. Műszaki számítások. Matlab 4. előadás. Elemi függvények és saját függvények. Dr. Szörényi Miklós, Dr.

Vektorterek. =a gyakorlatokon megoldásra ajánlott

MATLAB alapismeretek I.

Numerikus módszerek I. zárthelyi dolgozat, 2009/10. I. félév, A. csoport, MEGOLDÁSOK

6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján

Numerikus módszerek 1.

Bevezetés a MATLAB használatába

GPK M1 (BME) Interpoláció / 16

Norma Determináns, inverz Kondíciószám Direkt és inverz hibák Lin. egyenletrendszerek A Gauss-módszer. Lineáris algebra numerikus módszerei

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

Lineáris algebra és a rang fogalma (el adásvázlat, szeptember 29.) Maróti Miklós

Baran Ágnes. Gyakorlat Vektorok, mátrixok, lineáris egyenletrendszerek. Baran Ágnes Matematika Mérnököknek

Numerikus matematika

Feladat Nézzük meg a súgóban (help és doc) a sin parancs használatáról olvasható információt! Próbáljuk ki a kirajzoltató utasítást.

Baran Ágnes. Gyakorlat Komplex számok. Baran Ágnes Matematika Mérnököknek Gyakorlat 1 / 33

Lineáris egyenletrendszerek

3. el adás: Determinánsok

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

alakú számot normalizált lebegőpontos számnak nevezik, ha ,, és. ( : mantissza, : mantissza hossza, : karakterisztika) Jelölés: Gépi számhalmaz:

INFORMATIKA MATEMATIKAI ALAPJAI

Komputeralgebra rendszerek

y + a y + b y = r(x),

1 Lebegőpontos számábrázolás

MÁTRIXFÜGGVÉNYEK, SAJÁT FÜGGVÉNYEK, GRAFIKA 1.

Komputeralgebra rendszerek

Bevezetés a MATLAB programba

Egyenletek, egyenlőtlenségek VII.

Baran Ágnes. Gyakorlat Komplex számok. Baran Ágnes Matematika Mérnököknek Gyakorlat 1 / 16

VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag. Mátrix rangja

Atomerőművek üzemtanának fizikai alapjai. MATLAB használata

Mátrixok 2017 Mátrixok

9. Előadás. (9. előadás) Lineáris egyr.(3.), Sajátérték április / 35

NEMNUMERIKUS TÍPUSOK, MÁTRIXOK

Saj at ert ek-probl em ak febru ar 26.

4. Fejezet : Az egész számok (integer) ábrázolása

Determinánsok. A determináns fogalma olyan algebrai segédeszköz, amellyel. szolgáltat az előbbi kérdésekre, bár ez nem mindig hatékony.

Baran Ágnes. Gyakorlat Függvények, Matlab alapok

Hardver leíró nyelvek (HDL)

6. Függvények. 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban?

Numerikus matematika

Matematika szigorlat június 17. Neptun kód:

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

Átírás:

Számábrázolás A 0 kivételével a valós számok fölírhatók x = σ*b k *Σx n *B -n (1) alakban, ahol σ: elıjel B: alap k: exponens/kitevı/karakterisztika Σ: 1-tıl -ig Σ: mantissza 0 x n B-1 A gyakorlatban az (1)-beli szumma a technológiai korlátok következtében csak véges t értékig mehet, ami ábrázolási pontatlansághoz vezethet. Hibák fajtái: - öröklött: a bemenı adatok is hibával terheltek - képlet: számítás során elkövetett hiba - kerekítési: a gépi számok végességébıl adódó pontatlanság Számábrázolási módok 1. Fixpontos - exponens értéke rögzített - pl.: k = 0 esetén [0, 1]-beli számok ábrázolható segítségével 2. Binary Coded Decimals (BDC) - minden 10-es számrendszerbeli számjegyet bináris megfelelıjével kódol - pl. 73 0111 0011 3. Lebegıpontos - az ábrázható számok a 0-ra szimmetrikusak - egyszeres pontosság (4 byte) - exponens: 8 bit, mantissza: 24 bit - exponensen tárolható intervallum: [0, 255] - hogy a negatív exponenseket is tárolni tudjuk, az ábrázolt tartományt áttranszformáljuk a [-127, 128]-ba - a legkisebb és legnagyobb abszolútértékő ábrázolható értékek - r min = 2 min(exponens) * (1+min(mantissza)) = 2-127 * (1+0) = 2-127 10-38 - r max = 2 max(exponens) * (1+max(mantissza)) = 2 128 * (1+1-2 -23 ) 2 129-2 105 10 38 - dupla pontosság (8 byte) - exponens: 12 bit, mantissza: 52 bit - az ábrázolható tartomány az egyszeres pontosság analógiájára számítható - normalizált alakú számok: a mantissza elsı számjegye nemnulla - 2es számrendszer esetén a nemnulla érték szükségképpen 1, így annak ábrázolása nem hordozna információt implicitbit elhagyása - denormalizáltak a 0, NaN, + és - Példa: 162,625d lebegıpontos ábrázolásban 162,625 = 2 7 +2 5 +2 1 +2-1 +2-3 = 2 8 *(2-1 +2-3 +2-7 +2-9 +2-11 ) 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1

Matlab - elsı bit: elıjelbit (nemnegatív számok esetén 0, egyébként 1) - mantissza: (2-1 +2-3 +2-7 +2-9 +2-11 ) alapján, elıjelbitet elhagyva - exponens: (127+8)d = 135d = 10000111b Változók elnevezése: numerikus és alfabetikus karakterekkel. Elsı szimbólum szükségképpen alfabetikus; változónév maximális hossza: 63. Változókkal kapcsolatos utasítások clear (változónév 1, változónév 2, változónév n ): az argumentumban lévı változók törlése clear: az összes változót törli (kivéve az elıre definiáltakat) Elıre definiált változók: - eps: gépi pontosság - i, j: komplex számok képzetes része - pi: π Munkaterületrıl elérhetı változók kilistázása - who - whos: részletesebb információkat kaphatunk a változóinkról - save fajlnev: az aktuális munkamenet kimentése fajlnev.mat fájlba - load fajlnev: a fajlnev.mat fájlban lévı munkamenet betöltése Aritmetikai mőveletek: +, -, *, \, /, ^, - mátrixmőveletek esetén ezek. -tal való kombinációja:.*,.^,.,.\,./ o elemenkénti mőveletvégrehajtást tesz lehetıvé pl.: A=[3 2; -3 4]; >> B = A*A %% ans = [3 14; -21 10] >> B = A.*A %% ans = [9 4; 9 16] Beépített függvények: sqrt, sin, cos, tan, sum, exp, lu, Számítások során fölhasznált CPU-idı mérése: tic és toc utasításpár segítségével Segítség kérése: help függvénynév formában Mátrix elemeinek indexelése - az indexek 1-tıl kezdıdnek - elemek elérése: () segítségével Példa: %3x3-as A mátrix definiálása >> A = [1 2 3; 4, 5, 6; 7 8 9]; >> A(2,3) = 10 %A mátrix 2. sorának 3. elemének 10-re állítása; ans = [1 2 3; 4, 5, 10; 7 8 9] >> A(2,3) %A mátrix 2. sorának 3. eleme; ans = 10 >> A (5,5) = -3 %A mátrix 5. sorának 5. eleme -3 lesz; nem jelent gondot, hogy megelızıen ennél kisebb volt A

>> A(6,6) %lekérdezéskor túlindexelés esetén hibát kapunk >> A(2:4) %A mátrix 2-4. sorának kezdı elemeit kapjuk ans = [4 7 0] >> A(2:4, :) % A mátrix 2-4. sorait kapjuk vissza >> A(2:4, 3:5) % A mátrix 2-4. sorainak 3-5. oszlopában lévı elemeit adja vissza ans = [10 0 0; 9 0 0; 0 0 0] >> A(1:2:size(A,1), 1:2:size(A,2)) %A mátrix páratlan indexő sorainak páratlan indexő oszlopaiban lévı elemekbıl képzett mátrix; ans = [1 7 0; 3 9 0; 0 0-3] Gyakorlat: Generáljunk 3x4-es véletlen mátrixot -10 és +10 közé esı egész elemekkel! % rand() [0,1]-beli egyenletes eloszlású pszeudorandomszámokat generál >> R = rand(3, 4) % így már -10 és + 10 között vagyunk, csak épp nem egészek az elemek >> R = -10 + 20 * R %különféle kerekítéseket kipróbálva >> round(r) >> ceil(r) >> floor(r) >> fix(r) Feladat: A mártix 3. sorának véletlenszerően kiválasztott oszlopaiból állítsunk elı s oszlopmátrixot! >> rv = logical(round(rand(1, size(a,2)))) %% ceil vagy rand függvény használata nem lenne célravezetı >> s = A(3, rv) %% rv vektor 1-eseinek helyén lévı oszlopok kiválasztása a 3. sorból >> s = s %%transzponáljuk s-t, hogy oszlopvektort kapjunk Vektorok/Mátrixok további létrehozási lehetıségei >> v = a : b; %% [a, b]-beli egészeket tartalmazó sorvektort kapunk >> v = a : h : b %% [a, b]-beli értékekbıl álló sorvektort kapunk, amelynek i-edik eleme az i-1-diknél minden esetben h-val nagyobb o pl.: v = 10 : -0.3 : 9 %%ans = v = [10, 9.7, 9.4, 9.1] >> v = linspace(a, b, n) %%[a,b]-beli értékek közül n darabot választ, hogy minden i~=j-re v i - v j = (b-a)/(n-1) >> ones(n, m) %% n-szer m-es csupa 1-esekbıl álló mátrixot hoz létre >> zeros(n, m) %% n-szer m-es csupa 0 álló mátrixot hoz létre >> E = eye(n, m) %% n-szer m-es mátrixot hoz létre, melynek csupán az e ii elemei 1-esek >> rand(n,m) %% n-szer m-es mátrixot hoz létre, melynek elemei [0,1]-beli egyenletes eloszlást követı valósok >> diag(v) %% diagonális mátrixot hoz létre, melynek fıátlójában v vektor elemei szerepelnek >> S = sparse(x,y,v) %% ritka mátrixot hoz létre, ami csupán az x i -edik sorok y i -edik pozícióin vesz föl 0-tól különbözı, v i értékeket - full(s) %% teljes S mátrix kiíratása >> B = [linspace(1, 5, 6); 5:-0.2:4;sin(pi), 1:5] %%az eddigiek kombinálása

Vektorok mint polinomok A vektorokat értelmezhetjük, mint egy polinom csökkenı hatványkitevıjő változójához tartozó együtthatóinak sorozatát. Pl. a p(x) = 4x 2 + x 3 +12 = 1x 3 4x 2 + 0x 1 +12x 0 polinomnak megfeleltethetı vektor a p = [1-4 0 12]. Polinomokkal Matlabban végezhetı mőveletek >> p = [1-4 0 12]; >> polyval(p, 5) %% p polinom 5-ben vett helyettesítési értékét adja meg >> r = roots(p) %% p polinom gyökeit határozza meg >> q = poly(r) %% meghatározza azon p polinomot, melynek gyöke r >> conv(p, q) %% p polinom szorozva q polinommal ans = 1.0000, - 8.0000, 16.0000, 24.0000, -96.0000, -0.0000, 144.0000 >>deconv([1 0 0-1], [1-1]); %% x 3-1 polinom és x-1 hányadosa m. fájlok Matlab utasításaink sorozatát.m végzıdéső szöveges fájlba menthetjük. Amennyiben fájlunk a function visszatérési_érték(ek) = függvénynév(argumentum_lista) sorral kezdıdik, majd azt függvénynév.m néven mentjük el, úgy egy a késıbbiekben Matlab munkamenetbıl is meghívható függvényt készítettünk. A függvényben használt változók lokálisak. Abban az esetben, ha.m fájlunk elsı sorának felépítése nem igazodik az elıbb leírtakhoz, úgy egyszerően végrehajtandó parancsok sorozatát definiálhatjuk.m fájlunkban. Ebben az esetben a mőveletek az aktuális munkamenet változóin hajtódnak végre, értékük módosítása hatással lesz a továbbiakra is. Mindkét típusú.m fájlra találtok mintát a honlapon: a függvénytípusúra a fibonacci sorozat n-edik tagját kiszámítók (fiborec.m, fibo.m, fastfibo.m), a nem függvényt definiáló fájlra pedig a selectrows.m. Vezérlési szerkezetek: - if - while -for -break: segítségével kiléphetünk egy ciklusmagból A vezérlési szerkezetekre példát a honlapon lévı.m-fájlokban találhattok. Az if, while és a for utasításokban egyaránt közös, hogy azokat az end kulcsszóval kell lezárni. Feltételes kifejezések: - Pl.: x<=8 - Használható operátorok: ~(tagadás), & (logikai és), (logikai vagy), <, >, <=, >=, == Függvények ábrázolása - plot(x, y, kirajzolás_módja ) o x: a kiértékelési pontokat tartalmazó vektor o y: a függvény x i pontokban vett kiértékelési értéke

o kirajzolás_módja sztringgel határozhatjuk meg a megjelenítés egyes paramétereit, mint pl. az egyenes típusa, vagy színe g* hatására pl. zöld színő csillagok jelzik majd az ábrázolt függvényt - fplot( fuggvenynev, [a b]) o hatására fuggvenynev függvény megjelenik [a b] intervallumon ábrázolva (alapértelmezés szerint 25 pontban történı kiértékelés alapján) - grid o az utasítás kiadásával berácsozhatjuk a megjelenített grafikon hátterét - Példa: a honlapon multiplot.m néven futó fájlban látható o szerepel benne a subplot utasítás, ami hatására egy ablakban több függvény is külön-külön ábrázolható o a példában a plot utasítás harmadik argumentumaként megfigyelhetı a kirajzolás módjának módosítási lehetıségei PLUSZPONT szerzési lehetıség (csoportonként az elsı 5 helyes beküldınek): A honlapról letölthetı selectrows.m fájl a munkamenetben létrehozott M mátrix soraiból választ ki véletlenszerően sorokat 500 alkalommal, majd a konzolon megjeleníti az egy alkalommal átlagosan kiválasztott sorok számát. Feladat: 1) Válaszold meg, hogy a rand() függvénnyel egyenletesen generált véletlen számok ellenére miért 0 mégis az átlagosan kiválasztott sorok száma! (Gyakorlaton is elhangzott) 2) A selectrows.m egyetlen sorának módosításával érd el, hogy az M mátrixból véletlenszerően kiválasztott sorok száma M összes sorának 20%-a legyen (vagyis egy 1000*1000-es M mátrixból átlagosan 200 sor kerüljön kiválasztásra)! 3) Az elıbbiekben módosított sor megváltoztatása, hogy az mind a négy MATLAB-os kerekítési eljárás használata mellett hasonlóan viselkedjen (ti. sorok 20%-át választja ki)! A megoldások (amik az 1) kérdésre adott válaszból és 2) és 3) pontokban leírtakat megvalósító sorokból állnak) a következı gyakorlatig küldhetitek be, EHA-kód, név és a gyakorlatotok idıpontjának társaságában. Lineáris egyenletrendszerek megoldása és LU-felbontás Általános alak: Ax = b Példa: 2x1 x2 + 2x3 = 6 4x1 x2 +6x3 = 20 6x1 7x2 + 8x3 = 16 Ebben az esetben A = [2-1 2; 4-1 6; 6-7 8] és b = [6; 20; 16]. Az elsı sor -2-szeresének, ill. -3-szorosának a második, ill. harmadik sorhoz való hozzáadása az elsı oszlop fıátlója alatti elemeinek kinullázódását eredményezi. A mővelethez tartozó eliminációs mátrix:

1 0 0 M 1 = -2 1 0-3 0 1 2-1 2 M 1 *A = 0 1 2 0-4 2 A következı (második) oszlop fıátló alatti elemei az M2 eliminációs mátrixszal tehetık nullává. 1 0 0 M 2 = 0 1 0 0 4 1 2-1 2 M 2 *M 1 *A = 0 1 2 0 0 10 M 2 *M 1 *A már felsı trianguláris mátrix, azaz M 2 *M 1 *A = U. Az egyenlıséget balról (M 2 *M 1 ) inverzével szorozva A = (M 2 *M 1 ) -1 *U = M 1-1 *M 2-1 *U = L*U-t kapjuk. Az eliminációs mátrixok jó tulajdonságait kihasználva: 1 0 0 1 0 0 1 0 0 L = M -1 1 * M -1 2 = 2 1 0 * 0 1 0 = 2 1 0 3 0 1 0-4 1 3-4 1 A = L*U t behelyettesítve Ax = b-be, L*U*x = b adódik. Bevezetve y mesterséges változót, elıször L*y = b-t, majd U*x = y-t megoldva megkapjuk az eredeti egyenlıségrendszer x megoldását. 1. lépés 2. lépés 1*y 1 + 0*y 2 + 0*y 3 = 6 y 1 = 6 2*y 1 + 1*y 2 + 0*y 3 = 20 y 2 = 8 3*y 1-4*y 2 + 1*y 3 = 16 y 3 = 30 6 y = 8 30 2*x 1-1*x 2 + 2*x 3 = 6 x 1 = 1 0*x 1 + 1*x 2 + 2*x 3 = 8 x 2 = 2 0*x 1 + 0*x 2 + 10*x 3 = 30 x 3 = 3 Vegyük észre, hogy az elsı lépés után adódó y = [6 8 30] T megoldásvektor megkapható az egyenletrendszer kezdeti jobboldalának vektorából is (b), az együtthatómátrixon elvégzett átalakításokat végrehajtva rajta y = M 2 *M 1 *b vektorral.