Bevezetés a MATLAB programba Gerardo Rodriguez Universidad de Salamanca

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

MATLAB alapismeretek I.

Bevezetés a MATLAB programba

MATLAB alapismeretek III.

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

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

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

MATLAB alapismeretek II.

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

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

Matlab alapok. Baran Ágnes

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

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

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

Matematikai programok

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

Matlab alapok. Vektorok. Baran Ágnes

Matematikai programok

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

Függvények ábrázolása

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.

1. Alapok. #!/bin/bash

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.

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

Numerikus matematika

MATLAB/OCTAVE/ ALAPOZÓ 1

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

A DERIVE kezelése. 1. A DERIVE ablaka. Amikor elindítod a DERIVE-ot ez az ablak jelenik meg:

Matlab alapok. Baran Ágnes. Grafika. Baran Ágnes Matlab alapok Grafika 1 / 21

Az egyenlőtlenség mindkét oldalát szorozzuk meg 4 16-al:

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

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

Gauss elimináció, LU felbontás

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

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

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

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

First Prev Next Last Go Back Full Screen Close Quit. Matematika I

Mátrixok és lineáris egyenletrendszerek

Követelmények, Matlab alapok 1.

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

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

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

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

Feladatok megoldásokkal a 9. gyakorlathoz (Newton-Leibniz formula, közelítő integrálás, az integrálszámítás alkalmazásai 1.

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

Maple: Deriváltak és a függvény nevezetes pontjai

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

Gyakorló feladatok 9.évf. halmaznak, írd fel az öt elemű részhalmazokat!. Add meg a következő halmazokat és ábrázold Venn-diagrammal:

First Prev Next Last Go Back Full Screen Close Quit

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

Bevezetés a MATLAB használatába

Numerikus integrálás

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

Informatika terméktervezőknek

Baran Ágnes, Burai Pál, Noszály Csaba. Gyakorlat Differenciálegyenletek numerikus megoldása

Ismerkedés a Matlabbal

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

I. VEKTOROK, MÁTRIXOK

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

BASH SCRIPT SHELL JEGYZETEK

Az MS Excel táblázatkezelés modul részletes tematika listája

O ( 0, 0, 0 ) A ( 4, 0, 0 ) B ( 4, 3, 0 ) C ( 0, 3, 0 ) D ( 4, 0, 5 ) E ( 4, 3, 5 ) F ( 0, 3, 5 ) G ( 0, 0, 5 )

SCILAB programcsomag segítségével

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

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

Valasek Gábor

Szélsőérték-számítás

NEMNUMERIKUS TÍPUSOK, MÁTRIXOK

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Vektorgeometria (1) First Prev Next Last Go Back Full Screen Close Quit

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

Jelek és rendszerek Gyakorlat_02. A gyakorlat célja megismerkedni a MATLAB Simulink mőködésével, filozófiájával.

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

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

Annak a function-nak a neve, amiben letároltuk az egyenletünket.

az Excel for Windows programban

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

λ 1 u 1 + λ 2 v 1 + λ 3 w 1 = 0 λ 1 u 2 + λ 2 v 2 + λ 3 w 2 = 0 λ 1 u 3 + λ 2 v 3 + λ 3 w 3 = 0

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

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

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

Első zárthelyi dolgozat megoldásai biomatematikából * A verzió

Matematika (mesterképzés)

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

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

MATEMATIKA TANMENET SZAKKÖZÉPISKOLA 9.A, 9.D. OSZTÁLY HETI 4 ÓRA 37 HÉT ÖSSZ: 148 ÓRA

Dinamikus modellek szerkezete, SDG modellek

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

Lineáris egyenletrendszerek

MATLAB alapismeretek IV. Eredmények grafikus megjelenítése: vonalgrafikonok

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Analízisfeladat-gyűjtemény IV.

Matematika A1a Analízis

4. modul - Táblázatkezelés

SZÁMÍTÓGÉPES ADATFELDOLGOZÁS

C programozási nyelv Pointerek, tömbök, pointer aritmetika

INFORMATIKA tétel 2019

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

Átírás:

Bevezetés a MATLAB programba Gerardo Rodriguez Universidad de Salamanca MATLAB (MÁTrix LABoratórium) egy interaktív program rendszer numerikus számításokra,és numerikus grafikára. Ahogy a név sugallja, a MATLAB elsősorban mátrix számításokhoz van tervezve; lineáris egyenletek megoldására, mátrixok létrehozására, és így tovább. Továbbá változatos grafikai képességek továbbfejleszthetők olyan programokkal,amik a saját programnyelvében lettek megírva. MATLAB a MATLAB nyelvben íródott.a legegyszerűbb mód végrehajtani a kódot, amit egy konzolba beírtunk.,>>, a Command Window (parancs ablakba) az egyik elem a MATLAB Asztal. Parancsok sorozatát el tudja menteni egy szöveges dokumentumba, tipikusan a MATLAB editor használatával, ahogyan egy szkript, vagy egy betokosodás egy függvénybe, a parancsok kibővítése lehetséges. A következő részekben bemutatásra kerül néhány hasznos képessége a MATLAB nak több példával. A legjobb mód megtanulni, használni a MATLAB ot, hogy: olvasás közben használjuk és próbálgatjuk a példákat. Vektorok és Mátrixok megadása. Az alap adattípus a MATLAB-ban az n dimenzionális sor duplapontosságú számokkal. Az új adattipus tartalmazza a struktúrákat, osztályokat és a (cell array) cella sorokat, amikben a sorok különböző adattipussal rendelkezhetnek. A következő parancsok megmutatják, hogy adjunk meg számokat, vektorokat és változókat >> a = 2 //scalar Enter leütése után ezt kell látnia: a = 2 >> x = [1;2;3] //Vector Nyomj Entert, x = 1 2 3 >> A = [1 2 3;4 5 6;7 8 0] //Matrix Nyomj entert, A = 1 2 3 4 5 6 7 8 0 Észrevehettük, hogy a mátrix sorai el vannak különítve pontosvesszőkkel, amíg az oszlopok space szel vannak elválasztva. Hasznos parancs a whos, ami megmutatja az összes deklarált változó nevét és típusát: >> whos Name Size Bytes Class A 3x3 72 double array

a 1x1 8 double array x 3x1 24 double array Grand total is 13 elements using 104 bytes Jegyezzük meg, hogy a szereplő 3 változó mindegyike egy-egy sorban van,az alakja a sor - nak határozottan pontos típus. A skaláris a egy 1x1 es sor, a vektor x egy 3x1 es sor, és a mátrix A egy 3x3 as sor(lásd size rész minden változónál). Egy mód megadni egy n dimenziós sort (n>2), összefűzni kettő vagy több (n-1)-dimenziós sort használva a cat parancsot. Példának a következő parancs összefűz kettő 3x2 es sort, hogy létrejöjjön egy 3x2x2 es sor: >> C = cat(3,[1,2;3,4;5,6],[7,8;9,10;11,12]) C(:,:,1) = 1 2 3 4 5 6 C(:,:,2) = 7 8 9 10 11 12 >> whos Name Size Bytes Class A 3x3 72 double array C 3x2x2 96 double array a 1x1 8 double array x 3x1 24 double array Grand total is 25 elements using 200 bytes Jegyezzük meg hogy a 3 as argumentum a cat parancs sorában, jelzi, hogy az összefűzés előfordul hosszában a harmadik dimenzió.((???)) Ha D és E k x m x n es sorok,akkor a parancs: >> cat(4,d,e) Akkor k x m x n x 2 es sor fog létrejönni ( kipróbálható ). MATLAB megengedi a soroknak, hogy komplex elemei legyenek. A komplex elem kifejezni akármelyik beépített változót i vagy j: >> sqrt(-1) 0 + 1.0000i Ez a példa megmutatja, milyen komplex számokat tud meg jeleníteni a MATLAB ban; ez azt is megmutatja, hogy a négyzetgyök egy beépített funkció. Az eredménye az utolsó számításnak nincs átadva a változónak, hogy automatikusan átadja az ans változót lehet használni, mint bármilyen más változót a későbbi számításokban. Íme egy példa : >> 100^2-4*2*3 //Press enter 9976 >> sqrt(ans) //Press enter

99.8799 >> (-100+ans)/4 //Press enter -0.0300 Az aritmetikai operátorok működnek,ahogy reméltük skalárokkal. A beépített változó, ami gyakran hasznos pi : >> pi //Press enter 3.1416 Néhány egyszerű hasznos funkció, mint sine, cosine, exponential és logarithm már előre el van készítve.példa: >> cos(.5)^2+sin(.5)^2 //Press enter 1 >> exp(1) //Press enter 2.7183 >> log(ans) //Press enter 1 Ha bármiféle kétségek akadnak a parancsokkal vagy függvényekkel kapcsolatban, egy kiterjedt online segítségnyújtó rendszer elérhető az alábbi paranccsal: help <parancs-neve>. Példa: >> help ans ANS The most recent answer. ANS is the variable created automatically when expressions are not assigned to anything else. ANSwer. >> help pi PI 3.1415926535897... PI = 4*atan(1) = imag(log(-1)) = 3.1415926535897... Érdemes a help help parancssal kezdeni, ami megmutatja,hogy hogy tud a help segíteni a rendszer működésén, ahogy a kapcsolódó parancsok is teszik. Ha önmagában beírjuk a help parancsot,akkor ki fog írni egy listát azokból a címszavakból, amikben a help tud segíteni; a listában megtalálhatjuk az elfun elementary math functions t. Beírva a help elfun parancsot ki fogja listázni a matematikai függvényeket nekünk. Aritmetikai műveletek mátrixokon. MATLAB tud egyszerű aritmetikai műveleteket végrehajtani mátrixokon vektorokon és skalárokon: összeadás, kivonás, szorzás. Továbbá a MATLAB definiálja a mátrixok osztását csakúgy, mint a vektoriális műveleteket. A vektoriális műveleteket(összeadás, kivonás, és skalárral való szorzás) akár n dimenziós sorszámmal bármilyen n értékkel kivéve a szorzás és az osztás, ami korlátozva van a mátrixokon és vektorokon (n=<2). Egyszerű műveletek. Hogyha A és B sorok, akkor MATLAB képes kiszámolni A+B és A-B ket,amikor ezek a műveletek definiálva vannak. Például:

>> A = [1 2 3;4 5 6;7 8 9]; >> B = [1 1 1;2 2 2;3 3 3]; >> C = [1 2;3 4;5 6]; >> whos Name Size Bytes Class A 3x3 72 double array B 3x3 72 double array C 3x2 48 double array Grand total is 24 elements using 192 bytes >> A+B 2 3 4 6 7 8 10 11 12 De,ha begépeljük : >> A+C??? Error using ==> + because Matrix dimensions must agree. Mátrix szorzás is definiálva van, mint: >> A*C 22 28 49 64 76 100 >> C*A??? Error using ==> * because Matrix dimensions must agree. Ha A egy négyzetes mátrix és m egy pozitív egész szám, akkor A^m a terméke m faktoriális A. Azonban nincs definiálva a szorzás több dimenziós sorok esetén: >> C = cat(3,[1 2;3 4],[5 6;7 8]) C(:,:,1) = 1 2 3 4 C(:,:,2) = 5 6 7 8 >> D = [1;2] D = 1 2 >> whos Name Size Bytes Class C 2x2x2 64 double array D 2x1 16 double array Grand total is 10 elements using 80 bytes >> C*D??? Error using ==> * No functional support for matrix inputs. Ugyanazzal a jellel, az exponenciális ^ jel csak 2 dimenziós mátrixokra van értelmezve.

Mátrix egyenletek megoldása mátrix osztással. Ha A egy négyzetes,vagy egység mátrix, akkor a megoldás Ax=b azaz beülteti ezt a műveletet a backslash operátorral:. MATLAB >> A = rand(3,3) A = 0.2190 0.6793 0.5194 0.0470 0.9347 0.8310 0.6789 0.3835 0.0346 >> b = rand(3,1) b = 0.0535 0.5297 0.6711 >> x = A\b x = -159.3380 314.8625-344.5078 Megjegyzés: használata a rand függvénynek létrehoz egy egyenletesen feltöltött mátrixok 0,1 értékkel feltöltve (lásd help rand több információkét) Az A\b (matematikailag) egyenlő b baloldali szorzása -nel (azonban MATLAB nem számítja ki a mátrix inverzét,helyette megoldja az egyenletrendszert közvetlenül). Amikor nem négyzetes mátrixnál használjuk akkor a backslash operátor megoldja a legkisebb alkalmas négyzetes részt; lásd a help slash -t részletekért. Természetesen, más aritmetikai operátorokkal, a mátrixoknak kompatibilis méterűnek kell lenniük. Az osztás operátor nincs definiálva n dimenziós sorokra n>2 esetén. Vektorizált függvények és operátorok. MATLAB nak sokféle parancsa van, amivel különleges mátrixokat lehet csinálni; a következő parancssor vektort készít, aminek az összetevői aritmetikailag növekednek: >> t = 1:5 t = 1 2 3 4 5 Az összetevők nem csak egységnyivel változhatnak: >> x = 0:.1:1 x = Columns 1 through 7 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 through 11 0.7000 0.8000 0.9000 1.0000 A linspace parancs-nak hasonló eredménye van. Ez létrehoz egy lineárisan elosztott vektort. Pl: linspace (a,b,n) létrehoz egy n hosszúságú a vektort

>> linspace(0,1,11) Columns 1 through 7 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 through 11 0.7000 0.8000 0.9000 1.0000 Van egy hasonló parancs, a logspace ami egy logaritmikusan elosztott vektort hoz létre: >> logspace(0,1,11) Columns 1 through 7 1.0000 1.2589 1.5849 1.9953 2.5119 3.1623 3.9811 Columns 8 through 11 5.0119 6.3096 7.9433 10.0000 Lásd help logspace részletekért A lineárisan elosztott vektor elemei figyelembe véve, mint egy egydimenziós cella, ami hasznos grafikai függvényekkel. Egy y=f(x) grafikon készítéséhez és sorszeletekkel való összekapcsolásához készít egy cellát az y és x vektorban, ami hasonló függvényértékekkel rendelkezik. Nagyon egyszerű létrehozni a szükséges vektorokat, hogy ábrázoljunk egy beépített függvényt, mivel MATLAB függvények vektorizáltak. Ez azt jelenti, hogy a beépített függvények olyanok, mint a sine ami hozzá van rendelve egy sorhoz,az eredménye új sor, ugyanazzal a mérettel, aminek a bejegyzései a függvény sorának eredeti bejegyzéseivel.(lásd Ábra 1): >> x = (0:.1:2*pi); >> y = sin(x); >> plot(x,y) Ábra 1: Graph of y = sin(x)

MATLAB rendelkezik vektorizált aritmetikai operátorokkal, amik ugyanazok, mint az eredeti operátorok,. -al megelőzhető. mint pl. >> x = (-5:.1:5); >> y = x./(1+x.^2); >> plot(x,y) Ábra 2 : Az egyezik minden x komponens és x./z oszt minden x komponenst, megegyezik z komponenssel. Összeadást és kivonást hajt végre a definíció szerint tehát nincs.+ vagy.- operátor. Megjegyzés : a különbség A^2 és A.^2. Az első van egyedül definiálva hogyha A egy négyzetes mátrix, amíg a második egy bármilyen n dimenziós sorhoz van definiálva. Különbféle parancsok. Egy fontos operátor MATLAB-ban az egyszerű jel, ami a konjukció műveletet jelenti: >> A = [1 2;3 4] A = 1 2 3 4 >> A' 1 3 2 4 >> B = A + i*.5*a B = 1.0000 + 0.5000i 2.0000 + 1.0000i

3.0000 + 1.5000i 4.0000 + 2.0000i >> B' 1.0000-0.5000i 3.0000-1.5000i 2.0000-1.0000i 4.0000-2.0000i (megjegyzés és. jelek egyenértékűek mátrixokon valós értékek esetén). A következő parancsok gyakran hasznosak. Több információt tudhatunk meg az on-line help rendszerből. Mátrixok létrehozása zeros(m,n) létrehoz egy m xn -es mátrixok csupa nulla értékekkel; ones (m,n) létrehoz egy m x n -es mátrixok csupa egy értékekkel; eye (n) létrehoz egy n x n es azonosság mátrixok diag (v) (v egy n-vektor) létrehoz egy n x n es diagonális mátrixot v érték van az átlón Például: >> ones(3,4) 1 1 1 1 1 1 1 1 1 1 1 1 >> v=[-1 2 3.5] v = -1.0000 2.0000 3.5000 >> diag (v) -1.0000 0 0 0 2.0000 0 0 0 3.5000 A zeros és a ones parancsnak megadhatunk egy egész típusú argumentumot; k argumentum esetén k dimenziós sort. Képernyő és grafika formázása A következő parancsok különböző kinézeteket kínálnak a különböző kimeneteken. format : Kimenet beállítása >> format short, pi 3.1416 >> format short e, pi 3.1416e+000 >> format long, pi 3.14159265358979 >> format long e, pi

3.141592653589793e+000 format compact összesűríti az extra sorokat (minden kimenet ezen a papíron kompakt formában lesz). format loose az extra sorokat. visszahelyezi >> format loose, pi 3.1416 xlabel('string'), ylabel('string') egyenként felcímkézi a függőleges és vízszintes tengelyeket az aktuális ábrán; title('string') címet ad az ábrának; axis([a b c d]) megváltoztatja az alakját a jelenlegi ábrának dycbxa -ra,; grid négyzetrácsot rak a jelenlegi ábrára; hold on megállítja a jelenlegi ábrát, így a későbbi ábrákkal együtt meg tud jelenni; hold off elengedni a jelenlegi ábrát, így a következő törölni fogja majd azt; subplot több ábrát rak a grafikus ablakba. Például: >> xlabel('x-axis'); >> ylabel('y-axis'); >> title('example');

>> axis([-1 1-1 1]); >> grid on

Az y=exp(-x^2) függyvény lesz kirajzolva nevével a tengelyen négyzetráccsal >> u=x.^2; >> y= exp(-u); >> plot (x,y); Most a subplot funkciót fogjuk használni,hogy megjelenjenhessenek a különbféle funkciók egyszerre >> subplot(2,1,1); >> fplot('sin(x)',[0 2*pi]) >> subplot(2,1,2);

>> fplot('cos(x)',[0 2*pi]) Vegyes max(x) visszatér x legnagyobb bejegyzésével, ha x egy vektor;nézd a help max -ot ha x egy k dimenziós sor min(x) ugyanugy mint a max; abs(x) akkora sorral tér vissza amekkora az x aminek a bejegyzései x bejegyzéseinek nagyságának felel meg size(a) visszatér egy 1xk vektorral a k dimenziós sor sorainak számával, oszlopainak számával, stb. length(x) visszatér a sor hosszával save fname elmenti a jelenlegi változókat fname.mat fájlnévvel load fname betölti a változókat egy fname.mat fájlból quit kilép a MATLAB ból Például: >> x=[ 3-4 60-71 -13 12];

>> max(x) 60 >> min(x) -71 >> abs(x) 3 4 60 71 13 12 Egy példa: Numerikus integrálás. A numerikus integrálás a megközelítő számítása az integrál számításnak, numerikus módon. Módszerek széles választéka áll rendelkezésünkre numerikus integráláshoz. A példában hármat fogunk használni: téglalap szabály, a trapéz szabály és a Simpson szabály, ezek fogják meghatározni a közelítő integrált: 1.- téglalap szabály. Az első nagyon egyszerű, a terv hogy megközelítsük f(x) függvényt minden intervallumon egy konstanssal és tekintetbe véve a területet a négyzet szélessége h = xi+1 xi és magassága f(xi) ith intervallumra. Ez a mód kiszámolni a területek összegeit minden téglalapnak az intervallumban. Az intervallum szét lesz osztva 2,4,8,16,32,64 és 128 al-intervallumokra. Az első példa két al-intervallummal: Három pont az intervallumban (0,1) szükséges. >> X=linspace(0,1,3) X = 0 0.5000 1.0000 A függvény értékei Y változóba vannak elmentve >> Y=sqrt(1-X) Y = 1.0000 0.7071 0 Az első téglalap magassága f(0) tehát y vektor első pontja el van mentve >> q=y(1) q = 1 A második téglalap magassága f(1) tehát y vektor második pontja is el van mentve >> q=q+y(2) q = 1.7071 A téglalapok szélessége 0.5 tehát ezt összeszorozva a magasságok értékével kialakul a terület. >> q=q*1/2 q =

0.8536 Hogy kiterjesszük az al-intervallumot, ciklust kell alkalmaznunk a vektor irányításához, 129 pontra van szükség, hogy 128 részre bontsuk az intervallumot. >> X=linspace(0,1,129); A függvény értékei ismét Y változóba vannak elmentve >> Y=sqrt(1-X); >> q=y(1); In this case, the sum is from f(0) to f(127), that is from the first component Y(1) to the next to last Y(128). Ebben az esetben az összeg f(0) tól f(127)ig van, első komponenstől y(1) az utolsóig y(127). >> for j=1:127 q=q+y(j+1); end >> q=q*1/128; A következő program integrált fog számítani 2,4,8,16,32,64,128 al intervallumok segítségével: function rectanglerule=rectanglerule(y) q=zeros(7,1); N=2; %Number of subintervals for i=1:7 h=1/n; q(i)=y(1); for j=1:n-1 q(i)=q(i)+y(j*(256/n)+1); end q(i)=q(i)*h; N=N*2; end disp('approximations with the rectangle rule:') q A bemenete a függvénynek egy 256 elemű vektor a függvénnyel ami [0,1] intervallummal integrál >> X=linspace(0,1,257); >> Y=sqrt(1-X); >> rectanglerule(y)

Approximations with the rectangle rule: q = 0.85355339059327 0.76828304624275 0.72063022162445 0.69483119687723 0.68118393627894 0.67408331137851 0.67043190729683 2. Trapéz szabály. Ebben a példában az utolsó programot módosítottuk, hogy megközelítse az integrált trapéz szabállyal: function trapezoidalrule=trapezoidalrule(y) q=zeros(7,1); N=2; %Number of subintervals for i=1:7 h=1/n; q(i)=0.5*y(1); q(i)=q(i)+0.5*y(257); for j=1:n-1 q(i)=q(i)+y(j*(256/n)+1); end q(i)=q(i)*h; N=N*2; end disp('approximations with the trapezoidal rule:') q Ennek a függvénynek a bemenete egy 256 elemű vektor a függvénnyel, ami [0,1] intervallummal integrál >> X=linspace(0,1,257); >> Y=sqrt(1-X); >> trapezoidalrule(y) Approximations with the rectangle rule: q = 0.60355339059327 0.64328304624275 0.65813022162445 0.66358119687723 0.66555893627894 0.66627081137851 0.66652565729683 3. Simpson szabály Végül a Simpson szabály lesz alkalmazva, a program módosítva lett: function simpsonrule=simpsonrule(y) q=zeros(7,1);

N=2; %Number of subintervals for i=1:7 h=1/n; q(i)=y(1); q(i)=q(i)+y(257); k=0; for j=1:n-1 k=k+1; q(i)=q(i)+4*y(k/2*(256/n)+1); k=k+1; q(i)=q(i)+2*y(k/2*(256/n)+1); end k=k+1; q(i)=q(i)+4*y(k/2*(256/n)+1); %Last interval middle point. q(i)=q(i)*h/6; N=N*2; end disp('approximations with Simpson rule:') q Ennek a függvénynek a bemenete egy 256 elemű vektor a függvénnyel, ami [0,1] intervallummal integrál >> X=linspace(0,1,257); >> Y=sqrt(1-X); >> simpsonrule(y) Approximations with Simpson rule: q = 0.65652626479257 0.66307928008502 0.66539818862815 0.66621818274618 0.66650810307836 0.66661060593627 0.66664684620310 Az eredményei a három féle módszernek: