A három éve indított blogom hatalmas sikerére tekintettel, el is kezdeném néhány idevágó szoftver csomag ismertetését. :)
Elsőként fókuszáljunk rögtön a matematikára, illetve annak tanulására és oktatására egy kicsit! (nálam ez most egyébként is erősen aktuális a téma :) )
Szerencsére programok, könyvtárak és kisebb programocskák százai állnak rendelkezésünkre már az alapértelmezett tárolók használatával is, ezek után végképp érthetetlen a számomra, hogy a linux (és ezen belül az edubuntu) világa miért számít még mindig mostohagyereknek a magyar közoktatásban. Az egyszerű, a kisiskolásokat a négy alapműveletre megtanító játék programoktól kezdve, egészen az MIT-n vagy Berkeley egyetemeken évtizedek óta fejlesztett projektekig bezárólag , az elérhető programoknak csak a mérete több gigabájtot tesz ki, s leendő tanárként meggyőződésem is egyben, hogy ezek a programok a hazai köz- és felsőoktatás teljes igényét lefedik, s teszik mindezt "természetesen" teljesen ingyenes formában!
A legelső ilyen kiragadott példám legyen most a wxMaxima névre keresztelt program.
De mi is ez a program valójában?
Eredetileg az MIT-n , 1982-ben az Amerikai Energetikai Hivatal megbízásából kifejlesztett általános rendeltetésű kompjuteralgebrai rendszer (akkori nevén Macsyma), melyet aztán több más, nagy hírű egyetem (mint például Stanford vagy Berkeley) bevonásával --a mai napig használatos Maxima néven-- fejlesztenek tovább.
De mik is azok a kompjuteralgebrai rendszerek? Ezek olyan, kutatást, számítást segítő programok, melyeknél a "végeredmény" az esetek többségében nem feltétlenül egy numerikus érték, hanem valamilyen, attól sokkal általánosabb, absztraktabb kifejezés (például egy halmaz, vagy egy algebrai csoport, egy egyenlet, primitív függvény stb) .
A Maxima --kompjuteralgebrai programként-- azonban nem csak a kutatásban nyújt nagy segítséget, hanem az oktatásban is, hiszen elég széleskörű eszköztárral rendelkezik. Nem specializálódik semmire, egyszerre foglalja magába az algebrát, az analízist, a geometriát, vagy akár a numerikus matematikát is. Valójában a wxMaxima egy wxWidget-eken alapuló grafikus felhasználói felület a Maxima komputeralgebrai rendszer számára, célja, hogy kényelmes, grafikus kezelőfelületet nyújtson a Maxima használatához.
Számtalan előnye közül az egyik, hogy könnyen tanulható, és szintaktikájában is nagyon hasonló a Wolfram Research Mathematica-hoz, de az utóbbival ellentétben nem szükséges 70-80 ezer forintot fizetned a használatáért. Mármint évente.
Szóval lássuk most egy kicsit a használatát!
Elindítás után egy paracssori környezetben találjuk magunkat, ahol a --Mathematicához hasonlóan-- shift+ENTER lenyomásával tudjuk az aktuálisan beírt utasításainkat kiértékeltetni, míg az ENTER-t a többsoros utasítások bevitelére használhatjuk. (az inkább MatLab-hoz szokott júzerek ezt a két funkciót persze fel is cserélhetik) Próbáljuk is ki rögtön!
(%i1) 12*(141-7)
(%o1) 1608
A (%i1) és (%o1) sorváltozókat természetesen nem kell beírni, ezek a rendszer által automatikusan generálódnak, hogy segítségükkel később hivatkozhassuk a sorok tartalmára (%i: input, az általunk beírt kifejezés, %o: output, vagyis a program által kiértékelt eredmény)
A kompjuteralgebrai rendszerektől persze elvárható, hogy pontosan kezeljenek olyan nagy számokat is, melyek 64-biten már nem ábrázolhatóak. Teszteljük le:
(%i2) 18^21681
Figyelemreméltó gyorsasággal kapjuk meg a PONTOS eredményt , az első és utolsó harminc számjegy kiíratásával, illetve a kettő között lévő 27156 darab (!), az olvashatóság miatt "kitakart" számjegyek számával.
Nem rossz!
Persze nem csak egész számokkal dolgozhatunk:
(%i3) sin(%pi/4)
Szintén pontos eredményt kapunk: egy irracionális szám első akárhány számjegye helyett "egy per gyök kettő" jelenik meg , algebrai tört kifejezés formájában leírva, ahogy mondjuk az egy a suliban felelő diáktól is elvárható lenne :)
( % -jellel tudunk hivatkozni a belső, beépített konstansokra is. Például: %pi, %e, %i, etc)
Egyenletet tudunk megoldani vele? Hát persze! Ehhez a solve() függvényt hívhatjuk segítségül:
(%i4) solve(x^2-x+4=0)
És meg is kaptuk mind a két komplex gyököt, szintén szép, algebrai tört alakban felírva.
Persze, nem csak kanonikus alakban történhet az egyenlet megadása, a fenti egyenletet megoldhatjuk például így is:
(%i5) solve(x*(x-1)=-4)
Az eredmény természetesen ugyan az. Paraméteres egyenlet? Az sem gond!
(%i6) solve(x*(x-a)=-4,x)
Ez esetben 'x-re' oldjuk meg az egyenletet (ezt vesszővel elválasztva "tudatnunk" kell a solve() függvénnyel) és az 'a' változó lesz a paraméter. A kiírt eredmény szintén önmagáért beszél.
És mi a helyzet a függvény ábrázolással? Az is megy pillanatok alatt:
g(x):=x^2*sin(x)
plot2d(g(x),[x,-3,3])
(a függvény deklaráció esetén szükséges a kettőspont használata az egyenlőségjel előtt, a plot függvénynek pedig az ábrázolás tartományát is ki kell jelölnünk)
vagy:
f(x,y):=%e^sin(x)*cos(y)
plot3d(f(x,y),[x,-2,2], [y,-2,2])
Az eredmény valami ilyesmi lesz:
http://www.keepandshare.com/userpics/r/i/t/a/na/2013-01/sb/wxmaxima-49673022.jpg?ts=1359373083
Nem elég csodás? Klikk az ábra ablakába, s a bal egér nyomvatartásával teszőleges irányból is megnézheted a felületedet!
Differenciálni és integrálni is tudunk persze, parciálisan is akár:
diff(g(x))
vagy
diff(f(x,y),x)
Az eredmény mindkét esetben "természetesen" egy szép, rendezett alakban felírt függvény lesz.
Az integrálás hasonlóképpen zajlik:
integrate(g(x))
vagy
integrate(f(x,y),x,y)
Azt hiszem, kedvcsinálónak egyelőre elég lesz ennyi is. :) Ha matematikát tanultok, akár közép- akár fősuliban, mindenképpen telepítsétek a wxMaximát, mert nem fogtok csalódni benne és nagyon megéri!
Aki érdeklődik a program iránt, az itt olvashat róla egy kicsit részletesebben, angol nyelven: math.stanford.edu/~paquin/MaximaBook.pdf
R