i i “1593-Jakovac-Brezplacni” — 2010/8/31 — 11:13 — page 1 — #1 i i i i i i List za mlade matematike, fizike, astronome in računalnikarje ISSN 0351-6652 Letnik 32 (2004/2005) Številka 4 Strani 31–33 Marko Jakovac: BREZPLAČNI MATEMATIČNI PROGRAMI Ključne besede: računalništvo, programska oprema, GnuPlot, GraphCalc. Elektronska verzija: http://www.presek.si/32/1593-Jakovac.pdf c© 2005 Društvo matematikov, fizikov in astronomov Slovenije c© 2010 DMFA – založništvo Vse pravice pridržane. Razmnoževanje ali reproduciranje celote ali posameznih delov brez po- prejšnjega dovoljenja založnika ni dovoljeno. 31 RAÈUNALNIŠTVO Brezplačni matematični programi V računalništvu se pogosto srečamo z vezavo strojna-programska oprema. Dejstvo je, da je strojna oprema brez programske ravno toliko kot avtomobil brez motorja. Torej brez programske opreme nikakor ne moremo uresničiti svojih idej. To pa ni edini problem, saj vemo, da je programska oprema lahko zelo draga in si je velikokrat ne moremo privoščiti. Na srečo nas vseh obstajajo tudi prosto dostopni (angl. freeware) programi, ki jih lahko uporabljamo za delo. Žal si ne vzamemo dovolj časa, da bi preiskali svetovni splet, ki nam ponuja brezplačne programe. Običajno se odločimo za nakup dragih progra- mov, ki so »bolj znani«. \ Risanje grafov in računanje Področje matematike in računalni- štva zahteva veliko računanja in risa- nja grafov raznih funkcij. Pogosto je to zelo zahtevno opravilo za človeka, zato se radi poslužujemo programov, ki nam to delo olajšajo. V nadaljeva- nju si bomo ogledali dva zelo priročna programa, namenjena operacijskemu sistemu Windows, ki zmoreta prav to. Povezave do predstavljenih in mnogih drugih brezplačnih programov lahko najdete na naslovih, podanih ob koncu članka. \ GnuPlot GnuPlot je program, ki odlično obvla- da risanje ravninskih grafov, omogoča pa tudi risanje prostorskih ploskev. Na prvi pogled je precej neprijazen do upo- rabnika. Marsikoga bo odvrnilo tudi dejstvo, da gre za program, ki zahte- va pisanje ukazov. Vsi ukazi pa so prav tako shranjeni v orodni vrstici, tako da jih lahko enostavno vstavljamo v ukaz- no polje s klikom na miško. Pa si poglejmo, kako uporabljamo osnov- ne funkcije. Program operira z osnovni- mi operatorji za seštevanje (+), odšte- vanje (–), množenje (*), deljenje (/ ) in potenciranje (**). Za zapisovanje funk- cij ene spremenljivke uporabljamo spre- menljivko x, za zapisovanje funkcij dveh spremenljivk pa spremenljivki x in y. Program uporablja naslednji nabor osnovnih funkcij: trigonometrične funkcije sin, cos, tan, krožne funkcije asin, acos, atan, eksponentno in logaritemsko funkci- jo z osnovo e exp, log, hiperbolične funkcije sinh, cosh, tanh. S pomočjo teh funkcij lahko zapišemo poljubno sestavljeno funkcijo. Slika 1. Graf funkcije ƒ(x,y)=(x2+3y2)e1–(x 2+y2) narisan z GnuPlotom Presek 4-n6.indd 31 2/9/2005 14:20:28 Process Cyan Process Magenta Process Yellow Process Black PANTONE Process Magenta CVC PANTONE 312 CVC 32 RAÈUNALNIŠTVO Primer. Funkcijo ene spremenljivke log x 2– 4 x+1 bi zapisali z ukazom log((x**2–4)/(x+1)). Graf funkcije ene spremenljivke nariše- mo z ukazom plot f(x), npr. plot sin(x). Za risanje grafa funkcije dveh spremen- ljivk uporabimo ukaz splot f(x,y), npr. splot (x**2+3*y**2)*exp(1–(x**2+ y**2)) (slika 1). Kadar želimo, da program nariše funk- cijo le na določenih intervalih, zapi- šemo pred funkcijo ene spremenljivke ukaz [x1:x2][y1:y2], pred funkcijo dveh spremenljivk pa ukaz [x1:x2][y1: y2][z1:z2], kjer so [x1:x2] interval za spremenljivko x, [y1:y2] interval za spremenljivko y in [z1:z2] interval za spremenljivko z. Primer. Ukaz plot[–pi/2:pi/2][–10:10] tan(x) bo narisal funkcijo ƒ(x)=tg(x) le na intervalu [– π2 ,π2 ] z zalogo vrednosti z intervala [–10, 10]. Program lahko riše tudi grafe funkcij, ki so podane v polarnem zapisu. Pre- den to storimo, moramo programu po- vedati, da rišemo v polarnem načinu. Polarni način omogočimo z ukazom set polar. Izklopimo ga z ukazom set nopolar. Neodvisna spremenljivka x se nadomesti s spremenljivko t. Pri polar- nem zapisu gledamo odvisnost razdalje od izhodišča, ko kot preteče 360°. Primer. Narisati želimo krožnico, po- dano v polarnem zapisu. Razdalja od izhodišča je pri krožnici vedno kon- stanta, ker so na krožnici točke, ki so enako oddaljene od izhodišča. Če že- limo narisati krožnico s polmerom 1, bomo izvedli naslednje ukaze: set polar plot 1 Kot rezultat dobimo krožnico s polme- rom 1. Pogledali smo si nekaj preprostih pri- merov z GnuPlotom. Program ponuja tudi druge uporabne funkcije (npr. nu- merično računanje podatkov, parame- trično risanje grafov). Predstavljeno programsko orodje je zelo dobra izbira in olajša delo tudi pri najzahtevnejših primerih. \ GraphCalc Prav gotovo ni nikogar izmed nas, ki ne bi poznal namiznega računala, vključe- nega v okolju Windows. Gre za upora- ben program, vendar, kot bomo videli, ga GraphCalc prekaša v vseh pogledih. Poleg tega, da je brezplačen, je zelo uporaben in uporabniku prijazen. Že na prvi pogled GraphCalc naredi na nas lep vtis, ko pa z njim začnemo računa- ti, ga ni več mogoče izpustiti iz rok. Kaj pravzaprav GraphCalc je? Po- vedali smo že, da vsebuje podobne funkcije kot Windows računalo. Ob tem omogoča še zapisovanje funkcij, katerih grafe lahko tudi narišemo. V svoji osnovi deluje program kot čisto navadno računalo. Vse osnovne ope- racije so podobne kot v drugih podo- bnih programih. Operatorje preprosto vnašamo preko tipkovnice ali s klikom na ustrezen gumb v programu. Pro- gram vsebuje tudi nabor elementar- nih matematičnih funkcij, ki jih lahko vnašamo preko orodne vrstice v pro- gramu. Kliknemo Insert in izberemo funkcijo. Med funkcijami, ki so na vo- ljo, najdemo trigonometrične, potenč- ne, korenske, logaritemske in ekspo- nentne funkcije. Presek 4-n6.indd 32 2/9/2005 14:20:32 Process Cyan Process Magenta Process Yellow Process Black PANTONE Process Magenta CVC PANTONE 312 CVC 33 RAÈUNALNIŠTVO Grafe funkcij si lahko ogledamo pod zavihki 2D Graph in 3D Graph. Ko želimo ponovno delati v numeričnem načinu, pre- klopimo na zavihek Output. Pomembna funkcija GraphCalca je pretvorba številskih si- stemov. Tako lahko število zapisano v desetiškem sistemu pretvorimo bodisi v število zapisano v binarnem (dvojiškem) bodisi v katerem koli drugem številskem sistemu z osnovno med 2 in 36. Primer. V oknu Output vnesimo število 123, ki bi ga radi iz- pisali v dvojiškem sistemu. Kliknemo na gumb Base, nato na Convert To Base in izberemo binarno bazo. Program izpiše v oknu 123 convbase2. Če pritisnemo enter, dobimo zapis števila 123 v dvojiškem sistemu, in sicer 1111011(2). Ker se pogosto ukvarjamo tudi z ravninskimi liki ali prostor- skimi telesi in nas zanimajo njihove ploščine oziroma prosto- rnine, je GraphCalc priročen za računanje le-teh. To naredi- mo tako, da pokličemo določeno skripto, ki je programirana za računanje posamezne lastnosti objekta (ploščina lika, volumen in površina telesa). Skripte kličemo tako, da v pro- Slika 2. Reševanje enačbe v GraphCalcu jetni rešitvi. Če bi ugibali rešitev bližje –2, bi program vrnil slednjo. Kot smo videli, ima GraphCalc nekaj zanimivih funkcij. Na voljo so še mnoge druge funkcije, ki jih lahko preiskusite sami. Program je enostaven za uporabo in predstavlja solid- no programsko rešitev za računanje in risanje grafov. Težave nastopijo le pri risanju težkih grafov, saj potrebuje več časa. \ Uporabiti ali ne uporabiti To je vprašanje, ki si ga postavi vsak, ki se sreča z računal- nikom. Dejstvo je, da brez nekaterih programov ne moremo, pa naj se še tako trudimo. Toda veliko plačljivih programov je nadomestljivih s povsem preprostimi in brezplačnimi pro- grami, ki jih lahko najdemo na internetu, npr. na straneh projektov SourceForge in Ofset. Res je, da so manj kom- pleksni po zgradbi in da morebiti nudijo manj funkcij, toda še vedno jih je dovolj, da pomagajo uresničiti želeno idejo. Torej, kaj še čakamo? \ Povezave http://gcalc.sourceforge.net/index.shtml http://www.gnuplot.info http://www.ofset.org http://www.sourceforge.net Marko Jakovac gramu kliknemo na Tools in izberemo Script Library. Nato izberemo lastnost, ki jo želimo izračunati. Nazadnje omenimo še reševanje enačb. GraphCalc je priročen tudi pri reševanju tega problema. Rešuje algebraične enačbe z eno spremenljivko. Primer. Rešiti želimo enačbo x2–4=0. V orodni vr- stici kliknemo na Tools in nato Equation Solver. Od- pre se nam novo okno, kjer v polje Expression vnesemo našo enačbo. V polje Initial guess pa vnesemo rešitev enačbe, ki je po naši oceni najbolj verjetna. S pritiskom na gumb Solve dobimo rešitev enačbe. Kot vemo, ima naša enačba dve rešitvi, in sicer –2 in 2. Če za verjetno rešitev vnesemo 1, nam bo program vrnil rezultat 2 (slika 2), zato ker je izračunana rešitev najbližja ver- Presek 4-n6.indd 33 2/9/2005 14:20:35 Process Cyan Process Magenta Process Yellow Process Black PANTONE Process Magenta CVC PANTONE 312 CVC