matematika u matlab-u

Upload: sanja-vlahovic

Post on 04-Jun-2018

263 views

Category:

Documents


1 download

TRANSCRIPT

  • 8/13/2019 Matematika u Matlab-u

    1/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 1

    mr.sc. Bojan Kovai

    MATEMATIKA U MATLAB-u

    interna skripta

  • 8/13/2019 Matematika u Matlab-u

    2/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 2

    PREDGOVOR ....................................................................................................................41. UVOD U MATLAB ........................................................................................................5

    1.1.to je MATLAB? .........................................................................................................51.2. Aritmetika digitalnoga elektronikoga raunala............................................................51.2.1. Znanstveni oblik realnoga broja ................................................................................5

    1.2.2Zaokruivanje realnih brojeva i ''rezanje'' suvika decimala ...................................71.2.3. IEEE standard .......................................................................................................9

    1.3. Kako pokrenuti MATLAB? ....................................................................................... 101.4. Zapis osnovnih matematikih i logikih operatora u MATLAB-u ............... ......... ...... 101.5. Posebne varijable u MATLAB-u ................................................................................ 131.6. Osnovne matematike funkcije ugraene u MATLAB ............................................... 141.7. Zadaci za vjebu ........................................................................................................ 16

    2. MATRICE U MATLAB-U ........................................................................................... 182.1. Zadavanje (generiranje) matrica u MATLAB-u .......... ........... ......... ......... ........... ........ 182.2.Aritmetike operacije s matricama .............................................................................. 192.3. Matrine funkcije ugraene u MATLAB .................................................................... 252.4. Uporaba znakova , ; i : u MATLAB-u ........................................................................ 312.5. Zadaci za vjebu ........................................................................................................ 35

    3. GRAFIKA U MATLAB-U ........................................................................................... 38

    3.1. Jednostavni linijski grafikoni ..................................................................................... 383.2. Crtanje grafova funkcija na segmentu ........................................................................ 413.3. Zadaci za vjebu ........................................................................................................ 50

    4. OSNOVE PROGRAMIRANJA U MATLAB-U ......................................................... 514.1. Kako stvoriti jednu obinu m-datoteku ........... ......... ......... ........... ......... .......... .......... .. 514.2. Funkcijske mdatoteke .............................................................................................. 544.3. Uvjetne naredbe (naredbe kontrole tijeka) ........ .......... ........... ......... ......... ........... ........ 56

    4.3.1. Naredba for......................................................................................................... 564.3.2. Naredba while ..................................................................................................... 594.3.3. Naredba ifelse .................................................................................................. 61

    4.4. Zadaci za vjebu ........................................................................................................ 675. OSNOVE DESKRIPTIVNE STATISTIKE ................................................................ 71

    5.1. Kvantitativna diskretna statistika obiljeja .......... .......... ......... .......... .......... ......... ...... 715.2. Kvantitativna kontinuirana statistika obiljeja .......................................................... 865.3. Zadaci za vjebu ........................................................................................................ 92

    6. PRILAGODBA TEORIJSKIH STATISTIKIH RAZDIOBA EMPIRIJSKIMPODACIMA ....................................................................................................................... 95

    6.1. Razdiobe diskretnih sluajnih varijabli ....................................................................... 956.1.1. Binomna razdioba .............................................................................................. 956.1.2. Poissonova razdioba ......................................................................................... 107

    6.2. Razdiobe kontinuiranih sluajnih varijabli ............................................................... 114

  • 8/13/2019 Matematika u Matlab-u

    3/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 3

    6.2.1. Normalna ili Gaussova razdioba ....................................................................... 1146.3. Zadaci za vjebu ...................................................................................................... 119

    7. NUMERIKA MATEMATIKA U MATLAB-U ...................................................... 1237.1. Numeriko rjeavanje nelinearnih jednadbi s jednom nepoznanicom ........... .......... . 1237.2. Zadaci za vjebu ...................................................................................................... 1417.3. Numerika interpolacija ........................................................................................... 1437.4. Zadaci za vjebu ...................................................................................................... 1547.5. Numerika integracija .............................................................................................. 1567.6. Zadaci za vjebu ...................................................................................................... 163

  • 8/13/2019 Matematika u Matlab-u

    4/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 4

    PREDGOVOR

    Suvremena nastava visokokolske matematike u moderno je vrijeme nezamisliva bezaktivne uporabe raunala. Pritom se sve vie naputa klasian i zastarjeli pristup premakojemu je raunalo samo pomono sredstvo (poput depnoga raunara) u provjeri ispravnostirjeenja nekoga matematikoga problema. Slobodno se moe rei da se danas i matematikaui ''na raunalima'' jer kvalitetni programski paketi poputMathematice, MATLAB-a i drugiomoguavaju ne samo rjeavanje postavljenih zadataka, nego i analizu rjeenja, pa ak istvaranje i rjeavanje posve novih zadataka.

    Prirunik pred vama namijenjen je svim studentima, ali i ostalim korisnicima koji se usvojemu radu susreu s potrebom rjeavanja odreenih matematikih problema u MATLAB-u. Za nesmetano i kvalitetno praenje tijeka izlaganja nuno je poznavanje osnovnih pojmovamatematike analize i linearne algebre, a poeljno je poznavanje i osnovnih naelaprogramiranja. Prva etiri poglavlja sadre osnove rada s MATLAB-om i osnoveprogramiranja u njemu, dok je u poglavljima 5. i 6. obraena primjena u vjerojatnosti istatistici. U drugome dijelu (poglavlja 7. 10.) izlae se primjena MATLAB-a na rjeavanjeproblema numerike matematike. Na kraju svakoga poglavlja nalaze se zadaci za vjebunamijenjeni samostalnomu radu. Preporua se da svaki itatelj sam rijei to vie tih zadataka.

    Njihova teina je najvie jednaka teini izloenih i potpuno rijeenih primjera, pa student kojije uspjeno svladao izloeno gradivo ne bi trebao imati nikakvih potekoa rijeiti ih.

    Svima koji uoe propust bilo koje vrste, te iznesu dobronamjerne kritike i prijedlogeza poboljanje kvalitete izloenoga teksta bit u zahvalan.

    U Vukovaru, studenoga 2005.

    mr.sc. Bojan Kovai

  • 8/13/2019 Matematika u Matlab-u

    5/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 5

    1. UVOD U MATLAB

    1.1. ?

    MATLAB (naziv je skraenica engleskoga naziva MATrix LABoratory) istodobno je iprogramski paket namijenjen numerikomu raunanju i modeliranju, ali i vii programski

    jezik namijenjen raznim znanstvenim i tehnikim primjenama.

    1.2.

    Jedan od glavnih problema koji se javlja prigodom zapisivanja realnih brojeva u raunalu jestproblem unosa ''velikih'' realnih brojeva ili realnih brojeva iji se decimalni zapis sastoji od''velikoga'' broja (moda i beskonano mnogo) decimala. Naime, sklopovi naih raunala sufiziki ogranieni i u njih brojevi s tako velikim brojem decimala jednostavno ne mogu ''stati''.Stoga uvijek nastojimo to bolje iskoristiti raspoloivi prostor u raunalu kako bi u nj mogli''stati'' i brojevi s veim brojem znamenaka.

    1.2.1.

    Ovaj se oblik esto naziva i eksponencijalni, a u strunoj literaturi rabi se i naziv formatpomine toke(engl.floating point format). Osnova toga oblika jest sljedei:

    Teorem 1. Svaki realan broj aRmoe se zapisati u obliku:

    nzzzmyyyxa

    ...21

    2110.... =

    pri emu vrijedi:

    1.)x{1, 2, 3, , 9};2.) m, nN;2.)y1, ,ym,z1, ,zn{0, 1, 2, , 9}.

    Vana napomena: Zapisiy1y2ym i z1z2znnisu skraeni zapisi umnoakay1 y2 ym,odnosnoz1 z2 zn, nego oznaavaju nizove znamenki.

  • 8/13/2019 Matematika u Matlab-u

    6/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 6

    Takav se oblik naziva kao u naslovu ove podtoke: znanstveni oblik realnoga broja. On sesastoji od dvaju dijelova. Broj x.y1y2ym naziva se mantisa, a broj z1z2zneksponent.Uoimo odmah da je mantisa uvijek realanbroj ija je apsolutna vrijednost (modul) barem

    jednak 1 (jer joj je prva znamenka barem jednaka 1), dok je eksponent uvijek cijeli broj.Veliina zapisa mantise i eksponenta unutar raunala ovisi o realizaciji zapisa unutar raunala.

    Iole bolji depni raunar posjeduje displayna kojemu je (barem) est mjesta predvieno zazapis znamenaka mantise, a (tono) dva mjesta predviena su za zapis znamenakaeksponenta. Stoga se na takvom depnom raunaru moe zapisati i prikazati ukupno 180

    milijuna brojeva iz segmenta [9.99999 1099, 9.99999 1099]. Pritom je najmanji prikazivipozitivan broj 1.00000 1099.

    Sad se namee problem: kako bilo koji realan broj azapisati u znanstvenomu obliku? Jedanod moguih algoritama jest sljedei:

    Korak 1.Utvrditi je li prva znamenka xbroja abarem jednaka 1. Ako jest, ii na Korak 2.Ako nije, ii na Korak 6.

    Korak 2.Utvrditi je li iza prve znamenke decimalna toka. Ako jest, ii na Korak 3. Ako nije,ii na Korak 4.

    Korak 3.Mantisa realnoga broja ajednaka je samome broju, a eksponent je jednak 0. Krajpostupka.

    Korak 4. Postaviti poetnu vrijednost eksponenta na 0. Ii na Korak 5.

    Korak 5.Prebrojati koliko se ukupno znamenaka nalazi ispreddecimalne toke. (Oznaimotaj broj sa b.) Tada je matrisa broj dobiven postavljanjem decimalne toke neposredno izaprve znamenke, a eksponent je jednak b 1. Kraj postupka.

    Korak 6.Prebrojati koliko se ukupno nula nalazi ispred prve znamenke broja arazliite odnule. (Oznaimo taj broj sa b.) Tada je matrisa broj dobiven postavljanjem decimalne tokeneposredno iza prve znamenke razliite od nule, a eksponent je jednak (b). Kraj postupka.

    Primjer 1.Zapiimo u znanstvenomu obliku realne brojeve 3.14159, 100 000 i 0.00025 priemu emo uzeti da mantisa ima ukupno tono 6 znamenaka (jednu ispred i pet iza decimalnetoke), te odredimo mantisu i eksponent za svaki od dobivenih zapisa. Gore navedenialgoritam provodimo za svaki broj zasebno:

  • 8/13/2019 Matematika u Matlab-u

    7/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 7

    3.14159 prva znamenka je jednaka 3, pa prelazimo na Korak 2. iza prve znamenke jestdecimalna toka pa prelazimo na Korak 3. mantisa je jednaka 3.14159, a eksponent 0 3.14159 = 3.14159 100. Kraj postupka.

    100 000 prva znamenka je jednaka 1, pa prelazimo na Korak 2. iza prve znamenke nijedecimalna toka pa prelazimo na Korak 4. ispred decimalne toke ima ukupno 6 znamenkipa je b = 6. Mantisa je jednaka 1.00000, a eksponent 6 1 = 5. Stoga je100 000 = 1.00000 105. Kraj postupka.

    0.00025 prva znamenka je 0, nije barem jednaka 1 pa prelazimo na Korak 6. prvaznamenka razliita od nule jednaka je 2, a ispred nje se nalaze ukupno 4 nule, te je b = 4.Mantisa je jednaka 2.50000, a eksponent 4. Stoga je 0.00025 = 2.50000 104.

    Zbog obveze pisanja eksponenta u superscriptu, pri implementaciji u MATLAB-u nametnulase potreba za modifikacijom znanstvenoga prikaza kako bi i eksponent bio ispisan ''obinim''tekstom. U tu je svrhu uporabljena sljedea doskoica:

    Pretpostavimo da je nzzzmyyyxa...

    212110.... = znanstveni oblik realnoga broja a. Tada je

    MATLAB-ov znanstveni oblik toga broja

    ........ 2121 nm zzzeyyyxa =

    Dakle, iza mantise ''dopiemo slovo'' e (nema nikakve veze s bazom prirodnoga logaritmae = 2.7182818!), a eksponent ''spustimo'' iz superscripta u ''obini'' tekst. Pritom trebanapomenuti da zapis eksponenta po default-u sadri tono tri znamenke (ukoliko eksponentima samo dvije znamenke (n= 2), zapisuje se u obliku 0z1z2).

    Primjer 2. MATLAB-ovi (znanstveni) oblici realnih brojeva iz Primjera 1. su redom:

    3.14159e + 000,-1.0000e + 005,

    2.5000e 004.

    ''''

    Beskonane periodine decimalne brojeve (kakvi su npr. decimalni zapisi razlomaka ,3

    1 ,

    6

    5

    itd.) ne moemo ''itave'' pohraniti u raunalo tbog fizike ogranienosti njegovih sklopova.

  • 8/13/2019 Matematika u Matlab-u

    8/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 8

    Zbog toga se dio tih brojeva pohranjuje, a dio ''zanemaruje'', odnosno izostavlja. Uzmimo npr.

    racionalan broj12

    11 = 0.916666. . Taj je broj beskonaan periodian decimalni broj i ne

    moemo ga ''itavoga'' pohraniti u raunalo. Budui da MATLAB dozvoljava ukupno 6znamenki u mantisi, moemo postupiti na dva naina:

    1.) Prvih 5 znamenki mantise prepisati, a estu ili prepisati (ako je manja od 5) iliuveati za 1 (ako je barem jednaka 5).

    2.) Prepisati svih 6 znamenaka mantise zanemarujui sve ostale znamenke ustandardnomu prikazu.

    Prvi nain nazivamo zaokruivanje (s tonou na 5 decimala), a drugi ''rezanje'' suvikadecimala. Namee se pitanje koji je od tih dvaju naina bolji. Ovo je jedan od osnovnihproblema numerike matematike. Ovdje emo njegovo rjeenje dati rabei promatrani primjer.

    Oznaimo sa x broj dobiven zaokruivanjem broja12

    11 na 5 decimala, a sa y broj dobiven

    ''rezanjem'' suvika decimala broja12

    11. Mantisa broja

    12

    11jednaka je 9.166666666. Njezina je

    6. znamenka upravo jednaka 6. Stoga je

    x= 0.916667, y= 0.916666.

    Izraunajmo sada apsolutne vrijednosti razlika12

    11 x i

    12

    11 ykako bismo vidjeli koliko

    smo pogrijeili u prvom, a koliko u drugom sluaju:

    |12

    11x| = | 0.0000003333| = 3.33333 107,

    | 1211 y| = |0.0000006666| = 6.66666 107.

    Prva je razlika manja od druge, to znai da smo u prvom sluaju napravili manju greku.Stoga moemo zakljuiti da je zaokruivanje bolja metoda od ''rezanja'' suvika decimala.Zbog toga se sva raunala i iole bolji raunari uvijek slue zaokruivanjem realnih brojeva.

  • 8/13/2019 Matematika u Matlab-u

    9/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 9

    Vjerojatno vam je jo iz srednje kole poznato da je osnova za prikazivanje svih realnihbrojeva u raunalu tzv. binarni sustav. Baza toga sustava jest prirodan broj 2, a znamenkekoje ga tvore su 0 i 1. Moe se pokazati da vrijedi sljedei analogon teorema 1. za binarnesustave:

    Teorem 2. Svaki realan broj aRmoe se zapisati u obliku:

    nzzzmyyyxa

    ...21

    212.... =

    pri emu vrijedi:

    1.)x= 1;2.) m, nN;2.)y1, ,ym,z1, ,zn{0, 1}.

    Stoga sva razmatranja koja smo provodili u tokama 1.2.1. i 1.2.2. vrijede i za brojevezapisane u binarnomu sustavu. Budui da je ovaj sustav od iznimne vanosti u raunarstvu,brojni znanstveni instituti predlagali su razne standarde za organizaciju podataka u

    digitalnome raunalu. Jedan od ope prihvaenih je tzv. IEEE standard kojega je predloiougledni ameriki znanstveni institut Institute of Electrical and ElectronicEngineers, a rabi sena gotovo svim osobnim raunalima, u programskim paketima kao to su MATLAB,Mathematica itd. Prema tome standardu, realni se brojevi najee zapisuju u jednom odsljedea tri oblika (ili, kako to inenjeri raunarstva vole rei,formata):

    1.) format jednostruke preciznosti (engl. single precision format);2.) format dvostruke preciznosti (engl. double precision format);3.) format etvrtostruke preciznosti (engl. quadriple precision format).

    MATLAB koristi format dvostruke preciznosti. U njemu su za zapis realnoga brojapredviena tono 64 bita, i to:

    1 bit za zapis predznaka mantise;11 bitova za zapis predznaka eksponenta i samoga eksponenta;52 bita za zapis mantise.

    Budui da je prema Teoremu 2. prva znamenka mantise uvijek jednaka 1, radi utedememorijskoga prostora ta se znamenka ne pohranjuje. Zbog toga se u formatu dvostrukepreciznosti mogu zapisati brojevi od reda veliine 10307do reda veliine 10307iju mantisutvori ukupno esnaest znamenaka.

  • 8/13/2019 Matematika u Matlab-u

    10/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 10

    U ovakvom sustavu definiraju se brojeviInf (skraenica od engl. infinity =beskonano),NaN(skraenica od engl.Not a Number = ''nije broj'') i eps(''strojni epsilon'') s:

    10400Inf

    0

    0NaN

    eps= 2522.2204 1016.

    Od tih triju brojeva mi emo najee rabiti konstantu eps. Ona je, zapravo, najmanji

    pozitivan brojxtakav da u aritmetici raunala vrijedi 1 +x> 1, a moe se interpretirati i kaoocjena greke pri zaokruivanju u binarnoj floating pointaritmetici dvostruke preciznosti. Udetalje ovdje neemo ulaziti.

    1.3. ?

    Nakon ukljuivanja raunala i zaslona, te ''podizanja'' operativnoga sustava Windows,uzmemo mi u lijevu ili desnu ruku (ovisno jesmo li ljevaci ili denjaci) i pomiemo ga popodlozi sve dok njegov pokaziva ne bude postavljen na ikonu ispod koje pie MATLAB.

    Potom lakim dvostrukim klikom lijeve tipke mia na spomenutu ikonu otvaramo eljeniprogramski paket.

    Ukoliko nekim velikim i nikad posve razjanjenim udom na svojemu zaslonu nemamo ikonuispod koje pie MATLAB, taj programski paket morat emo otvoriti na poneto tei nain.Iznova uzmemo mi u lijevu ili desnu ruku i pomiemo ga po podlozi sve dok njegovpokaziva ne bude postavljen na natpis Start. (Ukoliko ni taj natpis nemate na svojemuzaslonu, hitno milozvuno upomopozovite svojega deurnoga informatiara!) Potom lakim

    jednostrukim klikom lijeve tipke mia otvaramo redom: Start Programs MATLABRelease 12 MATLAB i na slavni programski paket e se napokon aktivirati.

    1.4.

    Radi preglednosti, te zapise navodimo u sljedeoj tablici.

  • 8/13/2019 Matematika u Matlab-u

    11/164

  • 8/13/2019 Matematika u Matlab-u

    12/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 12

    ans =

    8.895106873296754e-013

    i to je traena vrijednost zadanoga brojevnoga izraza. Ukoliko bismo istu vrijednost eljelidobiti ''klasinim'' putem (pomou olovke i praznoga lista papira), utvrdili bismo da je ona

    jednaka 0. to se dogodilo i zbog ega nam MATLAB nije ispisao vrijednost 0?

    Do pogreke je dolo uslijed zaokruivanja. Naime, ve smo rekli da MATLAB ne znabaratati s razlomcima pa ih pretvara u decimalne brojeve (rabei aritmetiku dvostruke

    preciznosti) i rauna s njima. Pri toj pretvorbi (kako smo vidjeli) dolazi do greaka u ovomesluaju reda veliine 1016. Provedete li i u MATLAB-u raunanje ''korak po korak'', vidjetete da se rezultati podudaraju s onima ''runo'' izraunatima sve do potenciranja s 2003. 2003

    je relativno velika potencija pa ''malu'' greku pretvara u znatno veu. Drugim rijeima, naagreka ne bi bila tako izraena da je umjesto 2003 upisana neka daleko manja potencija (npr.2).

    Zapamtimo sljedee vano

    PRAVILO: Kada zavrimo unos naredbe u tekuemu redu radnoga prostora, za njezinoizvrenje i prelazak u novi red pritisnemo jednu od tipkiEnterna svojoj tipkovnici.

    Primjer 4.Utipkajmo u novomu retku radnoga prostora

    x= 5

    MATLAB e ispisati:

    x =

    5

    Ovime smo istodobno i deklarirali varijablu xi definirali da je vrijednost te varijable jednaka5. Utipkajmo sada u novomu retku radnoga prostora (opet bez razmaka):

    x ==100

    MATLAB e ispisati:

    ans =

    0

  • 8/13/2019 Matematika u Matlab-u

    13/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 13

    to se dogodilo? U drugome smo sluaju zatraili od MATLAB-a da provjeri istinitostjednakosti

    x= 100.

    Budui da smo neposredno ispred definirali da je vrijednost varijable xjednaka 5, jednakostx= 100 oito nije tona, pa je njezina istinitost jednaka 0 (false) i zbog toga je MATLABispisao 0 kao odgovor.

    1.5.

    Pored ve spomenutih Inf, NaN i eps, u MATLAB-u postoje jo tri posebne, unaprijeddeklarirane varijable:

    ans(skraenica od engl. answer= odgovor) automatski poprima vrijednost nekoga izrazaukoliko izraz nije pridruen toj varijabli;

    i imaginarna jedinica (za zaboravne: i := 1 );pi Ludolfov broj (3.14159265358979).

    Primjer 5.Utipkajmo u novomu retku radnoga prostora

    pi

    pa emo (nakon to pritisnemo Enter) dobiti:

    ans =

    3.14159265358979

    Primjer 6.Utipkajmo u novomu retku radnoga prostora

    i

    ponovno pritisnimo tipku Enteri dobit emo:

    ans =

    0 + 1.00000000000000i

  • 8/13/2019 Matematika u Matlab-u

    14/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 14

    Primjer 7.Utipkajmo u novomu retku radnoga prostora

    e

    i ponovno pritisnimo tipku Enter. Premda je e konstanta definirana u matematici kao bazaprirodnoga logaritma, na nae sveope zaprepatenje MATLAB ispisuje:

    ??? Undefined function or variable 'e'.

    to znai: Nedefinirana funkcija ili varijabla 'e'. Zbog toga kad god neto elimo raunati sbrojem e, moramo najprije definirati njegovu vrijednost s:

    e= 2.71828182818

    1.6.

    Radi lakega snalaenja i preglednosti, osnovne matematike funkcije ugraene u MATLABnavodimo tablino zajedno s primjerom poziva funkcije.

    Naziv funkcije Znaenje funkcije Poziv funkcijesin sinus sin(argument)cos kosinus cos(argument)tan tangens tan(argument)asin arkus sinus asin(argument)acos arkus kosinus acos(argument)atan arkus tangens atan(argument)sinh hiperbolni sinus sinh(argument)cosh hiperbolni kosinus cosh(argument)tanh hiperbolni tangens tanh(argument)asinh area sinus hiperbolni asinh(argument)

    acosh area kosinus hiperbolni acosh(argument)atanh area tangens hiperbolni atanh(argument)sqrt kvadratni korijen sqrt(argument)exp potencija broja e (ex) exp(argument)log prirodni logaritam (lnx) log(argument)

    log10 dekadski logaritam (logx) log10(argument)abs apsolutna vrijednost (modul)

    kompleksnoga brojaabs(argument)

    real realni dio kompleksnoga broja real(argument)

  • 8/13/2019 Matematika u Matlab-u

    15/164

  • 8/13/2019 Matematika u Matlab-u

    16/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 16

    ((asin(sin(2003*pi/2)+cos(2005*pi/2)-tan(2003*pi/4)/tan(2005*pi/4))+acos(2187^(1/7)-

    2*log(exp(3/4))-log10(sqrt(10)))-atan(abs(conj(1/2-sqrt(3)/2*i))-

    real(i^2004)+imag(i^2005))*4/pi)^2+3)^(-1/2)+round(-pi/4)+0.5

    Dobijemo:

    ans =

    2.264854970235319e-014.

    Izraunamo li pravu vrijednost ovoga izraza, dobit emo da je ona jednaka 0. Greka (redaveliine 1014) se pojavila zbog priblinih izrauna iracionalnih brojeva oblika

    ,

    k

    n

    k

    {2003, 2005}, n{2, 4}, no, praktino se ona moe zanemariti.

    1.7.

    1.Zapiite u znanstvenomu obliku sljedee realne brojeve:

    a)2004.2004; b)0.002004; c)2.002004; d)0.20032004.

    U svakomu od tih zapisa odredite mantisu i eksponent, te pripadni zapis u MATLAB-u.

    2. Zapiite u standardnom obliku sljedee realne brojeve zapisane u MATLAB-ovuznanstvenu obliku:

    a) 2.004e + 001; b)2.004e + 004; c)2.004e 002; d) 2.004e 003.

    U svakomu od navedenih zapisa odredite mantisu i eksponent!

    3. Nacrtajte dijagram tijeka algoritma za pretvorbu standardnoga zapisa realnoga broja u

    znanstveni. Implementirajte taj algoritam u nekome od poznatih programskih jezika.4.Koristei elementarne matematike operacije ugraene u MATLAB izraunajte vrijednostisljedeih brojevnih izraza:

    a)3

    2tg2cos

    4

    3sin + ; e)

    1ln

    e ;

  • 8/13/2019 Matematika u Matlab-u

    17/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 17

    b)ctg3

    7; f)log(ln(0.5-0.1234);

    c)arcsin0.2 arccos4

    1+ arctg 2 ; g)|1 i| + Re(20.5+ i3 3 ) Im i5 2 ;

    d)sh1.25 + ch

    Arth

    5

    1Arsh

    2

    2+ ; h)

    3

    1

    53Im

    1

    53Re

    21

    2

    +

    +

    +

    +

    i

    i

    i

    i

    i

    i.

    5.Zaokruite sljedee realne brojeve na njima najblii cijeli broj:

    a)2 3 32 + ; b) 8

    tg213

    +; c)

    i5

    3

    5

    1

    )5

    1ln(arcsin

    .

    6.Pomou MATLAB-a odredite vrijednosti sljedeih varijabli:

    a)x= log(2); b)y = arcsin(2003); c)z= sqrt(1.5)?

    Ima li smisla svaki od ispisanih rezultata? Objasnite zato!

  • 8/13/2019 Matematika u Matlab-u

    18/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 18

    2. MATRICE U MATLAB-U

    2.1. ()

    Matrice u MATLAB-u zadajemo prema sljedeoj sintaksi:

    ime matrice= [elementi matrice].

    Ime matrice obino je veliko tiskano slovo engleske abecede: A, B, C, D, . lanovi ilielementi matricesu (obino) realni brojevi. Upisujemo ih po retcimatako da izmeu svakadva lana stoji po jedan razmak. Kraj retka naznaujemo oznakom ; iza koje bez razmakaupisujemo prvi element sljedeega retka. Pokaimo to na primjeru.

    Primjer 1.Zadajmo u MATLAB-u realnu matricuAtipa 5 4 definiranu s

    423

    1

    3

    1 31 0.25

    2 2

    cos(2) ln30 arcsin0.4tg(5) log5

    32 2 1

    2

    1sin(6) ctg(21) -Arsh(2)

    arctg(3)

    1 1 2Arth(log2) ln

    Arch(1.5) 3- 3

    A e

    e

    e

    =

    +

    .

    U tekui redak radnoga prostora upisujemo:

    A=[-1 1/2 sqrt(3)/2 -0.25;0 cos(2)/tan(5) -log(3)/log10(5)

    asin(0.4);2^(1/3) -exp(-2) -sqrt(2) 1-3^(1/4)/2; -sin(6)

    1/tan(21) 1/atan(3) -asinh(2);1/acosh(1.5) atanh(log10(2))

    log((3-exp(1))/(1+exp(1))) sqrt(2)/3^(1/3)]

    (Sve funkcije, operatore i znamenke treba upisati u istomu retku prema gore navedenimpravilima.) Detaljno prouite i analizirajte kako je zadan svaki pojedini lan! Dobijemo:

  • 8/13/2019 Matematika u Matlab-u

    19/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 19

    A =

    -1.00000000000000 0.50000000000000 0.86602540378444 -0.25000000000000

    0 0.12310160900874 -1.57175884780882 0.41151684606749

    1.25992104989487 -0.13533528323661 -1.41421356237310 0.34196299352375

    0.27941549819893 -0.65466511548606 0.80061117222304 -1.44363547517881

    1.03904346061751 0.31065185251892 -2.58010978698585 0.98056091781096

    Vano upozorenje:Matricu nije mogue zadati navodei lanove po stupcima!

    2.2.

    Osnovne aritmetike operacije s matricama zapisuju se potpuno jednako kao i aritmetikeoperacije s brojevima. No, u radu s matricama rabe se jo neke aritmetike operacije kojepregledno prikazujemo u sljedeoj tablici.

    Operacija Znak''Desno dijeljenje'' matrica /''Lijevo dijeljenje'' matrica \

    Transponiranje matrice '

    Mnoenje elemenata dvijumatrica lan po lan .*

    Potenciranje elemenata dvijumatrica lan po lan

    .^

    ''Desno dijeljenje'' elemenatadviju matrica lan po lan

    ./

    ''Lijevo dijeljenje'' elemenatadviju matrica lan po lan

    .\

    Operacije ''desnoga'' i ''lijevoga dijeljenja'' rabe se prigodom rjeavanja matrinih jednadbi.Prva se koristi za rjeavanje jednadbe oblika XA=B, a druga za jednadbe oblikaAX= B.

    Ilustrirajmo to primjerima.

    Primjer 2.Rijeimo sustavXA=Bako je:

    [ ]65,43

    21=

    = BA .

    ''Obinim'' bismo raunom dobili:

  • 8/13/2019 Matematika u Matlab-u

    20/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 20

    X=BA1.

    No, u MATLAB-u moemo postupiti bre: Utipkamo

    A=[1 2;3 4]

    pritisnemo Enter, nakon ega utipkamo

    B=[5 6]

    i opet pritisnemo Enter. Time smo definirali matriceAiB. Rjeenje naega sustava dobivamo''desnim dijeljenjem'' matricaBiA. Utipkamo:

    X=B/A

    i dobijemo:

    X =

    -1 2

    Dakle, rjeenje naega sustava jest matrica

    X= [-1 2].

    Vano upozorenje:''Desno dijeljenje'' matrica mogue je ako i samo ako matriceAiBimajujednak broj stupaca!

    Primjer 3.Rijeimo sustavAX=Bako je

    .6

    5,

    43

    21

    =

    = BA

    ''Obinim'' bismo raunom dobili:

    X=A1 B.

    No, u MATLAB-u moemo postupiti bre: Redefinirajmo matricu Bu novomu retku radnogaprostora utipkavajui

    B=[5;6]

  • 8/13/2019 Matematika u Matlab-u

    21/164

  • 8/13/2019 Matematika u Matlab-u

    22/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 22

    oduzimanja. No, ove su operacije daleko jednostavnije od klasinih operacija mnoenja i''dijeljenja'' matrica, a u to e nas uvjeriti i sljedea definicija.

    Definicija 1.Neka su A = [aij] i B = [bij] matrice istoga tipa (m n). Definiramo matriceC= [cij],D = [dij] i E= [eij] s:

    ,:

    ;:

    ;:

    ij

    ijij

    ij

    ijij

    ijijij

    a

    be

    b

    ad

    bac

    =

    =

    =

    i to za sve i= 1, 2, , m;j= 1, 2, , n. Krae piemo:

    C:=A.*BD:=A./B

    E:=A.\B=B./A

    Operaciju .* nazivamo mnoenje matrica lan po lan, operaciju ./ ''desno dijeljenje'' lan polan

    , a operaciju .\''lijevo dijeljenje'' lan po lan

    .Uoimo da je desno dijeljenje matrica A i B istovjetno lijevom dijeljenju matrica B i A iobrnuto. Pokaimo primjenu ovih operacija na primjeru.

    Primjer 5.U novi redak radnoga prostora utipkajmo

    A = [5 6]

    pritisnimo Enter, pa utipkajmo

    B = [10 12]

    i ponovno pritisnimo Enter. U sljedeemu retku utipkajmo

    C=A.*B,D=A./B,E=A.\B

    pa e MATLAB ispisati:

  • 8/13/2019 Matematika u Matlab-u

    23/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 23

    C =

    50 72

    D =

    0.50000000000000 0.50000000000000

    E =

    2 2

    Uoite kako su izraunati elementi svake pojedine matrice:

    50 = 5 10 72 = 6 12

    0.5 = 5 : 10 0.5 = 6 : 12

    2 = 10 : 5 2 = 12 : 6.

    Potenciranje matrica lan po lan poseban je sluaj mnoenja matrica lan po lan, a nastupakada vrijedi jednakostA=B.

    Primjer 6.Za matricuAiz prethodnoga primjera odredimoA.^2. Utipkajmo:

    F=A.^2

    pa e MATLAB ispisati:

    F =

    25 36

    Napomenimo i to da gore definirane operacije mnoenja i dijeljenja lan po lan imaju smislaukoliko bilo koju matricu zamijenimo nekim realnim brojem. Tada dobivamo ''klasino''mnoenje (odnosno, ''dijeljenje'') matrice nekim skalarom.

    Primjer 7.Za matricu B iz prethodnoga primjera odredimo matrice F :=7.*B, G := B./10 iH := 10.\B. U novi redak radnoga prostora utipkajmo:

    F=7.*B, G=B./10, H=10.\B

  • 8/13/2019 Matematika u Matlab-u

    24/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 24

    pa e MATLAB ispisati:

    F =

    70 84

    G =

    1.00000000000000 1.20000000000000

    H =

    1.00000000000000 1.20000000000000

    Uoimo odmah da se rezultati ''lijevoga'' i ''desnoga dijeljenja'' lan po lan u ovom sluajupodudaraju jer su oba matrina ''dijeljenja'' lan po lan zamijenjena ''klasinim'' dijeljenjem.

    Sve osnovne matematike funkcije navedene u toki 1.6. imaju smisla i ako je njihovargument matrica bilo kojegatipa jer ''djeluju'' na svaki lan matrice zasebno. Evo primjera:

    Primjer 8.Izraunajmo sin(A) za matricuAdefiniranu s

    2003 2005 2009 2007

    3 2 6A

    = .

    U novi redak radnoga prostora utipkajmo:

    A=[2003*pi/3 -2005*pi/2 2007*pi -2009*pi/6]

    pritisnimo Enter, pa potom u novi redak utipkajmo

    sin(A)

    MATLAB e ispisati:

    ans =

    -0.86602540378453 -1.00000000000000 0.00000000000015 -0.49999999999999

    Prava vrijednost izraza sin(A) jest

  • 8/13/2019 Matematika u Matlab-u

    25/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 25

    =

    2

    101

    2

    3sinA .

    2.3.

    Pregledno ih navodimo u sljedeoj tablici.

    Imefunkcije

    Sintaksa Argument(i) funkcije Namjena funkcije

    zeros zeros(m,n) oba argumenta su prirodni brojevi Generira nulmatricu s mredaka i nstupaca.

    eye eye(n) prirodan broj Generira jedininumatricu reda n.

    diag diag(A) jednoretana ili jednostupanamatrica

    Generira dijagonalnumatricu iji su elementiredom elementi matrice

    A.rank rank(A) bilo koja matrica Rauna rang matriceA.size size(A, n) prvi argument je bilo koja matrica, a

    drugi tono jedan element skupa {1,2}

    size(A,1) ispisuje brojredaka, a size(A,2) brojstupaca matriceA.

    sum sum(A) bilo koja matrica Rauna zbroj lanova ustupcima matriceA.

    prod prod(A) bilo koja matrica Rauna umnoaklanova u stupcimamatriceA.

    det det(A) bilo koja kvadratna matrica Rauna determinantumatriceA.

    inv inv(A) bilo koja regularna matrica Odreuje matricu

    inverznu matriciA.

    Primjenu svake pojedine funkcije pokazat emo na primjerima matrica

  • 8/13/2019 Matematika u Matlab-u

    26/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 26

    .25

    13,

    931

    124

    211

    ,

    3

    423

    11

    ,2212

    21

    =

    =

    =

    = DCBA

    Zadajmo ih u MATLAB-u upisivanjem sljedeega niza znakova u novi redak radnogaprostora:

    A=[-1 sqrt(2)/2 1 2*sqrt(2)], B=[-1;1/3;2;-4/3], C=[1 -1 2;4

    -2 1;1 -3 9], D=[3 1;5 -2]

    Potom prijeimo na sljedei primjer.

    Primjer 9.Generirajmo nulmatricu tipa 4 5 i jedininu matricu reda 6. Oznaimo te dvijematrice redom s Ei F. U novi redak radnoga prostora upiimo:

    E=zeros(4,5), F=eye(6)

    MATLAB e ispisati:

    E =

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    F =

    1 0 0 0 0 0

    0 1 0 0 0 00 0 1 0 0 0

    0 0 0 1 0 0

    0 0 0 0 1 0

    0 0 0 0 0 1

    Primjer 10.Generirajmo dijagonalne matrice Gi Hiji su elementi redom elementi matriceA, odnosno matriceB. U novi redak radnoga prostora upiimo:

  • 8/13/2019 Matematika u Matlab-u

    27/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 27

    G=diag(A),H=diag(B)

    i MATLAB e ispisati:

    G =

    -1.00000000000000 0 0 0

    0 0.70710678118655 0 0

    0 0 1.00000000000000 0

    0 0 0 2.82842712474619

    H =

    -1.00000000000000 0 0 0

    0 0.33333333333333 0 0

    0 0 2.00000000000000 0

    0 0 0 -1.33333333333333

    Primjer 11.Odredimo rangove matricaA, B, Ci D. (Podsjetimo, kaemo da neka matrica Aima rang jednak r ako maksimalni linearno nezavisni podskup skupa njezinih redaka (ilistupaca) ima ukupno r elemenata.) Oznaimo traene rangove redom s a, b, c i d. U noviredak radnoga prostora upiimo:

    a=rank(A), b=rank(B), c=rank(C), d=rank(D)

    pa e MATLAB ispisati:

    a =

    1

    b =

    1

    c =

    2

    d =

    2

  • 8/13/2019 Matematika u Matlab-u

    28/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 28

    Koje smo od dobivenih rezultata mogli unaprijed oekivati?

    Primjer 12. Oznaimo sa ebroj redaka matrice C, a sa fbroj stupaca matrice D. (Oito jee= 3 i f= 2.) Generirajmo te veliine u MATLAB-u. U novi redak radnoga prostora upiimo:

    e=size(C,1), f=size(D,2)

    i dobit emo oekivane rezultate:

    e =

    3

    f =

    2

    Funkcija sizenam u prvi trenutak moe izgledati posve beskorisno, no pravu njezinu koristvidjet emo u 4. poglavlju kada se budemo susreli s tzv. funkcijskim m-datotekama.

    Primjer 13.Odredimo zbroj i umnoak elemenata u svakomu pojedinomu stupcu matrice C.

    Oznaimo zbroj saz, a umnoak sa u. U novi redak radnoga prostora upiimo:z=sum(C),u=prod(C)

    MATLAB e ispisati:

    z =

    6 -6 12

    u =

    4 -6 18

    Tako je, npr., zbroj svih elemenata prvoga stupca matrice C jednak 6, a umnoak svihelemenata drugoga stupca te matrice jednak 6.

    Pogledajmo sada kako ''rade'' te dvije funkcije kad su im argumenti jednoretane ilijednostupane matrice. U tu emo svrhu odrediti njihove pripadne vrijednosti za matrice Ai

  • 8/13/2019 Matematika u Matlab-u

    29/164

  • 8/13/2019 Matematika u Matlab-u

    30/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 30

    Primjer 14. Jedan od standardnih zadataka o matricama obino glasi: Ispitajte ima limatrica inverznu matricu i, ako ima, odredite je. Taj smo zadatak rjeavali tako to smonajprije raunali determinantu zadane matrice, pa ako je ona bila razliita od nule, zakljuilismo da zadana matrica ima inverznu matricu i nju smo potom odreivali poznatim, ali dostatekim postupkom. Ono to smo tada radili 15-tak minuta MATLAB e sada napraviti zapriblino 0.00015 sekundi.

    Dakle, ispitajmo imaju li matrice C i D svoje inverzne matrice i, ako imaju, odredimo ih.Rabit emo funkcije deti inv. Za matricu Coznaimo c:= det(C) i K:= C1. U novomu retku

    radnoga prostora izraunajmo vrijednosti tih veliina. Utipkajmo:

    c=det(C),K=inv(C)

    Dobit emo sljedei ispis:

    c =

    0

    Warning: Matrix is singular to working precision.

    K =

    Inf Inf Inf

    Inf Inf Inf

    Inf Inf Inf

    Pogledajmo to se dogodilo. Ponajprije, vrijednost varijable c jednaka je 0. Budui da tavarijabla predstavlja vrijednost determinante matrice C, to znai da je determinanta matrice C

    jednaka 0. Stoga je matrica Csingularna, a ne regularna matrica i nema inverznu matricu. Toisto je ustanovio i MATLAB te nam ispisao poruku koja (u slobodnomu prijevodu sengleskoga jezika na hrvatski jezik) glasi:

    Upozorenje: S obzirom na postavljenu preciznost matrica je

    singularna.

    Ovime MATLAB dozvoljava mogunost da je determinanta matrice ipak razliita od nule(npr. reda veliine 10-500), ali napominje da s obzirom na format dvostruke preciznosti on tone moe utvrditi. Kako bi varijabli Kipak bila dodijeljena odreena vrijednost, uporabljena jeunaprijed deklarirana varijablaInfkoju smo veimali prigodu upoznati (vidjeti toku 1.2.).

    Isti postupak sada provedimo za matricu D. Oznaimo najprije d := det(D) i L := D1.Pritisnimo tipku i preuredimo posljednje upisanu naredbu ovako:

  • 8/13/2019 Matematika u Matlab-u

    31/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 31

    d=det(D),L=inv(D)

    Dobit emo:

    d =

    -1

    L =

    2.00000000000000 -1.00000000000000

    5.00000000000000 -3.00000000000000

    Determinanta matriceDjednaka je 1, to znai da je matrica regularna, odnosno da postojinjoj inverzna matrica. Nije teko ''runo'' provjeriti da je uistinu

    =

    35

    121D .

    2.4. , ; :

    U ovoj emo toki dati kratak pregled uporabe znakova zareza (,), toke-zareza (;) i dvotokeu MATLAB-u, i to u onoj mjeri u kojoj e nam trebati u sljedeim poglavljima.

    Jednu od moguih uporabi zareza vesmo vidjeli. Njime smo odvajali lanove niza naredbizapisanoga u jednomu retku. To je osobito praktino ukoliko su naredbe ''kratke'' (kao u svimnaim dosadanjim primjerima). U sluaju ''duljega'' niza naredbi, radi preglednosti, ipak sepreporua svaku od njih zapisati u poseban redak radnoga prostora. No, zarez se obino rabi ukombinacijama sa znakom toke-zareza radi reguliranja ispisa rezultata naredbi. Pogledajmoto na primjeru.

    Primjer 1.U novi redak radnoga prostora utipkajmo:

    a=5;b=7;

    Posljednja dva retka u naemu radnomu prostoru sada izgledaju ovako :

    >> a=5;b=7;

    >> _

  • 8/13/2019 Matematika u Matlab-u

    32/164

  • 8/13/2019 Matematika u Matlab-u

    33/164

  • 8/13/2019 Matematika u Matlab-u

    34/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 34

    Dobivamo:

    TRECIREDAK =

    0.25881904510252 -0.45765755436029 0.33983690945412

    DRUGISTUPAC =

    2.000000000000000.13533528323661

    -0.45765755436029

    -0.50000000000000

    Ukoliko imamojednoretanumatricu iji elementi tvore aritmetiki niz (vrlo est sluaj kodpetlji!), moemo je generirati rabei naredbu ija je sintaksa:

    ime_matrice=prvi_lan_niza:razlika_niza:posljednji_lan_niza

    gdje su nazivi varijabli sugestivno odabrani kako bi se znalo o emu je rije. Takav naingeneriranja matrice naziva se generiranje prema razmaku meu (susjednim) elementima.

    Ukoliko je razlika niza jednaka 1, ona se ne mora pisati.Pokaimo to na primjeru.

    Primjer 3.Generirajmo matricu

    2 3 4 0

    5 5 5 5A

    = .

    Uoimo da lanovi te matrice tvore aritmetiki niz iji je prvi lan 0, posljednji , a razlika

    5

    . Matrica je jednoretana pa moemo primijeniti gornju naredbu. U novi redak radnoga

    prostora utipkat emo:

    A=0:pi/5:pi

    pa dobivamo:

  • 8/13/2019 Matematika u Matlab-u

    35/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 35

    A =

    Columns 1 through 4

    0 0.62831853071796 1.25663706143592 1.88495559215388

    Columns 5 through 6

    2.51327412287183 3.14159265358979

    Ovakav se nain ispisa u MATLAB-u pojavljuje kad zatraimo da MATLAB sm generiraneku matricu s vie od 4 stupca. Budui da sve elemente svih stupaca jednoga retka ne moeispisati u istomu retku (zbog ogranienosti radnoga prostora), MATLAB ispisuje elementepostupcimasvrstavajui stupce u grupe po 4.

    Napomena:Primjer 3. mogue je rijeiti i uporabom naredbe linspaceija je sintaksa

    ime_matrice=linspace(prvi_lan_niza,:posljednji_lan_niza,ukupan_broj_lanova_niza)

    Ve smo utvrdili koji je prvi, a koji posljednji lan niza, pa nam jo samo treba podatak otome koliko ukupno lanova ima niz. U ovome je sluaju taj broj jednak 6. Zbog togautipkamo:

    A=linspace(0,pi,6)

    i dobivamo isti rezultat kao i u Primjeru 3. Ovakav nain generiranja matrice naziva segeneriranje prema broju elemenata.

    2.5.

    1.Generirajte sljedee matrice u MATLAB-u:

    a) [ ]321=A ; b)B =

    32

    1

    ; c)C =

    43

    21

    ;

    d)D=

    987

    654

    321

    ; e)E =

    2ln323

    19.1

    2

    345.0log7

    23

    15.02.1

    3

    23.13 .

  • 8/13/2019 Matematika u Matlab-u

    36/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 36

    2.a) Za matrice A, B, C, D i Eiz prethodnoga zadatka odredite postoje li umnoci AB, BA,AC, CA,AD,DA,AE, EA,BC, CB,BD,DB,BE, EB, CD,DC, CE, EC,DEi EDi izraunajtesve umnoke koji postoje!

    b) Odredite rangove svih (postojeih) umnoaka iz a) zadatka. Interpretirajte dobivenerezultate. Ima li meu dobivenim matricama regularnih matrica? Obrazloite svoje odgovore.

    3. Izraunajte umnoak svake od matrica iz 1. zadatka s njoj transponiranom matricom, paodredite rangove svih tako dobivenih matrica. Jesu li koje od njih regularne? Obrazloite svoj

    odgovor.

    4.a)Za svaku od matrica iz 1. zadatka odredite ima li determinantu i, ako ima, izraunajte je!

    b)Za svaku od matrica iz 1. zadatka odredite ima li inverznu matricu i, ako ima, izraunajteje!

    5.Za matricuAiz 1.a) zadatka odredite matricu:

    X= sqrt(A+ 1).

    Za svaki lan matriceXnapiite formulu po kojoj je izraunat!

    6. a) Za matricuBiz 1.b) zadatka odredite matricu

    Y= ln2

    3+B.

    Za svaki lan matrice Ynapiite formulu po kojoj je izraunat!

    b) Oznaimo sa r apsolutnu vrijednost (modul) razlike umnoka i zbroja svih elemenatamatrice Yiz a)zadatka. Napiite izraz za raunanje vrijednosti varijable r. Provjerite valjanostsvojega rjeenja rabei MATLAB.

    7.Neka suDi Ematrice iz zadataka 1.d) i 1.e). Oznaimo sa GiHjednoretane matrice kojetvore redom drugi redak matrice D, odnosno trei stupac matrice E. Bez upisivanja lanovamatrica GiHizraunajte (detDT) G (E ET) (2H)T.

    8.Oznaimo saXmatricu tipa 1 6 iji su lanovi prvih 6 viekratnika broja 6. GenerirajtematricuXprema:

    a)broju elemenata; b)razmaku meu susjednim elementima.

  • 8/13/2019 Matematika u Matlab-u

    37/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 37

    9.Rijeite sljedee sustave jednadbi:

    a);1332

    1223

    =+

    =+

    yx

    yx b)

    ;14535

    532

    4

    =++

    =++

    =++

    zyx

    zyx

    zyx

    c)

    ;2345

    2567

    123

    =++

    =++

    =++

    zyx

    zyx

    zyx

    d) ;2252 973

    11325

    =++ =+

    =+

    zyxzyx

    zyx

    e)33523

    85894

    115743

    43452

    =++=++

    =++

    =++

    wzyxwzyx

    wzyx

    wzyx

    .

    Koristei Gaussovu metodu rijeite te sustave bez uporabe MATLAB-a i usporedite dobivenarjeenja.

    10.Bez uporabe MATLAB-aodredite to e se ispisati utipkavanjem sljedeih naredbi:

    a)a=3/2;b=4/5 c) a=5/6;c=a+1/6,b=a-1/3

    b)a=3+5,b=4-5; d)a=sqrt(9/4);b=log(a-1/2);c=log10(b+9);

    Provjerite svoje odgovore rabei MATLAB.

    11.Bez uporabe MATLAB-a odredite vrijednosti varijabli a i bnakon izvrenja sljedeeganiza naredbi:

    a=3/2;b=1/4;a=a+b,b=b-a

  • 8/13/2019 Matematika u Matlab-u

    38/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 38

    3. GRAFIKA U MATLAB-U

    MATLAB nam omoguuje crtanje razliitih vrsta grafikona (linijskih, retanih, stupanih itd.)U ovoj emo vjebi upoznati ''klasine'', odnosno linijske grafikone, dok emo retane istupane upoznati u 5. poglavlju prigodom obraivanja grafikih prikaza statistikih veliina.

    3.1.

    Za crtanje jednostavnih linijskih grafikona u MATLAB-u se rabi naredbaplotija je jedna odsintaksi

    plot(matrica)

    gdje je matrica bilo koja realna matrica. Ideja ''crtanja'' takve matrice je sljedea:Pretpostavimo da jeA= [aij] realna matrica tipa m n koju elimo ''nacrtati''.

    Korak 1. Svakom elementu aijpridrui se ureeni par (i, aij). Tako se dobije ukupno m n

    toaka.

    Korak 2. Toke dobivene u Koraku 1. ucrtaju se u pravokutni koordinatni sustav u ravnini.

    Korak 3. Stavi se j := 1. Nacrta se ukupno m spojnica toaka (i, aij) i (i + 1, ai + 1,j)),i= 1, 2, , m. Nakon povlaenja zadnje (m - te) spojnice stavi sej:=j + 1.

    Korak 4. Ako jej n, ponovi se Korak 3. (za novij). Ako jej> n, postupak je gotov.

    Na osnovi ovoga algoritma pokree se i izvrava naredba plot. Pogledajmo njezinu primjenuna primjerima.

    Primjer 1.''Nacrtajmo'' matricu

    A = [-1 2 0 1].

    Najprije u novomu retku radnoga prostora generiramo matricuAutipkavanjem:

    A=[-1 2 0 1]

    Pritisnemo Enter, pa u novomu retku radnoga prostora utipkamo:

  • 8/13/2019 Matematika u Matlab-u

    39/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 39

    plot(A)

    Dobivamo sljedei grafikon otvoren u novomu prozoru:

    1 1.5 2 2.5 3 3.5 4

    -1

    -0.5

    0

    0.5

    1

    1.5

    2

    Uoimo kako je dobivena ova izlomljena crta! Najprije su ucrtane toke (1,1), (2,2), (3,0) i(4,1), pa su crtom spojene toke (1,1) i (2,2), (2,2) i (3,0), te (3,0) i (4,1). Novootvoreniprozor zatvaramo tako da najprije pomicanjem mia po podlozi premjestimo pokaziva ugornji desni kut na ikonicu s oznakom , a potom jednim klikom lijeve tipke mia na tuikonicu zatvorimo prozor i vratimo se u ''stari'' radni prostor. (Za one koji ne podnose mieve,

    a oboavaju tipkovnicu, preporuamo istodobno pritiskanje tipki Ctrli W.)

    Ukoliko ne elimo crtom spojiti susjedne toke, to moramo ''rei'' MATLAB-u. Utipkajmo unovi redak radnoga prostora

    plot(A,'*')

    pa emo u novootvorenom prozoru dobiti sljedeu sliku:

  • 8/13/2019 Matematika u Matlab-u

    40/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 40

    1 1.5 2 2.5 3 3.5 4

    -1

    -0.5

    0

    0.5

    1

    1.5

    2

    Primjer 2.''Nacrtajmo'' u MATLAB-u sljedeu matricu:

    B=

    987

    654

    321

    i spojimo susjedne toke izlomljenom crtom. Zadanu matricu najprije generiramo uMATLAB-u utipkavanjem:

    B=[-1 2 -3;4 -5 6;-7 8 -9]

    pritisnemo Enteri u novomu retku radnoga prostora utipkamo jednostavno:

    plot(B)

  • 8/13/2019 Matematika u Matlab-u

    41/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 41

    Dobijemo sljedei skup linijskih grafikona:

    1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3

    -10

    -8

    -6

    -4

    -2

    0

    2

    4

    6

    8

    Objasnimo kako je dobivena npr. crvena izlomljena crta. Ona je nastala spajanjem toaka(1,3) i (2, 6), te (2, 6) i (3, 9). Te su toke dobivene pomou elemenata 3. stupca matriceB.Npr.: element 3 stoji na presjeku toga stupca i 1. retka, to znai da je i = 1 (varijabla ioznaava redak u kojemu se nalazi element aij), pa se (u Koraku 1. algoritma naredbe plot)dobije toka (1, 3). Potpuno analogno se dobiju i ostale dvije toke promatrane crte.

    3.2.

    ''Prava'' korist funkcije plot nije u grafikom prikazivanju matrica, nego u crtanju grafovafunkcija. Odmah se mora napomenuti neto to se vrlo esto previdi ili zaboravi:

  • 8/13/2019 Matematika u Matlab-u

    42/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 42

    VANO!!! U MATLAB-u SE GRAFIKI PRIKAZUJU ISKLJUIVO FUNKCIJEDEFINIRANE NA SEGMENTIMA!!!

    To se posebno odnosi na realne funkcije realne varijable kojima je podruje definicije cijeliskup R. Nije moguenacrtati graf takve funkcije na cijelom skupu Rjer taj skup nema nitinajmanji niti najvei element. Uostalom, kada ''runo'' crtate grafove funkcija u svojimbiljenicama, nesvjesno se opredijelite za odreeni dio ravnine (u pravilu onaj koji sadriishodite) pa crtate traeni graf uzimajui x-eve iz toga podruja ravnine. Isto to radi iMATLAB, samo mu moramo ''rei'' koje podruje ravnine elimo uzeti.

    U crtanju funkcija glavnu ''ulogu'' imaju matrice. I kada ''runo'' crtamo grafove, mi najprijeodredimo parove toaka (kroz koje prolazi traeni graf) i zapiemo ih tablino. Da MATLAB-u ne bismo morali neprekidno ''govoriti'' to treba uzeti zaxkako bi izraunaof(x), koristimo

    jednoretane matrice iji elementi tvore aritmetiki niz. (Generiranje takvih matrica nauilismo u prethodnom poglavlju (vidjeti toku 2.4.).) Prvi lan toga niza je donja granicasegmenta, a posljednji gornja granica segmenta. Kako bi slika bila to bolja, za razliku nizapogodno je uzeti ''mali'' decimalan broj (npr. 0.01, 0.005 i sl.). Ta razlika se u ovome sluajunaziva ekvidistanca susjednih vorova grafa. Mi emo ''po default-u'' uzimati da je razlika

    jednaka 0.01 (ukoliko ne kaemo drukije).

    Crtanje grafa funkcije na segmentu radi se algoritamski u tri koraka:

    Korak 1. Rabei generiranje prema razmaku meu susjednim elementima generira se matricaiji je prvi lan donja granica segmenta, razlika (''po default-u'') jednaka 0.01, a posljednjilan gornja granica segmenta.

    Korak 2. Generira se matrica vrijednosti zadane funkcije u svakome elementu matricedobivene u Koraku 1.

    Korak 3. Svakom elementu dobivenomu u Koraku 1. pridrui se vrijednost funkcije dobivenau Koraku 2., te se dobiveni ureeni par ucrta u pravokutni koordinatni sustav u ravnini.

    Pokaimo primjenu ovoga algoritma na primjerima.Primjer 1.Nacrtajmo graf funkcije

    1

    2)(

    2 +=

    x

    xxf

    na segmentu [-6, 6]. Slijedimo korake gore opisanoga algoritma. Prvi je korak generiranje''matricex-eva'. Budui da MATLAB dozvoljava da ime matrice bude i malo tiskano slovo, tu

  • 8/13/2019 Matematika u Matlab-u

    43/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 43

    emo matricu oznaiti sax. Njezin je prvi lan 6, razlika 0.01, a posljednji lan 6. Dakle, unovi redak radnoga prostora utipkavamo:

    x=-6:0.01:6;

    Uoimo ovdje kljunu ulogu znaka toka-zarez! Da ga nismo stavili na kraj retka, MATLABbi nam ispisao svih 1200 elemenata matricex. Zbog toga ga uvijek valja staviti na kraj retka.

    U novomu retku radnoga prostora formiramo matricu vrijednosti zadane funkcije, odnosno

    ''matricu y-a''. Nju dobivamo raunski mnoenjem, dijeljenjem i potenciranjem lanovamatrice x lan po lan. (Ovo dobro zapamtite jer se pri crtanju grafova esto grijeizamijenjujui operacije ''lan po lan'' s ''klasinim'' aritmetikim operacijama. Zato: oprez!)Utipkavamo:

    y=2*x./(x.^2+1);

    (Podsjetimo se: Mnoenje, odnosno zbrajanje matrice sa skalarom lan po lan podudara se s''obinim'' mnoenjem, odnosno zbrajanjem sa skalarom.) I opet smo na kraju retka stavilitoku-zarez kako ne bismo dobili ispis svih elemenata matricey.

    Preostaje nam svakome od 1200 x-eva pridruiti pripadni y i toku ucrtati u pravokutni

    koordinatni sustav u ravnini. U novi redak radnoga prostora utipkavamo:

    plot(x,y)

    pa dobivamo sljedei grafikon:

    -6 -4 -2 0 2 4 6

    -1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

  • 8/13/2019 Matematika u Matlab-u

    44/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 44

    Taj je grafikon traeni grafiki prikaz zadane funkcije.

    Primjer 2.U Primjeru 1. zadatak nam je bio nacrtati grafiki prikaz neprekidnefunkcije. No,to e se dogoditi ako funkcija ima prekid (1. ili 2. vrste) na segmentu iznad kojega je crtamo?Npr. uzmimo funkciju

    2

    2( )

    1

    xf x

    x

    =

    i nacrtajmo njezin graf na segmentu [-6, 6].

    Iole bolji znalci matematike odmah e uoiti da e tu biti dva problema: Kako odreditivrijednosti funkcije zax= 1 ix= 1 kad u tim tokama funkcija uope nije definirana? ''Spas''

    je u varijabliNaN: ukoliko postoji xza koji ne postoji pripadni f(x), MATLAB e tomex-ukaof(x) dodijeliti ''vrijednost''NaN, a dobivenu ''toku'' nee ucrtati u koordinatni sustav.

    Nakon to u svaki redak zasebno utipkamo

    x=-6:0.01:6;

    y=2*x./(x.^2-1);

    MATLAB e nas upozoriti da smo u jednom ili vie sluajeva dijelili s nulom (ali nee ''rei''u koliko smo sluajeva napravili taj ''smrtni grijeh''):

    Warning: Divide by zero.

    Nakon to u sljedeemu retku utipkamo

    plot(x,y)

    u novootvorenome emo prozoru dobiti sljedei graf:

  • 8/13/2019 Matematika u Matlab-u

    45/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 45

    -6 -4 -2 0 2 4 6

    -150

    -100

    -50

    0

    50

    100

    150

    Uoimo da se iz grafa odmah mogu vidjeti prekidi u tokamax= 1 ix= 1, te da su ti prekidi2. vrste (ne mogu se ukloniti jer oito ne postoje granine vrijednosti zadane funkcije unavedenim dvjema toama).

    U prethodnim smo primjerima na jednoj slici prikazivali graf samo jedne funkcije. No,prigodom grafikoga rjeavanja nelinearnih jednadbi iznimno je vano na istoj slici prikazatigrafove dviju ili vie funkcija (kako bi se priblino mogla oitati sjecita tih grafova)definiranih na istom segmentu. (Takve emo probleme razmatrati i rjeavati u 8. poglavlju.)

    Tu se ponovno javlja naredbaplot, ali ovoga puta s malo drugaijom sintaksom. U praksi sevrlo esto zaboravi da se grafovi funkcija mogu crtati na istoj slici pomou naredbeplotako isamo ako su sve funkcije definirane na istom segmentu pa imajte to na umu prigodomrabljenja ove funkcije!

    Ovu, malo sloeniju primjenu naredbeplotpokazat emo na konkretnom primjeru.

    Primjer 3.Na istoj slici nacrtajmo grafove funkcijaf(x) = 2x+ 1, g(x) = 1 xi h(x) = lnxnasegmentu [1, 20]. Najprije generiramo matricux-eva:

  • 8/13/2019 Matematika u Matlab-u

    46/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 46

    x=1:0.01:20;

    a potom i tri matricey1,y2 iy3 s odgovarajuim vrijednostima funkcija:

    y1=2*x+1; (matrica vrijednosti funkcijef)y2=1-x; (matrica vrijednosti funkcije g)y3=log(x); (matrica vrijednosti funkcije h)

    Sve tri krivulje prikazat emo na istoj slici utipkavanjem:

    plot(x,y1,x,y2,x,y3)

    (Uoite da su argumenti naredbe plot ovdje odvojeni zarezima!) U novootvorenom emoprozoru dobiti sljedeu sliku:

    0 2 4 6 8 10 12 14 16 18 20

    -20

    -10

    0

    10

    20

    30

    40

    50

    Plava je krivulja graf funkcije f(x), crvena graf funkcije h(x), a zelena graf funkcije g(x).Uoimo da inae ''brza'' logaritamska funkcija ovdje prividno ''sporo'' raste jer jedininaduina na osi Oy ima vrlo malenu duljinu. Takva je duljina odabrana kako bi se mogleprikazati relativno velike vrijednosti funkcijef(x) u tokama blizu gornjega kraja segmenta.

  • 8/13/2019 Matematika u Matlab-u

    47/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 47

    Primjer 4.Grafiki rijeimo nejednadbu sin 2x> cos xna intervalu [0, 2]. Na istoj emoslici nacrtati grafove funkcija f(x) = sin 2x i g(x) = cos x, pa emo oitati iznad kojih jedijelova zadanoga intervala graf funkcijef(x) iznad grafa funkcije g(x). Utipkavamo redom:

    x=0:0.01:2*pi;

    y1=sin(2*x);

    y2=cos(x);

    plot(x,y1,x,y2)

    pa dobijemo sljedeu sliku:

    0 1 2 3 4 5 6 7

    -1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    Plava krivulja je graf funkcije f(x), a zelena graf funkcije g(x). Intervale na kojima je plavakrivulja iznad zelene moemo oitati samo priblino. Dva su takva intervala: i

  • 8/13/2019 Matematika u Matlab-u

    48/164

  • 8/13/2019 Matematika u Matlab-u

    49/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 49

    S ove je slike oito da je traena donja granica u intervalu [0.5, 0.6]. Nacrtajmo grafovepromatranih funkcija i u tom segmentu. Utipkamo:

    x=0.5:0.01:0.6;

    y1=sin(2*x);

    y2=cos(x);

    plot(x,y1,x,y2)

    i dobit emo sljedeu sliku:

    0.5 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.6

    0.82

    0.84

    0.86

    0.88

    0.9

    0.92

    0.94

    Sad traenu donju granicu moemo odrediti jo preciznije: ona se nalazi u segmentu[0.52, 0.53]. Ovisno o tome koliku tonost odreivanja donje granice elimo, ponavljamoopisani postupak uzimajui svaki put sve ''krae'' intervale. Potpuno analogno se dobivaju iostale tri granice intervala rjeenja nejednadbe.

  • 8/13/2019 Matematika u Matlab-u

    50/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 50

    3.3.

    1.U MATLAB-u generirajte matrice

    [ ]

    =

    =

    ==

    3.040

    23

    12

    101

    i46

    31,

    3

    1

    2

    ,211

    3

    DCBA ,

    pa odredite rezultate primjene naredbe PLOT na svaku od njih. Za svaku krivulju objasnitekako je dobivena.

    2.Nacrtajte grafove funkcija:

    a)f(x) = sinxna segmentu [-1.5, 1.5]; b)f(x) = lnxna segmentu [0.5, 2];

    c)f(x) =12 +x

    xna segmentu [-1, 1]; d)f(x) =

    2

    2

    +x

    xna segmentu [2, 7].

    3.Na istoj slici nacrtajte grafove svih funkcija iz 2. zadatka na segmentu [0, 2].

    4.a)Na istoj slici nacrtajte sinusoidu i kosinusoidu na segmentu [0, 2 ]. Pomou dobiveneslike rijeite nejednadbu

    sinx> cosx

    s tonou na dvije decimale. Provjerite ispravnost svojega rjeenja ''klasinim'' rjeavanjemzadane nejednadbe.

    b) Utvrdite moete li na intervalu iz a) zadatka nacrtati tangensoidu i kotangensoidu.Objasnite to se dogodilo!

    5.S tonou na dvije decimale rijeite nejednadbu1 sinx cos2x

    na segmentu [0, 4 ]. Provjerite ispravnost svojega rjeenja ''klasinim'' rjeavanjem zadanenejednadbe.

    6.S tonou na dvije decimale odredite sve zajednike toke krivuljay= sinxiy= ln(x+ 1).

  • 8/13/2019 Matematika u Matlab-u

    51/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 51

    4. OSNOVE PROGRAMIRANJA U MATLAB-U

    Ve smo u uvodu u 1. poglavlje naglasili da MATLAB nije samo programski paketnamijenjen numerikomu raunanju i modeliranju, nego i vii programski jezik namijenjenraznim znanstvenim i tehnikim primjenama. U ovoj emo toki upoznati osnoveprogramiranja u MATLAB-u i nauiti kako u njemu moemo sami pisati razne korisne (ibeskorisne) program(i)e.

    Budui da se program najee sastoji od niza naredbi koji se u radu ee ponavlja, vrlo jenepraktino i nezgodno pisati taj niz naredbi u radnomu prozoru. Zbog toga programe piemou posebne vrste datoteka tzv. m-datoteke ili m-file-ove. Nauimo najprije kako stvoriti takvedatoteke.

    4.1.

    Postupak stvaranja m-datoteke vrlo je jednostavan. Moemo ga provesti na dva naina, ovisnoo tome jesmo li u prijateljskim odnosima s miem svojega raunala ili nismo:

    1.)(za one koji vole mieve) a) Pomiui mi po podlozi postavimo pokazivana natpis Fileblizu gornjega lijevoga kuta naega zaslona (odmah ispod natpisa MATLAB).b) Jednom kliknemo lijevom tipkom mia na taj natpis pa se pojavi padajui izbornik sopcijamaNew, Open, Close Command Windowitd.c) Postavimo pokazivana opciju New. im to uinimo, desno od natpisa Newpojavit e senovi padajui izbornik koji nam nudi odabir etiriju opcija:M-file, Figure,Modeli GUI.d) Nas zanima opcija M-file pa emo pokaziva postaviti na taj natpis i jednom kliknutilijevom tipkom mia. Tada e se otvoriti tekst-editor Notepad i u njemu emo pisati svojenaredbe.,

    2.)(za one koji ne vole mieve) Postupak opisan u 1.)moemo napraviti i iskljuivo rabei

    tipkovnicu. Redom kratko pritisnimo sljedee tipke (svaku posebno):

    Alt, N, F, I

    (opcija Caps Lockna tipkovnici ne mora biti ukljuena jer MATLAB-u ovdje nije vano jesuli slova velika ili mala) i otvorit e se toliko eljeniNotepad.

  • 8/13/2019 Matematika u Matlab-u

    52/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 52

    Uoimo da se trepui pokazivanalazi u retku ispred kojega pie broj 1. Broj ispred linijenjezin je redni broj u datoteci, to nam vrlo esto olakava snalaenje u njoj. Upiimo u prviredak te datoteke:

    sin(pi/2)+cos(pi)*tan(3*pi/4)

    Pohranimo upisani tekst pod imenom PROBAna sljedei nain:

    1.) Istodobno pritisnemo tipke Ctrl i S. (Ili ako vie volimo mieve postavimo

    pokazivana natpis File, jednom kliknemo lijevom tipkom mia, potom postavimo pokazivana natpis Savei ponovno jednom kliknemo lijevom tipkom mia. to vam se ini bre?)

    2.)U novootvorenome prozoru MATLAB nas najprije obavjetava da e datoteku ma kakogod je nazvali pohraniti u direktorij C:\matlabR12\work. Taj je direktorij ''default-ni''direktorij za pohranu svih tipova datoteka. Ukoliko elimo datoteku pohraniti u neki drugidirektorij, tada pomicanjem mia po podlozi postavimo pokazivana mali trokutiodmahpokraj natpisa work. Jednom kliknemo lijevom tipkom mia na taj trokutii otvorit e nam seizbornik u kojemu klikovima na lijevu tipku mia sami formiramo stazu (engl. path) dodirektorija u kojega elimo pohraniti nau datoteku. Ovdje se neemo odluiti na tumogunost, nego emo datoteku pohraniti u direktorij C:\matlabR12\work.

    3.)Ispod natpisa Save in: moemo vidjeti popis svih datoteki dosad pohranjenih u direktorijuC:\matlabR12\work.

    4.)Ispod popisa datoteki nalazi se natpis File name: kraj kojega je bijeli pravokutnik s plavoobrubljenim slovima Untitled odmah do kojih je trepui pokaziva. Naime, MATLABpredvia mogunost da postoji nematoviti korisnik programa bez ideje kako nazvati datotekukoju je upravo stvorio. Da takvomu korisniku cjelokupni dosadanji trud ne bi otiao unepovrat, MATLAB nudi mogunost da stvorenu datoteku nazove Untitled (engl. beznaslova). No, mi smo se ve ranije odluili da emo takvu datoteku nazvati Proba papritisnimo strelicui koja se nalazi odmah iznad vee od dviju tipki Enter na naojtipkovnici. Kad to uinimo, natpis Untitlede nestati i ostat e samo trepui pokaziva.

    5.)Upisujemo ime datoteke:

    proba.m

    Ovo dobro zapamtite: MATLAB zahtijeva da se pohrani ime datoteke zajedno s njezinomekstenzijom. Budui da se ovdje radi o m-datoteci, ona ima kratku, ali jasnu ekstenziju: .mZbog toga prigodom pohrane moramo upisati ime datoteke u obliku:

  • 8/13/2019 Matematika u Matlab-u

    53/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 53

    ime_datoteke.m

    6.) Pritisnemo Enter ili jednom kliknemo lijevom tipkom mia na natpis Save. Datoteka jepohranjena, to nam potvruje natpis na vrhu zaslona:

    C:\matlabR12\work\proba.m

    Za izlaz iz upravo pohranjene datoteke moemo istodobno pritisnuti tipke Ctrl i W ili

    ponovo jednom kliknuti lijevom tipkom mia na natpis File, postaviti pokaziva na natpisClose proba.mi jednom kliknuti lijevom tipkom mia na taj natpis. U oba sluaja zatvaramopohranjenu m-datoteku i vraamo se u radni prostor.

    Uinak upravo provedenih radnji moemo vidjeti ukoliko u novomu retku radnoga prostorautipkamo:

    proba

    i pritisnemo Enter. Dobit emo:

    ans =

    2

    to se dogodilo? MATLAB je pokrenuo datoteku s nazivom proba.m, izvrio sve naredbezapisane u njoj kao da su zapisane u njegovu radnomu prostoru i ispisao krajnji rezultat tihnaredbi. Budui da je

    3 sin cos tg 1 ( 1) ( 1) 2

    2 4

    + = + = ,

    rezultat jedine upisane naredbe u datoteci proba jest 2 i to je rezultat koji je ispisaoMATLAB.

    Ovakav je nain zapisivanja i izvravanja naredbi praktian jer se lako mogu popravljatigreke prije nego li se program izvri (za razliku od naredbi u radnomu prostoru gdje segreke otklanjaju tek nakon izvravanja naredbe). ak i ako pogrijeimo, MATLAB e naspristojno obavijestiti u kojemu je retku nae datoteke pronaao greku, te nas obavijestiti okakvoj se greci radi, pa emo je moi ispraviti.

  • 8/13/2019 Matematika u Matlab-u

    54/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 54

    4.2.

    Mdatoteke vrlo su korisne i u stvaranju tzv. funkcijskih datoteka. To su datoteke kojima senizom naredbi definira nova programska funkcija koja se pohranjuje u isti direktorij kao iobine m-datoteke (C:\matlabR12\work), ali se poziva drugaije nego obina m-datoteka.Njezina sintaksa je:

    function [izlazne varijable]=ime_funkcije(ulazne varijable)

    naredbeend

    Objasnimo ukratko o emu se ovdje radi. Neka funkcija u MATLAB-u kao rezultat ne moradati samo jednu, nego i vie vrijednosti. Zbog toga se sve te varijable moraju staviti u uglatezagrade i meusobno razdvojiti zarezima. Takva se funkcija u radnomu prostoru poziva nasljedei nain:

    [izlazne varijable]=ime_funkcije(ulazne varijable)

    POZOR!!!esta je greka da se prigodom poziva funkcije uope ne navedu, djelominonavedu ili redosljedno pogreno navedu ulaznevarijable. U takvim e sluajevima MATLABodmah javiti greku i nee izvriti eljenu funkciju. S izlaznim varijablama je malo drugaijapria jer ako ne navedemo ime izlazne varijable, MATLAB e joj sam dodijeliti ime ans. No,problem nastaje ako elimo vie izlaznih varijabli: ne navedemo li im imena, MATLAB eispisati samo jednu od njih. Zato: oprez!

    Ukoliko funkcija ima tono jednu izlaznu varijablu, ona se ne mora stavljati u uglate zagrade.

    Ime funkcije mora biti jednako imenu funkcijske m-datoteke (bez ekstenzije). Dakle, nesmije se dogoditi da u datoteci imamo zapisano npr.

    functiony= kotangens(x)

    a da funkcijsku datoteku nazovemo npr. pajza.m. Ako smo funkciju nazvali kotangens, ondai pripadnu funkcijsku m-datoteku moramo nazvati kotangens.mjer je u suprotnom pri njezinupozivu MATLAB nee izvriti.

    Sama funkcija moe imati jednu ili vie ulaznih varijabli. Neovisno o njihovu broju, morajuse navesti unutar okruglih zagrada. Ako ih je barem dvije, odvajaju se zarezima. Varijable,openito, mogu biti brojevi i matrice, s tim da MATLAB razlikuje to je broj, a to matrica pa

  • 8/13/2019 Matematika u Matlab-u

    55/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 55

    se ne smije dogoditi da varijablu matrinoga tipa prigodom poziva pozovemo kao varijablubrojanoga tipa.

    Pogledajmo na primjeru kako stvoriti jednu ''novu'' funkciju u MATLAB-u.

    Primjer 1. Napiimo funkcijsku m-datoteku zbrajanje.m koja sadri jedino funkcijuzbrajanjeije su ulazne varijable dva realna broja, a koja kao rezultat vraa zbroj tih brojeva.Otvorimo novu m-datoteku pa upiimo:

    function z=zbrajanje(x,y)z=x+y;

    te je pohranimo pod nazivom zbrajanje.mu direktorij C:\matlabR12\work. Potom zatvorimostvorenu datoteku.

    Uoimo to smo u njoj napravili: zbroj dvaju realnih brojeva je jedinstven realan broj, paimamo tono jednu izlaznu varijablu koju smo oznaili saz.Funkciji smo dali ime zbrajanje

    jer zadatak trai da se datoteka zove zbrajanje.m, a znamo da ime funkcije i ime datotekemoraju biti jednaki. Ulazne varijable oznaene su sxiyi odvojene zarezima.

    Kako pozvati ovakvu funkciju iz radnoga prostora? Kao i svaku drugu: pozivamo je navodei

    izlazne varijable, ime funkcije i ulazne varijable. Za razliku od izlazne varijable kojoj e sevrijednost dodijeliti nakon to se izvre sve naredbe u funkcijskoj m-datoteci, ulazne varijablemoraju biti konkretne, odnosno njima se vrijednosti moraju dodijeliti prije poziva funkcije.

    elimo li zbrojiti npr. 123456789 i 987654321, te rezultat zapisati u varijablu zbroj, utipkatemo:

    zbroj=zbrajanje(123456789,987654321)

    i dobiti:

    zbroj =

    1.111111110000000e+009

    Ulazne varijable ne moraju nuno biti eksplicitno zadani (realni ili kompleksni) brojevi, negomogu biti i vrijednosti nekih brojevnih izraza. U novi red radnoga prostora utipkajmo:

    zbroj=zbrajanje(conj(1-3*i),abs(1+sqrt(3)*i)/i)

    i dobit emo:

  • 8/13/2019 Matematika u Matlab-u

    56/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 56

    zbroj =

    1.00000000000000 + 1.00000000000000i

    Kako bismo uspjeno mogli stvarati nove i sloenije funkcije u MATLAB-u, upoznat emojo neke njegove naredbe.

    4.3. ( )

    Zajednika karakteristika svih uvjetnih naredbi jest da izvode odreeni skup naredbi sve dokje zadovoljen odreeni uvjet, pri emu se parametri toga uvjeta mijenjaju svaki put kad seizvede spomenuti skup naredbi. Tri su standardne uvjetne naredbe: for, while, if.. else. Unastavku emo upoznati svaku od njih.

    4.3.1.

    Naredba for slui za ponavljanje niza naredbi unaprijed zadani broj puta. Budui da uvijekdolazi zajedno s tim nizom, u pravilu se govori oforpetlji. Njezina je sintaksa:

    for varijabla=izraz1:izraz2:izraz3niz naredbi

    end

    Prvi redak u ovoj sintaksi predstavlja zapis zahtjeva da varijablapoprima sve vrijednosti odizraza1 do izraza3 s korakom izraz2. to to zapravo znai? Kad MATLAB izvrava ovupetlju, pri ''prvom itanju'' on varijabli varijabla dodijeli vrijednost izraz1 i prelazi naizvravanje cijeloga niza naredbi smjetenoga u petlji. Kraj toga niza oznaava naredba end.Kad u ''prvom itanju'' MATLAB ''stigne'' do naredbe end, vrati se ponovno na redak u

    kojemu pie naredba for i vrijednost varijable varijabla promijeni (uvea ili smanji) zavrijednost izraz2. Potom usporedi novodobivenu vrijednost varijable varijablas vrijednouizraz3. Ako je vrijednost varijable varijablamanja ili jednaka vrijednosti izraz3, MATLABponovno izvrava niz naredbi smjeten (ili, kako se to struno kae, ''ugnijeen'') u petljinakon ega se opet vraa na redak u kojemu je naredba for. Ako je vrijednost varijablevarijabla vea od vrijednosti izraz3, petlja je zavrena pa se prelazi na prvu naredbu izanaredbe end.

  • 8/13/2019 Matematika u Matlab-u

    57/164

  • 8/13/2019 Matematika u Matlab-u

    58/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 58

    Koristei se formulom za raunanje zbroja prvih n lanova aritmetikoga niza, provjerite''runo'' da je zbroj prvih 100 prirodnih brojeva uistinu jednak 5 050.

    Primjer 2.Napiimo funkcijufaktorijeliji je jedina ulazna varijabla prirodan broj n, a jedinaizlazna varijabla umnoak prvih nprirodnih brojeva (taj se umnoak oznaava s n! i naziva n

    faktorijela). Oznaimo tu izlaznu varijablu s u. Ideja za rjeenje zadatka je slina kao uPrimjeru 1., samo to na poetku varijabli u dodijeljujemo vrijednost 1, a u petlji umjestoz=z+mstavljamo z=z*m. Stoga u funkcijsku m-datoteku faktorijel.mutipkavamo redom:

    function u=faktorijel(n)u=1;

    for m=1:n

    u=u*m;

    end

    Pohranimo upisane naredbe, vratimo se u radni prostor i izraunajmo 40! utipkavajui:

    u=faktorijel(40)

    i MATLAB e ispisati:

    u =

    8.159152832478977e+047

    Primjer 3. Napiimo funkciju zp ija je jedina ulazna varijabla prirodan broj n, a jedinaizlazna varijabla zbroj prvih n parnih prirodnih brojeva. Oznaimo taj zbroj ponovno sa z.Prvi parni prirodan broj je 2, a kako ih mora biti ukupno n, posljednji od njih je 2n. Idejarjeavanja zadatka je slina kao u prethodnim primjerima, samo to se naredbaformora malopreraditi. U funkcijsku m-datoteku zp.m utipkavamo:

    function z=zp(n)

    z=0;for m=2:2:(2*n)

    z=z+m;

    end

    Pohranimo upisane naredbe i vratimo se u radni prostor. elimo li izraunati zbroj prvih 10parnih prirodnih brojeva, u novomu retku radnoga prostora upiimo:

    z=zp(10)

  • 8/13/2019 Matematika u Matlab-u

    59/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 59

    i dobit emo:

    z =

    110

    Koristei se formulom za raunanje zbroja prvih n lanova aritmetikoga niza, provjerite''runo'' da je zbroj prvih 10 parnih prirodnih brojeva uistinu jednak 110.

    4.3.2.

    Ova naredba koristi se prigodom ponavljanja niza naredbi sve dok je valjan odreeni logikiuvjet. Njezina sintaksa je

    while logiki uvjetnaredbe

    end

    I ovdje za ''prisilni'' izlaz iz petlje moemo rabiti naredbu break. Valja napomenuti da ukoliko

    logiki uvjet ''u startu'' nije valjan, niti jedna od naredbi unutar while-petlje niti jednom neebiti izvrena.

    Pogledajmo uporabu ove naredbe na primjerima.

    Primjer 4.Izraunajmo sumu reda

    +

    4

    1

    n

    n

    do na tonost eps. Izraz do na tonost eps znai da prigodom raunanja zbroja reda kao

    pribrojnike uzimamo sve lanove reda koji su barem jednaki eps. Budui da je niz an= 41nn +

    strogo padajui (provjerite to!), tih lanova ima konano mnogo, pa za rjeavanje zadatkamoemo rabiti petlje. Radi preglednosti, rjeenje zadatka zapisat emo u obliku obine mdatoteke red.m. U tu datoteku utipkamo:

  • 8/13/2019 Matematika u Matlab-u

    60/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 60

    s=0; inicijalizacija zbroja sn=1; inicijalizacija indeksa nwhile (n+1)/(n^4)>=eps uvjet da lan reda mora biti barem jednak epss=s+(n+1)/(n^4); n-ta parcijalna suma redan=n+1; poveanje indeksa za 1

    end kraj petljes ispis konane sume reda

    Pohranimo tu datoteku i vratimo se u radni prostor. U njegovu novomu retku upiimo

    red

    i dobit emo:

    s =

    2.28438013685600

    To je traena suma reda.

    Primjer 5. Izraunajmo sumu alterninanoga reda +

    !

    )1(1

    n

    n

    do na tonost eps. U ovome

    emo zadatku vidjeti kako unutar neke petlje pozivamo zasebno definirane MATLAB-ovefunkcije. U Primjeru 2. stvorili smo funkcijsku mdatoteku faktorijel.mkoju emo iskoristitipri rjeavanju ovoga zadatka. Opet radi preglednosti zapiimo rjeenje zadatka u oblikuobine mdatoteke alternirani.mU tu datoteku utipkamo:

    s=0;n=1;

    while abs((-1)^(n+1)/faktorijel(n))>=epss=s+(-1)^(n+1)/faktorijel(n);n=n+1;

    ends

    Objasnimo poblie trei redak ove datoteke. On predstavlja zahtjev da apsolutna vrijednostsvakoga lana reda mora biti barem jednaka eps. Zbog ega nismo mogli postupiti kao uPrimjeru 4.? Budui da je red alternirani, njegovi lanovi mijenjaju predznak: prvi jepozitivan, drugi negativan, trei opet pozitivan itd. Nakon inicijalizacije varijable n u

  • 8/13/2019 Matematika u Matlab-u

    61/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 61

    drugomu redu, MATLAB e u treemu redu provjeriti je li nejednakost!1

    )1( 11+epsistinita.

    Ona to oito jest pa e se izvriti naredbe u etvrtomu (varijabla spoprima vrijednost 0 + 1 =1) i petomu redu (n poprima vrijednost 1 + 1 = 2) i vratiti ponovno u trei red. Sada

    MATLAB provjerava istinitost nejednakosti!

    )1( 1

    n

    n+epsza n= 2. Za n = 2 na lijevoj je

    strani te nejednakosti negativan broj, a s desnoj pozitivan pa ona nije istinita. Time MATLABautomatski ''preskae'' sve daljnje naredbe sadrane u whilepetlji, te prelazi na prvu naredbu

    iza naredbe end. No, time oito ne dobivamo eljenu sumu reda, ve samo ispis njegovaprvoga lana.

    Uoimo uporabu funkcije faktorijel u treemu retku i nain njezina pozivanja! Kako smovidjeli u Primjeru 2., jedina njezina ulazna varijabla je prirodan broj n. Na poetku je n=1, u petomu redu petlje stoji naredba da se nprigodom svakoga izvravanja petlje uvea za 1,to znai da npoprima vrijednosti 1, 2, 3, , ba kako i zahtijeva funkcijafaktorijel. Dakako,prije poziva funkcije moramo inicijalizirati sve njezine ulazne varijable, to smo i uiniliinicijalizirajui varijablu nu drugomu redu.

    4.3.3.

    Naredba ifelse (engl.: ako inae) slina je naredbi while jer se takoer koristi zaponavljanje niza naredbi sve dok je zadovoljen odreeni logiki uvjet. Razliku meu ovedvije naredbe objasnit emo na sintaksi:

    if logiki izraznaredbe1

    elsenaredbe2

    end

    Evo kako ''funkcionira'' ova petlja: Kad prigodom izvravanja programa MATLAB ''doe'' donaredbe if, ''pogleda'' je li logiki izraz naveden odmah iza naredbe ifistinit ili nije. Ukoliko

    jest, izvrava se skup naredbi naredbe1 i nakon toga se ponovno provjerava istinitostlogikoga izraza. Ukoliko logiki izraz nije istinit, tono jednom se izvrava skup naredbinaredbe2 i nakon toga se prelazi na prvu naredbu iza naredbe end. Dakle, skup naredbinaredbe1 moe se izvravati i vie puta (tonije, sve dok je logiki izrazistinit), dok se skupnaredbi naredbe2 izvrava svega jednom.

  • 8/13/2019 Matematika u Matlab-u

    62/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 62

    Ukoliko je skup naredbi naredbe2 prazan skup, dio

    elsenaredbe2

    moemo izostaviti.

    Pogledajmo uporabu ove naredbe na primjerima.

    Primjer 6.Kreirajmo funkcijsku mdatoteku zbrojm.mkoja sadri jedino funkciju zbrojmije su ulazne varijable realne matrice xi y, a izlazna varijabla 1 ako postoji zbroj x+ y, a 0inae. Podsjetimo se da se matrice mogu zbrojiti ako i samo ako su istoga tipa. Stoga najprijemoramo usporediti ukupne brojeve redaka, odnosno stupaca tih matrica, to emo uinitirabei naredbu size. To e ujedno biti i na logiki uvjet u naredbi if. Otvorimo novu mdatoteku i utipkamo:

    function z=zbrojm(x,y)

    if (size(x,1)==size(y,1)&size(x,2)==size(y,2))

    z=1;

    else

    z=0;

    end

    Ovdje prvi put susreemo uporabu ''klasinoga'' logikoga operatoraAND(engl.: i) iju smooznaku ve upoznali u toki 1.4. Uoimo uporabu naredbe if. Logiki uvjet zapisan udrugomu retku ''preveden'' na ''obian'' jezik glasi: ''Ako je broj redaka matricexjednak brojuredaka matriceyiako je broj stupaca matrice xjednak broju stupaca matricey, onda'' Ako

    je taj logiki uvjet istinit, prelazi se na naredbu navedenu odmah u retku ispod. U tome seretku izlaznoj varijablizdodijeljuje vrijednost 1 jer tako zahtijeva zadatak. Ako logiki uvjetnije istinit, prelazi se na prvu naredbu ispod naredbe else. To je z = 0 kojom se izlaznojvarijablizdodijeljuje vrijednost 0, opet jer tako zahtijeva zadatak. Tree mogunosti nema pase zatvara petlja, a time i cijela funkcija.

    Pohranimo dobivenu datoteku i vratimo se u radni prostor. Provjerimo ''ispravnost rada'' naefunkcije na primjeru matrica

    [ ] [ ]

    ===

    3

    2

    1

    i213,321 CBA .

    Utipkajmo u novi redak radnoga prostora:

  • 8/13/2019 Matematika u Matlab-u

    63/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 63

    A=[-1 2 3];B=[3 1 2];C=[1;2;3];

    pa pozovimo funkcijuzbrojmza parove matrica (A,B) i (B,C). Oekujemo da ezbrojm(A,B)biti jednak 1 jer suAiBistoga tipa (1 3), te da e zbrojm(A,B)biti jednak 0 jerBi Cnisuistoga tipa. Utipkamo:

    z1=zbrojm(A,B),z2=zbrojm(B,C)

    pa e MATLAB ispisati:

    z1 =

    1

    z2 =

    0

    Primjer 7. Kreirajmo funkcijsku mdatoteku extremi2.m koja sadri jedino funkcijuextremi2 iji su argumenti realni brojevi a, bi ci koja ima dvije izlazne varijable: minkoja seispisuje ako i samo ako polinom p(x) = ax2+ bx+ c ima minimum i jednaka je vrijednosti

    toga minimuma, te max koja se ispisuje ako i samo ako polinom p(x) = ax2

    + bx + c imamaksimum i jednaka je vrijednosti toga maksimuma. U sluaju da polinom nema ekstrema,treba ispisati tekstNema ekstrema.

    Podsjetimo se da polinom p(x) = ax2 + bx + c uvijek ima ekstrem s koordinatom

    a

    bac

    a

    bT

    4

    4,

    2

    2

    . Taj ekstrem je minimum ako je a> 0, a maksimum ako je a< 0. Stoga u

    mdatoteku extremi2.mutipkamo:

    function[min,max]=extremi2(a,b,c);

    if a==0

    'Nema ekstrema'else

    ekstrem=[-b/2*a (4*a*c-b^2)/4*a];

    if a>0

    min=ekstrem

    else

    max=ekstrem

    end

    end

  • 8/13/2019 Matematika u Matlab-u

    64/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 64

    Uoimo strukturu ove funkcije! Najprije se provjerava je li a= 0 i ako jest, ispisuje se tekstNema ekstrema i petlja je gotova. Ukoliko je a0 (to osigurava else), najprije se raunajukoordinate ekstrema (prema gornjoj formuli), a onda se postavlja jo jedna ifelsepetlja ukojoj se odreuje je li izraunati ekstrem minimum ili maksimum.,

    Primjer 8.Odredimo sva rjeenja nejednadbe 4x2 + 4y236 koja se nalaze unutar skupa[5,5]2. ([5, 5]2 = [5, 5] [5, 5] je Kartezijev kvadrat segmenta [5, 5].) Radi

    jednostavnosti, zapiimo rjeenje ovoga primjera u datoteku nejednadzba1.m. Osnovna idejaje provjeriti zadovoljava li svaka toka skupa [5, 5]2zadanu nejednadbu, ali kako tih toaka

    ima neprebrojivo mnogo (tj. koliko i realnih brojeva), ograniit emo provjeru na ukupno10 000 toaka. Utipkamo:

    hold

    x=(-5):0.1:5;

    y=(-5):0.1:5;

    for m=1:100

    for n=1:100

    if 4*x(m)^2+4*y(n)^2

  • 8/13/2019 Matematika u Matlab-u

    65/164

  • 8/13/2019 Matematika u Matlab-u

    66/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 66

    Ovo je klasian programerski zadatak koji se susree u svim kursevima iz osnovaprogramiranja. Osnovna ideja za rjeavanje jest sljedea: Izlazna varijabla (nazovimo je y)inicijalizira se na element x11 zadane matrice. Potom se ta vrijednost poinje redomusporeivati sa sljedeim elementima matrice. Ukoliko se naie na element manji odvrijednosti pohranjene u varijabli y, taj se element pohrani u tu varijablu (time se brieposljednje pohranjena vrijednost varijable y). Zbog tranzitivnosti relacije ''manji ili jednak''((a < b b < c) (a < c)) novopohranjeni element ne moramo usporeivati sa svimelementima koje smo ''obradili'' prije njega nego usporeivanje nastavljamo dalje sve dok nedoemo do posljednjega elementa zadane matrice.

    Prema tome, u datoteku najmanji.mutipkajmo:

    function y=najmanji(x)

    y=x(1,1);

    for m=1:size(x,1)

    for n=1:size(x,2)

    if x(m,n)

  • 8/13/2019 Matematika u Matlab-u

    67/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 67

    4.4.

    1.Zadane su jednoretane matrice x= [0.5 1 0.25 0 4] i y = [2 1 4 0.75 0.25].Koristeifor petlju izraunajte vrijednosti sljedeih izraza::

    a) =

    5

    1kkk yx ; b)

    =

    5

    1

    32

    kkk yx ; c)

    =

    5

    1kkk yx .

    2. Koristeifor petlju izraunajte module vektora:

    ( )2 3 1 0 5 3x= i

    2003 2001 2003 2001 (cos sin tg ctg )

    4 4 4 4y

    =

    (Formule za raunanje duljine ovih vektora analogne su formuli za raunanje duljine vektorau trodimenzionalnom prostoru.)

    3.Zadana je funkcija nepoznatas:

    function y=nepoznata(n)

    y=0;

    for m=2:3:n

    y=y+m^2;

    end

    Bez uporabe MATLAB-a odredite to e se ispisati ukoliko utipkamo:

    y=nepoznata(9)

    Potom provjerite svoje rjeenje rabei MATLAB.4. Zadana je funkcija nepoznata1 s:

    function y=nepoznata1(n)

    y=1;

    for m=n:1

    y=y*m;

    end

  • 8/13/2019 Matematika u Matlab-u

    68/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 68

    Bez uporabe MATLAB-a odredite to e se ispisati ukoliko utipkamo:

    y=nepoznata1(9)

    Potom provjerite svoje rjeenje rabei MATLAB.

    5.U nekoj funkcijskoj mdatoteci, izmeu ostaloga, pie:

    for m=1:2:101

    for n=2:2:102if (m+n=49)

    .

    .

    end

    end

    end

    (S su oznaene naredbe u if-petlji nevane za zadatak.)

    a)Koliko e se puta izvriti gornjaforpetlja za varijablu m?

    b)Koliko e se puta izvriti gornjaforpetlja za varijablu n?

    c)Koliko e se puta izvriti gornja ifpetlja?

    6.U nekoj funkcijskoj mdatoteci izmeu ostaloga pie:

    i=1;

    while (i

  • 8/13/2019 Matematika u Matlab-u

    69/164

    ELEKTROTEHNIKI ODJEL

    Matematika u MATLAB-u

    mr.sc. Bojan Kovai, predava 69

    a) 21

    n; b)

    + 23 2

    sin

    nn

    n; c)

    ++

    +

    1ln2

    tg2 nnn

    nn; d)

    +1

    4 )1ln(ne

    n.

    8. Grafiki rijeite sljedee nejednadbe na segmentu [-6,6]:

    a)x2 +y29; b)4x2+ 4y225; c)2x2+ 3y26; d) 3x2+ 4y224;

    e)4x2y24; f) 9x2 4y236; g)2x+ 3y< 6; h)3x 2y+ 12 < 0.

    9.Kreirajte obinu m-datoteku pozivom koje e se ispisati:

    a)zbroj kvadrata prvih 50 prirodnih brojeva;

    b)zbroj treih korijena prvih 1 000 000 prirodnih brojeva.

    10.Kreirajte obinu m-datoteku pozivom koje e se prikazati:

    a) graf funkcijef(x) =x2+ 5x+ 6 na segmentu [-6, 6];

    b)graf funkcijef(x) = sinxna segmentu [-8, 8];

    c)grafovi funkcijaf(x) = 1+x i g(x) = ln(x+ 1) na segmentu [0, 3].

    11. Kreirajte obinu m-datoteku obini.m pozivom koje e se prikazati graf funkcije

    f(x) = 1+x na segmentu [3, 3]. to se dogaa nakon poziva te datoteke iz radnogaprostora? Obrazloite!

    12.Kreirajte funkcijsku mdatoteku zn.mkoja e sadravati jedino funkciju zniji je jedinaulazna varijabla prirodan broj n, a jedina izlazna varijabla vrijednost zbroja prvih nneparnihprirodnih brojeva. Provjerite svoje rjeenje za n= 10.

    13. Kreirajte funkcijsku mdatoteku zpk.m koja e sadravati jedino funkciju zpk ija jejedina ulazna varijabla prirodan broj n, a jedina izlazna varijabla vrijednost zbroja kvadrataprvih nparni