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.

Hasonló dokumentumok
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.

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

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

NEMNUMERIKUS TÍPUSOK, MÁTRIXOK

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

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

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

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

Ismerkedés a Matlabbal

Komputeralgebra rendszerek

Komputeralgebra rendszerek

NEMNUMERIKUS TÍPUSOK, MÁTRIXOK

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

M-Fájlok létrehozása MATLAB-ban

EGYSZERŰ SZÁMÍTÁSOK TÁBLÁZATKEZELÉS ELINDULÁS SZE INFORMATIKAI KÉPZÉS 1

A PiFast program használata. Nagy Lajos

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Komputeralgebra Rendszerek

Matlab 1. előadás. Ismerkedés, környezet, adattípusok. Dr. Szörényi Miklós, Dr. Kallós Gábor

Bevezetés a MATLAB programba

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

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Numerikus matematika

Baran Ágnes. Gyakorlat Halmazok, függvények, Matlab alapok. Baran Ágnes Matematika Mérnököknek Gyakorlat 1 / 34

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

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

A C# programozási nyelv alapjai

Mérnöki programozás 8. Szerkesztette: dr. Vass Péter Tamás

BASH script programozás II. Vezérlési szerkezetek

1. Előadás Matlab lényeges vonásai,

SZÁMÍTÁSOK A TÁBLÁZATBAN

Java II. I A Java programozási nyelv alapelemei

MATLAB alapismeretek I.

Raszteres elemzés végrehajtása QGIS GRASS moduljával 1.7 dr. Siki Zoltán

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

Maple: Bevezetés. A Maple alapjai

Szoftvertervezés és -fejlesztés I.

A MATLAB PROGRAMOZÁSA

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

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

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;

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

Kiegészítő előadás. Matlab 7. (Szimbolikus számítások) Dr. Szörényi Miklós, Dr. Kallós Gábor. Széchenyi István Egyetem

Forráskód formázási szabályok

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

Máté: Számítógép architektúrák

Matematikai alapok. Dr. Iványi Péter

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

Készítette: Nagy Tibor István

Kifejezések. Kozsik Tamás. December 11, 2016

Matlab alapok. Vektorok. Baran Ágnes

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Matematikai alapok. Dr. Iványi Péter

Webprogramozás szakkör

>> x1 = linspace( ); plot(x1,sin(x1),'linewidth',1,'color',[1 0 0]);

Numerikus matematika

Táblázatkezelés 2. előadás. Alapok (folyt.)

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

Készítette: Nagy Tibor István

Informatika terméktervezőknek

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

A legfontosabb DOS parancsok

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Lekérdezések az SQL SELECT utasítással

AWK programozás, minták, vezérlési szerkezetek

Matematikai programok

MATLAB alapismeretek III.

Bevezetés a MATLAB használatába

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:

Grafikus felhasználói felület (GUI) létrehozása A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása

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

FUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET

cím létrehozása

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

S z á m í t ó g é p e s a l a p i s m e r e t e k

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Pénzügyi algoritmusok

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

AWK programozás, minták, vezérlési szerkezetek

Assembly programozás: 2. gyakorlat

A C programozási nyelv I. Bevezetés

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

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 C programozási nyelv I. Bevezetés

Programozás I. C# bevezető. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 17.

Digitális technika (VIMIAA02) Laboratórium 1

C# gyorstalpaló. Készítette: Major Péter

Digitális technika (VIMIAA02) Laboratórium 1

