Mathcad Modul # 2 Operatori i funkcije Relacioni i logicki operatori - (funkcija if) Korisnicki definisane funkcije Globalne promenljive 1) Operatori i funkcije: U Mathcadu se razlikuju operatori i funkcije, mada je njihova uloga prilicno slicna. Operatori i funkcije figurisu u matematickim regionima i u Mathcad-u nalaze grupisani u paletama (Toolbar). Kada aktivirate View=>Toolbars=>Math dobijate sledecu Math paletu koja sadrzi 9 podpaleta Ako slucajno zatvorite ovu paletu klikom na X mozete je u svakom momentu vratiti sa View=>Toolbars=>Math Klikom na neku od ovih 9 ikona otvara se podpaleta sa skupom operatora. Ove podpalete mozete pomerati na mesto gde vam odgovara. U podpaletama se nalaze operatori i funkcije.
Operatori: Aktiviranjem nekih od operatora cete dobiti graficki izgled operatora i, u zavisnosti od operatora, odredjen broj plejsholdera koje treba ispuniti. Na primer, ako postavite misa na Calculator palete i izaberete operator +. Dobijate odgovor da je to operator sabiranja (Addition) i da je njeg unos sa tastature karakter +. Kada kliknete na ovaj operator dobijate To znaci da ovaj operator ima dva operanda (dva plejsholdera) koje treba da unesete. Broj plejsholdera predstavlja broj operanada datog operatora. Operator izvrsava odredjenu operaciju nad operandima i dobijate rezultat. Na primer ako izaberete sledeci operator iz Calculus palete na ekranu cete dobiti Ovo je operator sumiranja i vidimo da mu je potrebno 4 operanada. Kada ispunimo plejsholdere i pritisnemo taster = dobijamo rezultat 100 x = 1 1 1 x x = 35.591 Izraz se formira pomocu operanada i operatora vodeci racuna o polozaju linija za editovanje (ve smo to spominjali). Iako svaki operator mozete izabrati iz palete, jednostavnije je i brze da one najcesce koristene unosite sa tastature kao sto smo vec i radili. Mathcad se trudi da bude intuitivan i da operatori lice onim operatorima koji se koriste u matematici.
Pokusajte da pomocu operatora za odredjeni integral (nadjite ga) izracunate odredjeni integral funkcije x 1 + x 2 u intervalu [0,1]. Primetite koliko ovaj operator ima operanada i pokusajte u odredjene plejsholdere da ubacite ono sto se od vas ocekuje (slicno - skoro istokao u matematici) Funkcije: Funkcije su slicne opratorima samo za razliku od operatora one nemaju graficki izgled slican matematickoj notaciji nego imaju ime i jedan ili vise argumenata (operatori imaju operande). Imena funkcija podlezu istim pravilima kao i imena promenljivih. Ako, na primer, iz Calculator palete kliknete na sin dobicete sledece sin( ) Ovo je funkcija za izracunavanje sinusa ugla koji je dar u radijanima. Ima jedan argument (plejsholder). Kada ga ispunimo mozemo da dobijemo rezultat sin 3.14 2 = 1 Naravno ovo isto mozete dobiti i unosom sa tastature sin(3.14/2)= U plejsholdere i kod operatora (operatori) i funkcija (argumenti) mozete uneti izraze. Kako u Calculator paleti ima samo nekoliko funkcija gde li su ostale?. Kada vam treba neka ugradjena funkcija nju mozete dobiti pomocu Insert=>Function opcije ili izborom iz palete alata ispod glavnog menija. Tada dobijate sledece
Mathcad ima "mali milion" ugradjenih funkcija. Funkcije su razvrstane po kategorijama (Function Category). Iz odredjene kategorije birate potrebnu funkciju (Function name). Pored toga vidite koliko funkcija ima argumenata (acos(z) ima jedan argument z) i kratko objasnjene sta ta funkcija radi. Ako vam to nije dovoljno mozete kliknuti na? i uci u opsiran Help system Mathcad-a. Kada odaberete zeljenu funkciju kliknete na Insert i funkcija se ubacuje u radni list. U pocetku cete cesto pozivati ovu opciju za insertovanje funkcija ali cete ih vremenom zapamtiti jer je brze unositi ih sa tastature. Kao i ugradjene promenljive tako i ugradjene funkcije mozete redefinisati. Pogledejte sledece objasnjenje. Ako otkucate sin= Dobicete na ekranu sin = function Mathcad vas obavestava da je sin ime funckije. Ako sad otkucate sin:16.7 Dobicete na ekranu sin := 16.7 Ako sada otkucate sin= Dobicete na ekranu sin = 16.7 To znaci da "od sad pa nadalje i ubuduce" u ovom radnom listu sin vise nije funkcija nego promenljiva sa datom vrednoscu. Ako posle ovog slucajno pokusate sin(3.14/2)= Dobicete na ekranu sledece sin 3.14 2 = Kliknite u crveni region i procitajte objasnjenje Nota: Preporuka je da proverite da li ime promenljive nije vec "zauzeto" nekom funkcijom koja ce vam eventualno biti potrebna. Ako vam ta funkcija nije potrebna mozete imenovati promenljivu istim imenom. 2) Relacioni i logicki operatori - funkcija if Pored standardnih aritmetickih operatora u svakom programskom jeziku ili sistemu za proracune postoje relacioni i Bulovi operatori. Ti operatori su u Mathcad-u smesteni u paletu Boolean toolbar. Imaju jedan ili dva operanda i rezultat koji vracaju je
Mathcad-u smesteni u paletu Boolean toolbar. Imaju jedan ili dva operanda i rezultat koji vracaju je "tacno" (1) ili "netacno" (0) Operatori su identicno onim u matematici i imaju isto znacenje Na primer 7 = 7 = 1 Ovo moze da zbuni ali u prevodu znaci de je rezlutat operatora da li je 7 jednako 7 tacno (rezultat je 1) Mathcad vraca kao rezlultat relacionih i logickih operatora 1 za tacno i 0 za netacno 5 > 1 = 1 manje 3 2 = 0 manje ili jednako 10 10 = 0 razlicito 1 = 0 Logicko NE (unarni operator) 1 0 = 0 Logicko I 1 0 = 1 Logicko ILI 1 1 = 0 Logicko ekskluzivno ili (EXILI) 5 + 2 > 6 = 1 Primetite prednost aritmetickih nad relacionim (ako niste sigurni koristite zagrade) 4 < 8 8 = 1 Ovakva notacija se cesto koristi u matematici da se proveri da li je neka 9 > 4 > 2 = 1 vrednost u datom intervalu. Slicne strukture nisu dozvoljene u nekim programskim jezicima ali se Mathcad ovde snalazi Kombinacijom aritmetickih, relacionih i ligickih operatora se mogu kreirati komplikovani logicki izrazi. Cemu to sve sluzi? Najcesca i veoma korisna primena ovih operatora je u kombinaciji sa funkcijom if. Ova funkcija se naziva i funkcija oclucivanja i ima sledeci izgled if(logizraz,izraz1,izraz0) i kao rezultat vraca ili izraz1 (ako je logicki izraz logizraz tacan ili izraz0 ako je logicki izraz logizraz netacan). izraz1 i izraz0 dva mogu biti numericke konstante - brojevi, promenljive, izrazi (cak i nova if funkcija) ili cak tekstualne konstante Na primer: 1.U zavisnosti od vrednosti promenljive Temp dobijamo rezultat tecno ili cvrsto Temp := 20 if( Temp > 0, "tecno", "cvrsto" ) = "tecno" 2.Malo komlikovanija funkcija. U zavisnosti od promenljive Re dobijamo turbulentno, prelazno
2.Malo komlikovanija funkcija. U zavisnosti od promenljive Re dobijamo turbulentno, prelazno ili laminarno. Treba Biti veoma obazriv kod ovakvih situacija. Menjati promenljivu Re i videti rezultat. Cilj je da kao rezultat dobijemo laminarno prelazno turbulentno Re 2100 2100 < Re 50000 Re > 50000 Re := 10000 if( Re > 50000, "turbulentno", if( Re > 2100, "prelazno","laminarno" )) = "prelazno" 3. U zavisnosti od promenljive Re racunamo f po jednom od dva izraza Re := 1000 16 0.0791 f := if Re > 2100,, Re 4 Re f = 0.014 Nota Cesto se relacioni operator = (CTRL+= sa tastature ) mesa sa operatorom za prikaza reziltata = (= sa tastature) ili operatorom za dodelu vrednosti := (: sa tastature) Na primer x = y x + y x ovaj region nista ne izracunava. To je isto kao da ste napisali ili tako da se relacioni operator = cesto koristi kada zelimo da napisemo neki jednacinu (da koristimo jednako) ali da se nista ne racuna. Ovo je najcesce slucaj pri objasnjavanju necega ili u estetske svrhe. Na primer: Jednacina za proracun frikcionog faktora f za turbulentno strujanje je 1 f = 4 log( Re f) 0.4 Korisnicki definisani operatori i funkcije: Mathcad dozvoljava da pored silnih operatora definisete i vase unarne ili binarne operatore (Zainteresovani mogu pogledati Help sistem). Korisnije je i interesantnije je sto se mogu definisati i nove korisnicke funkcije koje posle mozemo koristiti kao i ugradjene pozivim imena funkcije sa zadatim argumentima. Proceduru cemo objasniti na konkretnom primeru: Potrebno je izracunati specificnu entalpiju vazduha koji se zagreva od temperature T1 do temperature T2. Podrazumevamo da se vazduh ponasa kao idealan gas. Definisemo potrebne promenljive a := 28.94 b := 0.4147 10 2 c := 0.3191 10 5 d := 1.965 10 9
a := 28.94 b := 0.4147 10 c := 0.3191 10 d := 1.965 10 Sada definisemo funkciju za specificni topotni kapacitet cp koja zavisi od temperature T c p ( T) := a + b T + c T 2 + d T 3 Obratite paznju na nekoliko stvari. Indeks p u imenu funkcije je dobijen tako sto smo ime funkcije otkucali kao c.p...sve sto se u imenu promenljive ili funkcije otkuca posle. se spusta u indeks. Ovde p nema vrednost nego je samo deo imena promenljive. Ovakav indeks se zove literalni ili "kobajagi" indeks. Kod vektora i matrica indeks se drugacije unosi i ima vrednost (oko ovih indeksa cesto se prave zabune pa cemo to ponoviti nekoliko puta na odgovarajucim mestima) Iza imena funkcije u malim zagradama stoje imena fiktivnih argumenata razdvojeni zagradama - u ovom slucaju samo jedan argument T. Posle operatora za definisanje vrednosti := je izraz (isto kao i za definisanje promenljive). Primetite da i u izrazu figurise fiktivni argument T. Pored fiktivnog argumenta figurisu a,b i c. To su promenljive koje prethodno moraju biti definisane Sada cemo definisati funkciju za specificnu entalpiju H a ( T 2, T 1 ) T 1 Da bi ste otkucali koristite Greek paletu. Odredjeni integral je u Calculus paleti. Primetite da u ovom izrazu figurise vec definisana funkcija za toplotni kapacitet c p ( T). Ugradjene i korisnicki definisane funkcije mogu figurisati u izrazima jer (kao i operatori) daju rezultat. Takodje smo ovaj integral mogli da izracunama "peske" pa bi smo dobili sledecu definiciju entalpije ( ) := a ( T 2 T 1) H b T 2, T 1 T 2 := Ako usvojimo tempareture c p ( T) dt (1) b 2 2 + T 2 2 T 1 c 3 3 + T 3 2 T 1 d 4 4 + T 4 2 T 1 (2) T2 := 200 T1 := 50 Pozivom funkcija H a i H b sa stvarnim argumentima dobijamo iste rezultate kao sto bi trebalo i da bude H a ( T2, T1) = 4.426 10 3 H b ( T2, T1) = 4.426 10 3 Nota: Funkcija se definise jednom a moze se pozvati (koristiti) vise puta. Tako se pri definiciji kao argumenti koristi termin fiktivni argumenti ili fiktivne promenljive. Njihovo ime nije od znacaja. Od znacaje je njihov broj, redosled i tip (videcemo sta tip znaci). Na primer: funkciju (1) smo mogli da definisemo kao H a ( vecet, manjet) vecet := manjet c p ( T) dt (3)
manjet i da njenim pozivom sa stvarnim argumentima dobijemo isti rezultat. Stvarni argumenti su, u opstem slucaju, izrazi. Na primer ili ili H a ( T2, T1) = 4.426 10 3 H a ( 200, 50) = 4.426 10 3 To := 50 H a ( To + 150, To) = 4.426 10 3 Ovo funkcionise tako sto se fiktivni argumenti u definiciji funkcije zamenjuju stvarnim po odgovarajucem redosledu pa se izracuna izraz sa desne strane definicije funkcije i to dobijemo kao rezultat. Evo primera gde cemo to pokusati da jos vise razbistrimo prva( x) := 1 + x druga( x) := 2 + x treca( x, y) := x + y 3 cetvrta( x, y) := ( x + y) 2 Definisali smo cetiri funkcije. Prve dve imaju jedan argument a druge dve dva argumenta x := 2 y := 3 Ovi x i y nemaju nikakve veze sa fiktivnim x i y u funkcijama prva( y) = 4 Nadam se de ovde nema zabune druga( x + y) = 7 a ovde? treca( y, x) = 11 a ovde? cetvrta( y + 1, x 4) = 4 a ovde? Vec smo spomenuli da se radni list izracunava odozgo nadole i sleva nadesno. Tako ako pogledate sledeci primer mozete se naci u zabuni a := 2 b := 3 definicija promenljivih a i b funkcija ( x) := a + b + x definicija funkcije a := 6 b := 4 nove definicije a i b Pozivamo funkciju: X := 10
funkcija ( X) = 15 Pogledajte dobro koje a i b je uzeto pri pozivu funkcije, da li 2 i 3 ili 6 i 4 Stvarni argument je X i ima vrednost 10. To nije sporno. Medjutim, pri pozivu funkcije fiktivni argument x se zamenjuje sa stvarnim X ali se vrednosti za a i b se uzimaju one koje prethode definiciji funkcije tj prethodno definisane. 2) Globalne promenljive. Zbog prethodno naglasenih stvari oko redosleda izracunavanja regiona i koristenja funkcija nekada je korisno imati promenljive koje vaze u citavom dokumentu bez obzira gde su definisane. Te promenljive se nazivaju globalne promenljive. Globalne promenljive se definis operatorom iz Evaluation palete umesto operatora := Pogledajmo primer A := 5 Dodela vrednosti promenljivoj B := A + 10 B = 15 Izracunavanje B gde u izrazu figurise A Ovo je poznato. Prethodno je bilo potrebno definisati A a onda definisati B Medjutim promenljive mozemo umesto sa := da definisemo sa operatorom za globalnu definiciju Ag 50 Bg Ag + 100 Bg = 150 Za sada nema neke razlike dok god se drzimo pravila "odozgo nadole i sleva nadesno". Na osnovu toga, naravno, ovo nije dozvoljeno B1 A1 + 5 A1 10 Ali na osnovu definicije globalne promenljive ovo je dozvoljeno BB := AA + 4 AA 10 BB = 14 Mathcad se ne buni jer je AA definisano ispod i globalno Medjutim ako koristimo i jedan i drugi operator nepazljivo moze doci do greske. Globalna promenljiva koja je definisana izrazom koristi globalno definisane promenljive. Pogledati zuti (gore iznad), plavi i zelene regione. Ag := 10 Prikazite vrednost promenljive AA iznad definicije promenljive BB (sivi region). Menjajte vrednost promenljive AA. Sta se zapaza? Bg Ag + 6 Bg = 56 Koristeno "zuto" Ag a ne "plavo" Ag
Ag := 100 Bg = 56 Bg := Ag + 10 Bg = 110 Ovde se koristi poslednje definisano A bez obzira sto je A definisano globalno (zuti region) Slicno je razmatranje i sa globalno definisanim funkcijama. a1 := 20 b1 := 30 a1 2 b1 3 funkcija1( x) := a1 + b1 + x a1 6 b1 4 Pozivamo funkciju: X := 10 funkcija1( X) = 15 Pogledajte dobro koje a1 i b1 je uzeto pri pozivu funkcije Lokalno definisana funkcija uzima prethodno definisane promenljive (lokalne ili globalne) iznad ili sa leve strane definicije (znaci 2 i 3) a2 := 2 b2 := 3 funkcija2( x) a2 + b2 + x X := 10 a2 20 b2 30 a2 6 b2 4 Pozivamo funkciju: funkcija2( X) = 60 Pogledajte dobro koje a2 i b2 je uzeto pri pozivu funkcije Globalna definisana funkcija koristi prethodne globalno definisane promenljive X := 10 a3 1 b3 1 funkcija3( X) = 210 Mathcad se ne buni jer je funkcija definisana ispod ali globalno ali obratite paznju koje vrednosti za a3 i b3 su uzete a3 100 b3 100 funkcija3( X) = 210 funkcija3( x) a3 + b3 + x b3 300 a3 200
b3 300 a3 200 funkcija3( X) = 210 Nota: Ne koristiti globanu definiciju promenljive ili funkcije ako nije preko potrebno. Iako cete uglavnom koristiti lokalne definicije operatorom := evo primera korisnog definisanja promenljivih kao globalne. Zamislite sad situaciju gde vam je potrebno da menjate a i b ali da lokalnu definiciju funkciju ne menjate (da ostane samo jedan fiktivni argument). Ako je izmedju poziva i definicije funkcije mnogo regiona morate se vracati i stalno iznad definicije funkcije ispravljati a i b. To cete resiti tako sto cete u celom dokumentu na vama odgovarajucem mestu samo jednom globalno definisati odgovarajuce promenljive i menjati ih po potrebi. One ce se primenjivati na ceo dokument. Na primer: fja( x) := aglob + bglob + x lokalna definicija funkcije, aglob i bglob nisu definisane iznad a Mathcad se ne buni, znaci da su definisane negde ispod ali kao globalne Zamislite ovde mnogo regiona koje slede, znaci mnogo praznog prostora aglob 10 X := 20 fja( X) = 50 bglob 20 Samo jednom u dokumentu Ovde je poziv funkcije Menjajte vrednosti za aglob i bglob i vidite sta se desava Kraj
i ec
d
e
e