5. Gyakorlat. struct diak {

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Angol szótár V

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Kalkulus. Komplex számok

A feladat megoldása során a Microsoft Office Excel használata a javasolt. Ebben a feladatban a következőket fogjuk gyakorolni:

Programozás I. gyakorlat

% % MATLAB alapozó % % , Földváry Lóránt % Laky Piroska (kiegészítés)

Átírás:

1 1. GYAKORLAT A MATLAB ALAPJAI KÖRNYEZET, SÚGÓ A D:\ meghajtón hozzuk létre a munka könyvtárat, majd indítsuk el a ot! A program betöltődése után felbukkan a parancsablak az ún. prompttal: >> A prompt után írhatjuk be az utasításokat. Az alábbiakban bemutatott, vastagbetűs és piros parancsokat rögtön próbáljuk ki a gépen, és jegyezzük fel a tapasztalatokat. Ismerkedjünk meg a súgó rendszerrel (help, illetve helpwin vagy doc parancs)! Bármely utasításról angol nyelvű információt nyerhetünk, ha a help szó után beírjuk az adott utasítás nevét. Így még a help parancs használatáról is kaphatunk eligazítást: >> help help >> doc 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. A demo parancs segítségével indíthatjuk el a beépített oktató, illetve demonstrációs célokat szolgáló programjait. A ból kilépni a quit vagy az exit parancs beírásával lehet: >> quit A parancsablakban beállításokat is végezhetünk: >> cd D:\munka % munkakönyvtár >> diary on % naplózás be Az utóbbi beállítás hatására az aktuális könyvtárban a parancsablakba bekerülő információk naplózódnak (parancsok, válaszok, hibaüzenetek, stb.). >> diary off A parancs kikapcsolja a naplózást, és a lezárt naplófájl elvihetjük emlékbe.

2 Ha órai munkánkat meg szeretnénk őrizni, akkor javasolt, hogy a diary on beállítást használjuk az óra végéig. >> sqrt(2) 1.4142 Az sqrt(x) az x szám négyzetgyökét számítja. Az ans (ANSwer) a egy speciális, beépített változója. Értéke mindig a legutolsó parancs végrehajtásakor keletkezett eredmény. A kiírás formátumát a >> format short % ez a default formátum >> format long >> format short e >> format long e parancsokkal szabályozhatjuk. A MATLAB MINT SZÁMOLÓGÉP, EGYSZERŰ KIFEJEZÉSEK A programrendszer segítségével különböző matematikai számításokat egyszerűen elvégezhetünk. Használni fogjuk a nevezetes konstansokat: pi = 3.14159265358979 e = 2.718281828459046 % Vigyázat, így a rendszer nem ismeri! Melyik paranccsal tudjuk előállítani az e konstans értékét? Állítsuk elő az e 2 értékét két különböző módon is! (Pontosan ugyanazt az eredményt adja a két előállítás?) Próbáljuk ki a különböző formátumokat (format) a pi és az e számokon! A továbbiakban használjunk mindig a konkrét feladatnak megfelelő format formátumot. Szintén beépített változóként használható: j, i % sqrt(-1) Az i és j változók definíciójából látszik, hogy a komplex számokat is képes kezelni. Például: >> sqrt(-9) + 3 3.0000 + 3.0000i

3 Most lássunk egy értékadó utasítást. FIGYELEM! A különbséget tesz nagy- és kisbetűk között! >> a = 5 a = 5 Ha nem szeretnénk, hogy a minden utasítás végrehajtása után beszámoljon az eredményről, akkor az utasítás után tegyünk pontosvesszőt. Egy változó értékét egyszerűen lekérdezhetjük nevének begépelésével (persze üssünk Entert). Az előadás fóliák esetleges felhasználásával próbáljuk ki, hogy milyen változóneveket használhatunk a ban! (Vizsgáljuk meg, hogy változónév kezdődhet-e számjeggyel, tartalmazhat-e magyar ékezetes betűt stb.) Mi történik akkor, ha nem írunk változónevet egy kifejezés (vagy egy konstans) elé? Egy sorba több parancsot is írhatunk. Adjunk ki két utasítást úgy, hogy az első végrehajtását ne jelezze ki a rendszer! A ban lehetőség van a mínusz és plusz végtelen (-Inf, Inf) használatára. Ha egy művelet a számára (számként) értelmezhetetlen, akkor az eredmény NaN (Not a Number). Például >> 6/0 Warning: Divide by zero Inf >> Inf/Inf NaN Mi lesz a következő műveletek eredménye: Inf + Inf, 3*Inf, -4*Inf, 0/100, 2/0, -2/0, Inf Inf, NaN + Inf, NaN*Inf, NaN NaN? A tényleges kipróbálás előtt írjuk le a füzetünkbe a várható eredményt! Próbáljuk ki: elfogadja a rendszer az Inf és NaN számokat kisbetűvel is? Helyes a nan alak is? (És a Nan?) Tudjuk, hogy a rendszerben egyszerű kifejezések összeállíthatók és kiértékelhetők az aritmetikai műveletek és az alapvető függvények felhasználásával (megfelelő zárójelezéssel). Idézzük fel a precendenciáról az előadásokon tanultakat, szükség esetén nézzük meg a súgót.

4 ok Mi lesz a következő kifejezések eredménye a ban: -2^3, 3^2 (5 + 4)/2 + 6*3, cos(0), cos(pi/4), 2*ans, a^b Írassuk ki a bal a koszinusz-hiperbolikusz függvény értékét a 0,1 helyen! Írassuk ki a bal az arkusztangens függvény értékét a 0,5 helyen! Találunk-e felesleges zárójeleket a következő kifejezésekben: 2^(3^4), 2^(-3) Nézzük meg a műveletek precedenciáját a ban! (Súgó) Próbáljuk ki a következő példákat is: log(exp(3)), sin(2*pi/3) Utóbbi esetben pontos (szimbolikus) eredményt kapunk, ha a >> sin(sym('2*pi/3')) parancsot adjuk ki. A 2709/1024, 10583/4000 és 2024/765 törtek mind a gyök(7) közelítései. Melyik a legjobb közülük? (Milyen közelítési pontosság érhető el?) EGÉSZ ÉS VALÓS ADATTÍPUSOK A alapértelmezésben double adattípust használ. Tudjuk azonban, hogy módosító utasításokkal (típuskényszerítés) további egész és lebegőpontos típusok is használhatók. Az adattípusok és korlátaik: A táblázatban szereplő parancsok az értékhatárok lekérdezéséhez felhasználhatók. >> a = int8(6) % int8 típusú változó létrehozása

5 A természetesen fejben tartja az összes létrehozott változót, de mi erre nem biztos, hogy képesek vagyunk. A who illetve a whos utasítások segítségével kilistáztathatjuk az összes használatban lévő változót. (A whos utasítás részletesebb listát ad.) Adott változó törlésére a clear változó_név, az összes változó törlésére pedig a clear utasítás szolgál. A parancsok joker jelekkel is használhatók. >> whos a* A változók egyes jellemzőit (méret, típus) külön is lekérdezhetjük a size és a class parancsokkal. Ha egy általunk megadott szám nem tárolható a választott típus értéktartományában, akkor a automatikus konverziót hajt végre. >> b = int8(-12.34) >> c = uint8(-12.34) >> d = int16(b) Műveletek csak akkor végezhetők két számértékű kifejezés között, ha azonos típusúak, vagy az egyikük double. Az eredmény típusa a double-től különböző típus, vagy double. >> b + c % meglepő! >> b + pi % elvégezhető, de az eredmény int8 használata nélkül mondjuk meg, hogy elvégezhetők-e a következő műveletek (a fenti megadásokkal), ill. milyen típusú lesz a következő kifejezések eredménye: a + b, b + c, b + d, c + d, c + pi, d + pi, c + exp(1) Ellenőrizzük a megadott válaszokat a bal! Hajtsuk végre a feladatot úgy is, hogy az eredmény értékét is megmondjuk előre, majd ellenőrizzük a bal! Típuskényszerítéssel érjük el, hogy egy fenti el nem végezhető művelet most már elvégezhető legyen. A ban a túlcsordulás kezelése eltér a megszokottól. >> f = uint8(255) >> f = intmax('uint8') % ekvivalens művelet >> f + 1 %!!! >> g = intmin('uint16') % ugyanígy >> g - 1

6 használata nélkül mondjuk meg, hogy a következő műveleteknél történik-e túlcsordulás (ill. mennyi lesz a műveletek eredménye): x1 = int8(100), x1 + x1, x1 x1 x2 = uint8(150), x2 + x2, x2 x2 x3 = int16(17000), x3+x3, x3 x3 x4 = int8(64), x4 + x4, x4 x4 Ellenőrizzük a megadott válaszokat a bal! Írassuk ki a megfelelő parancs segítségével - a legnagyobb ábrázolható 8 bites előjeles egészet - a legnagyobb ábrázolható 16 bites előjel nélküli egészet - a legkisebb ábrázolható 16 bites előjeles egészet - a legnagyobb ábrázolható double típusú számot - a legkisebb ábrázolható double típusú számot! (Hogyan tudjuk ellenőrizni, hogy az utolsó két válaszunk valóban megfelelő?) A fentiekhez hasonló módon történik más műveletek végrehajtása is. Az eredmény itt is eltérhet attól, amit várnánk. >> h = uint8(2)/3 >> h = uint8(2)/uint8(3) % ekvivalens megadás >> k = uint8(3)/2 >> k = uint8(3)/uint8(2) % ekvivalens megadás használata nélkül mondjuk meg, hogy mennyi lesz a műveletek eredménye: k = uint8(5)/uint8(3), k = uint8(5)/uint8(4) Ellenőrizzük a megadott válaszokat a bal! PONTOSSÁG, HASONLÍTÁSOK Numerikus rendszerekben fontos kérdés az, hogy milyen pontosságot várhatunk el egy utasítássorozat (pl. script) végrehajtása során. A következő példában egy single pi változót hozunk létre, és összehasonlítjuk a pi beépített (double) konstanssal. >> s_pi = single(pi) >> s_pi == pi % sima = az értékadás >> kulonbs = pi - s_pi % eltérés >> pi > s_pi % kerekítés miatt a single a nagyobb >> class(kulonbs)

7 ok Melyik a nagyobb, e 14 vagy 382801π? Írassuk ki a választ a segítségével! Ellenőrizzük az előadáson bemutatott példát a gép epszilonról! (Eml.: eps, 1 + eps, 1 + eps/2, 1 + eps/2 == 1, eps/2 == 0 parancsok.) Értelmezzük a lépéseket! ÖNÁLLÓ GYAKORLÁS Futtassuk le az 1. előadás parancsait darabonként, a parancsok_1.m felhasználásával! (Ízelítő, adattípusok, hasonlítások.) Írassunk ki minél több különböző hibaüzenetet! ( Megfelelően hibás parancsokkal.) Pl.:??? Error: The input character is not valid in MATLAB statements or expressions.??? Undefined function or variable ' '.??? Error: Expression or statement is incomplete or incorrect.??? Undefined function or method ' ' for input arguments of type 'double'. OTTHONI MUNKA 1. Gépeljük be egymás után az alábbi utasításokat. Mit ír ki a? >> u=[-4,6,8,10] >> v=[-2,3,4,5] >> min(u) >> u+v >> diff=u-v, max(diff) >> u./v % osztás elemenként >> a=[1 2 3; 4 5 6; 7 8 9] >> b=max(a) >> c=a' >> sin(b), sin(a) >> diag(a) >> eig(a) >> inv(c) 2. Ismerkedjünk meg az isinf, az isfinite és az isnan függvények használatával! (Súgó.) 3. Az általunk megismert eps valójában az eps(1) érték. Hogyan tudjuk értelmezni az eps(2) számot? *4. Állítsuk elő az 1/10 mellett néhány további szám normalizált lebegőpontos alakját is (lásd előadás). Végezzünk a számokkal egyszerű műveleteket, és ellenőrizzük az eredményeket. Dr. Szörényi Miklós, dr. Kallós Gábor (Széchenyi István Egyetem), 2015. Minden jog fenntartva