Maple (szoftver)

A Wikipédiából, a szabad enciklopédiából
Maple
Maplesoft Maple-11 x2-plus-y2 3D plot.png
Maple-el készült felület (x^2+y^2)

Fejlesztő Maplesoft Inc.
Legfrissebb stabil kiadás 14 (2010. november 1.) +/-
Legfrissebb fejlesztői kiadás 16.01 (2012. május 16.) +/-
Programozási nyelv C, Java, Maple
Operációs rendszer multi-platform
Kategória algebrai program
Licenc kereskedelmi, zárt forráskódú
A Maple weboldala

A Maple egy hatékony matematikai szoftver csomag PCre, melynek segítségével algebrai és formális matematikai műveletek végezhetőek el. Képes továbbá numerikus analízis feladatok elvégzésére és az eredmények sokoldalú grafikus megjelenítésére. A Maple munkafelülete alkalmas technikai dokumentációk készítésére, munkafelületén szöveg, matematikai kifejezések és grafikonok egyaránt megférnek. Nagy erőssége az egyenlet megoldó képesség, és az, hogy jól kezeli a formális matematikai számításokat.

Története[szerkesztés | forrásszöveg szerkesztése]

Maplesoft központja

A Maple első koncepciója 1980 novemberében alakult ki, a Waterlooi egyetemen. Az egyetem kutatói egy olyan számítógépet akartak megvenni, ami elég erős ahhoz, hogy fusson rajta a macsyma. Ehelyett elhatározták, hogy kifejlesztik saját algebrai rendszerüket, ami elérhető a kutatók, és diákok számára. A kezdeti fejlesztés nagyon gyorsan haladt, az első korlátozott kiadása 1980 decemberében jelent meg. A kutatók kipróbálták, és rengeteg különböző ötlettel álltak elő, hogy létrehozzanak egy folyamatosan fejlődő rendszert. A Maple-t először egy konferencián mutatták be 1982-ben. A neve kanadai mivoltára utal. 1983 végére már több mint 50 egyetem számítógépeire volt telepítve a program. Megalapították a Waterloo Maple Inc.-t, mely fő céljai a szoftver osztályozása, illetve, hogy legyen egy részlege, ahol a folyamatos fejlesztés folyik.

Verzió történet[szerkesztés | forrásszöveg szerkesztése]

  • Maple 1.0: 1982. január
  • Maple 1.1: 1982. január
  • Maple 2.0: 1982. május
  • Maple 2.1: 1982. június
  • Maple 2.15: 1982. augusztus
  • Maple 2.2: 1982. december
  • Maple 3.0: 1983. május
  • Maple 3.1: 1983. október
  • Maple 3.2: 1984. április
  • Maple 3.3: 1985. március,
    (első nyilvánosan is elérhető verzió)
  • Maple 4.0: 1986. április
  • Maple 4.1: 1987. május
  • Maple 4.2: 1987. december
  • Maple 4.3: 1989. március
    (első grafikusan használható kezelőfelületet)
  • Maple V: 1990. augusztus
  • Maple V R2: 1992. november
  • Maple V R3: 1994. március 15,
  • Maple V R4: 1996. január
  • Maple V R5: 1997. november 1
  • Maple 6: 1999. december 6
    (numerikus NAG csomag)
  • Maple 7: 2001. július 1
  • Maple 8: 2002. április 16
  • Maple 9: 2003. június 30
    (új Java nyelvű általános interfészt)
  • Maple 9.5:2004. április 15
  • Maple 10: 2005. május 10
  • Maple 11: 2007. február 21
  • Maple 11.01: 2007. július
  • Maple 11.02: 2007. november
  • Maple 12: 2008. május
  • Maple 12.01: 2008. október
  • Maple 12.02: 2008. december
  • Maple 13: 2009. április
  • Maple 13.01: 2009. július
  • Maple 13.02: 2009. október
  • Maple 14: 2010. április
  • Maple 14.01: 2010. október 28
  • Maple 15: 2011. április 13
  • Maple 15.01:2011. június 21
  • Maple 16: 2012. március 28
  • Maple 16.01:2012. május 16


Maple termékskála[szerkesztés | forrásszöveg szerkesztése]

A legújabb technológiákat felsorakoztató termékei a matematikai alapokon nyugvó feladatokat egyszerűbbé, eredményesebbé és hatékonyabbá teszik, mint azok eddig lehettek.

A Maplesoft terméklistája a Maple™, MapleSim™, MapleNet™ és a MapleTA™ szoftverekből áll:

  • Maple egy fejlett matematikai problémamegoldó és programozói szoftver,
  • MapleNet Web alapú infrastruktúrát kínál, mely lehetővé teszi a Maple számítási képességeinek kihasználását egyszerű böngészőn keresztül
  • MapleTA azok számára kínál megoldásokat, akik készíteni, szolgáltatni és értékelni kívánnak matematikai Web alapú teszteket és alkalmazásokat

Maple 15 funkciói[szerkesztés | forrásszöveg szerkesztése]

A több mint 25 éves élvonalbeli kutatás és fejlesztés eredményeként, a Maple egyesíti a világ egyik legnagyobb teljesítményűnek mondott matematikai számítási motorját az intuitív, "kattintó-barát" felhasználói felülettel. A több mint 270 új matematikai funkció és a már meglévő algoritmusokon végrehajtott több mint ezer fejlesztés segítségével az összetett problémákat a korábbiakhoz képest gyorsabban lehet megoldani.

Jelentős fejlesztések történtek a következő területeken:

  • Párhuzamos munkafolyamatok: Lehetőséget kínál a párhuzamos számítás kihasználására, több processzoros (magos) rendszerek, nagyobb számítógép csoportok támogatásával, melyek lehetővé teszik, hogy a problémákat hamarabb kezelje (megtalálja), mint valaha. Maple-lel kihasználhatják a CUDA-kompatibilis grafikus kártyában rejlő hatalmas számítási teljesítményeket így, drámaian felgyorsítóak kulcsfontosságú számítások elvégzése.
  • Felhasználói felület: Intelligens dokumentum környezetben lehetőséget kínál a fejlesztő megoldásaink, vizsgálja matematikai fogalmakat, és megosztja eredményeket.
  • Számítási algoritmusok: Magában foglalja a legújabb, világ színvonalú algoritmusokat, mind szimbolikus és numerikus számításban. Jelentősen a javult a teljesítménye, továbbá támogatja az új alkalmazási területek is.
  • Vezérlési tervezés: Maple számos és kiterjedt eszközt nyújt a lineáris rendszerekkel dolgozóknak a DynamicSystems csomag használatával. A Maple.MapleSim és a MapleSim Control Design Toolbox, egy nagyon hatékony környezetet teremt lineáris és nemlineáris szabályozás kialakítására.
  • Fizika: Fizika kutatásában és az oktatásában is jól használható. Pl.: Kinematika, dinamika, tenzor számítások, a számítástechnika, zárt formájú megoldások közönséges és parciális differenciálegyenletek, differenciálgeometria, absztrakt vektor algebra, a speciális funkciók, elektrodinamika, az általános relativitáselmélet, a kvantum mechanika és a Feynman diagrammok. Előrelépések differenciálegyenletek megoldásának bevezetéséhez, a Bell funkciókhoz, és új algoritmusokhoz differenciál geometriába.
  • Pénzügyi modellezés: Az új pénzügyi csomag rendkívül gazdag a feladatok pénzügyi modellezésének területén a kockázatelemzés, portfólió kezelés, mennyiségi elemzés és modell validálás.
  • Kapcsolatok: Képes csatlakozni az internetre és más termékekhez is az eszközlánc segítségével.

Alapfunkciók[szerkesztés | forrásszöveg szerkesztése]

Maple fájlkiterjesztések
Fájlkiterjesztés .mws és .mpl
Fejlesztő Maplesoft
Formátum típusa szövegfájl


Maple fájlok[szerkesztés | forrásszöveg szerkesztése]

A program elmenthető és újra betölthető, továbbfejleszthető fájlokkal dolgozik. Két gyakran előforduló fájl kiterjesztése van: név.mws és néw.mpl. Az előbbi régebbi, utóbbi pedig a fejlettebb verziókban fordul elő. Mindkét formátum meglehetősen elterjedt[1].


Parancssor[szerkesztés | forrásszöveg szerkesztése]

Interaktív parancssoros felületen a prompt a > jel. Az Enter hatására új parancs kezdődik. Ha hosszú parancsot akarunk megadni, az áttekinthetőség megkönnyítése érdekében kezdhetünk új sort a parancson belül a SHIFT+ENTER kombinációval. Munka közben hasznos a CTRL+DEL kombináció, amellyel az aktuális parancs eredményét, illetve magát a cellát tudjuk törölni. Az aktuális parancs elé CTRL+K-val, mögé CTRL+J-vel szúrhatunk be új parancssort, illetve SHIFT+CTRL+K-val a parancson belül a képlet elé, SHIFT+CTRL+J-vel a parancson belül a képlet mögé írhatunk megjegyzést. A kijelölt, vagy ha nincs kijelölve semmi, akkor az aktuális parancsot a CTRL+pont segítségével húzzuk beljebb, és CTRL+vessző segítségével húzhatjuk a másik irányba.

Értékadás[szerkesztés | forrásszöveg szerkesztése]

Adhatunk értéket betűknek, illetve kifejezéseknek a := segítségével.

Parancs Eredmény
a:=60; a:=60
het:=7; het:=7
2a; 2a
2*a; 120
sina; sina
sin(a); \sqrt{3}/2
 %; sin(60)

A ; a parancs lezárása, és az eredménye kiírására szolgál. A :-al is elvégzi a műveletet, de nem írja ki. A *-jelet nem szabad kihagynunk, és a beépített függvények argumentumát zárójelbe kell tenni. A % az előző értéket adja vissza, így ha egy hosszú eredményt kapunk, nem kell bemásolni, hogy tovább számoljunk vele, elég ha ezt használjuk. Ahány % van egymás mellett, annyival az azelőtti eredményt adja meg. Az értékek addig bennmaradnak a memóriában, míg nem töröljük őket. Globálisan ezt a restart; paranccsal tehetjük. Ha csak egy értéket szeretnénk törölni, azt e módon tehetjük:

Parancs Eredmény
x:=3; x:=3
x; 3
x:='x'; x:= x
x; x

Számológép[szerkesztés | forrásszöveg szerkesztése]

A Maple használható nagy teljesítményű számológépként is. Jól kezeli a paramétereket. Egyszerűsít, illetve ha kell, kifejt. Van pár beépített szimbólum, mint például a Pi vagy az Euler-féle szám. Ezekkel, mint szimbólumokkal tud számolni, így külön meg kell kérnünk, ha a közelítését akarjuk kiíratni. Ha a parancsokat nagybetűvel írjuk, csak kiírja azt, míg kisbetűvel el is végzi.

Parancs Művelet Eredmény
simplify(cos ^2(x)+sin^2(x)); egyszerűsít 1
expand((x+5)^2 ); kifejt x^2+10x+25
pi; pi \pi
evalf(Pi,10); közelíti a pi-t 10 számjegy pontossággal 3.141592653
27 mod 4 kiszámolja mennyi a maradék 3
sum(1/n^2, n=1..infinity); kiírja a műveletet \sum^{\infty}_{n=1}\frac{1}{n^2}
sum(1/n^2, n=1..infinity); elvégzi a műveletet \frac{1}{6}\pi^2

Egyenletek[szerkesztés | forrásszöveg szerkesztése]

Az egyenletek megoldása a solve paranccsal történik, de az egyenlet után meg kell adni, mi az ismeretlen. Az fsolve paranccsal tizedestört alakban kapjuk meg az eredményt. Elnevezhetjük az egyenletet és az eredményt is, melyeket megkülönböztet egymástól. Ha paraméteresen adtunk meg egy egyenletet, de be szeretnénk helyettesíteni, akkor azt az eval-al tehetjük. Mivel paraméterrel is tud számolni, meg kell hogy különböztesse az ismeretlent, így az egyenlet után meg kell adni, mi szerint oldja meg.

Parancs Eredmény
egyenlet:=a*x^2+b*x+c=0; egyenlet:=ax^2+bx+c=0;
gyokok:=solve(egyenlet,x); \frac{-b+\sqrt{b^2-4ac}}{2a},\frac{-b-\sqrt{b^2-4ac}}{2a}
gyokok[2]; \frac{-b-\sqrt{b^2-4ac}}{2a}
eval(egyenlet,a=0,b=1,c=-2); 2

Függvénykirajzolás[szerkesztés | forrásszöveg szerkesztése]

A plot paranccsal kirajzolhatjuk a függvényt egy koordináta-rendszeren, melynek mi adjuk meg a paramétereit, az alábbi módon:

 plot(cos(x) , x=-5..5 , y=-1..1 );

Plot3d paranccsal 3 dimenzióban tudjuk kirajzolni, a két változós függvényeinket.

Deriválás, Integrálás[szerkesztés | forrásszöveg szerkesztése]

A Maple képes a deriválásra (diff) és az integrálásra (int) is. Mivel több változóval képes számolni, meg kell adni neki, hogy mi szerint deriváljon, illetve integráljon.

Parancs Eredmény
diff(x^3+3*x^2-11,x); \frac{d}{dx}(x^3+3x^2-11)
diff(x^3+3*x^2-11,x); 3x^2+6x
diff(arctan(x*y),y); \frac{x}{1+x^{2}y^{2}}
int(cos(3*x-5),x); \int \cos(3x-5)dx
int(cos(3*x-5),x); \frac{1}{3}\sin(3x-5)
int(2*x^2,x=0..3); 18

Listák, Halmazok, Sorozatok[szerkesztés | forrásszöveg szerkesztése]

A Maple segítségével definiálhatunk listákat, halmazokat, illetve sorozatokat is.

Parancs
lista:=[1,2,3];
halmaz:={1,2,3};
sorozat:=1,2,3;

A lista elemeit [] között soroljuk fel, és számít a sorrendjük. A halmazok esetében, melyek elemeit {} között adjuk meg, ez nem igaz. Ezek átalakíthatóak egymásba. Az op parancs leveszi a zárójeleket a széléről.

Parancs Művelet
{op(lista)}; listából halmaz
[op(halmaz)]; halmazból lista
[sorozat]; sorozatból lista

A listák tagjait módosíthatjuk, illetve hivatkozhatunk rájuk tagonként. Listákat megadhatunk képlettel is, a seq paranccsal.

Parancs Eredmény
lista[2]; 2
lista[2]:=4:lista; [1,4,3]
lista2:=[seq(i^2,i=1..4)]; lista2:=[1,4,9,16]

Halmaz, avagy lista elemszámára a nops() paranccsal kérdezhetünk rá.

Help[szerkesztés | forrásszöveg szerkesztése]

Ha ?-et rakunk a parancs elé, előhívjuk a help funkciót, amelyben van egy rövid ismertető a parancsról, és annak használatáról.

Összetettebb műveletek[szerkesztés | forrásszöveg szerkesztése]

A Maple képes hosszabb, programszerű műveleteket is végrehajtani.

Ciklikus és feltételes utasítások[szerkesztés | forrásszöveg szerkesztése]

Ha egy utasítást vagy utasítások egy sorozatát csak egy bizonyos feltétel teljesülése esetén akarunk végrehajtani, akkor feltételes utasítást használunk. Ennek alakjai:

if feltétel then utasítások end if;
if feltétel then utasítások1 else utasítások2 end if;
if feltétel1 then utasítások1 elif feltétel2 then utasítások2 ... end if;
if feltétel1 then utasítások1 elif feltétel2 then utasítások2 ... else utasítások end if;

A ciklus utasítás egy utasítássorozat ismételt végrehajtását teszi lehetővé. A Maple két típusát használja. Az első az ún. from-to típusú ciklus:

for ciklusváltozó from honnan by mennyivel to meddig do utasítások end do;

A másik típus, mikor egy feltételtől függ a ciklusok száma. Ez a while típusú.

Példa egy feltételes ciklikus utasításra:

 while n>1 
 do 
    if 
       n mod 2 = 0 then
       n:=n/2
    else
       n:=3*n+1
    end if;
    printf("%d",n);
 end do;

Ez az úgynevezett szirakúzai problémára egy megoldóciklus.

A logikai utasítások itt is léteznek, azaz van and, or, és a többi.

Procedúrák[szerkesztés | forrásszöveg szerkesztése]

Az előző pontban, mint láttuk, az értéket előre meg kell adni, és utána tudjuk lefuttatni az alapján a ciklusunkat. Tehát új számnál újra le kell futtatnunk az egészet. Egy procedúra abból áll, hogy egy ilyen ciklust elnevezünk valaminek, paraméterekkel, és az új lefutáshoz már csak azt kell meghívnunk, és az általunk leellenőrizendőnek vélt változóval behelyettesíteni. A proc utáni zárójelbe az általunk megadandó változót kell írnunk, a kívánt algoritmust kell megadnunk, és lezárni a folyamatot. A local paranccsal a helyi változókat(amik csak a procedúrán belül kapnak értéket) kell deklarálni.

A procedúra definíciója A procedúra meghívása egy paraméterrel Eredmény
 szirakuzai:=proc(m)
    local k;
    k:=m;
    while k>1
    do
       if
          k mod 2 = 0
       then
          k:=k/2
       else
          k:=3*k+1
       end if;
    printf("%d\n",k);
    end do;
 end proc;
 szirakuzai(34);
 17
 52
 26
 13
 40
 20
 10
 5
 16
 8
 4
 2
 1

A futtatás utána már egy beépített függvényként lehet hivatkozni a procedúrára. Kilépés után mindez érvényét veszti, nem mentődik el.

Csomagok[szerkesztés | forrásszöveg szerkesztése]

A Maple-ben sok csomag van, amiben előre megírt procedúrák és sok más segíti a munkánkat. De ezek sokszor nem kellenek, és sok memóriát foglalnak, így nem töltődnek be a program indításával, hanem nekünk kell betöltenünk őket, ha szükségünk van rájuk. A csomagokat with(); paranccsal tudjuk betölteni. Ha ;-őt használunk, kiírja a csomagban szereplő összes parancsot, míg a :-nál csak megnyitja a csomagot.

Pár gyakran használt csomag:

Lineáris algebra[szerkesztés | forrásszöveg szerkesztése]

Az ide kapcsolódó csomag neve LinearAlgebra. Ügyeljünk a kis-nagybetűkre. Számos parancs található ebben a csomagban, ezek közül 1-2 fontosabb szerepel itt.

Parancs Művelet
Matrix(1,2,3,[4,5,6],7,8,9); egy 3*3-as mátrix létrehozása, a sorok szerint
A.B; mátrixszorzás
Transpose(M); az M mátrix transzponáltja
Determinant(M); az M mátrix determinánsa
MatrixInverse(M); az M mátrix inverze
Eigenvalues(M); az M mátrix sajátértéke
Eigenvectors(M); az M mátrix sajátvektorai
CharacteristicPolynomial(M,x); az M mátrix karakterisztikus polinomja
GaussianElimination(M); az M mátrix Gauss eliminációja
DotProduct(<1,2>,<3,4>); skalárszorzat
CrossProduct(<1,2>,<3,4>); vektoriális szorzat

Kombinatorika[szerkesztés | forrásszöveg szerkesztése]

A combinat paranccsal töltődik be a csomag.
Fontosabb parancsok:

Parancs Művelet
binom(x,y); x alatt az y
choose({1,2,3,4},2); felsorolja az összes lehetséges 2 elemű kombinációt
permute({1,2,3,4},2); felsorolja az összes lehetséges 2 elemű variációt
fibonacci(x); x-edik Fibonacci szám

Gráfelmélet[szerkesztés | forrásszöveg szerkesztése]

networks szóval lehet meghívni a csomagot.
Főbb parancsai:

Parancs Művelet
new(G); új gráf létrehozása
addvertex({1,2,3,4},G); csúcsok hozzáadása
addedge([{1,2},{3,4}],G); élek hozzáadása
draw(G); a gráf kirajzolása
adjacency(G) illeszkedési mátrix
complement(G); komplementergráf
isplanar(G); síkba rajzolható-e?

Csak címkézett csúcsokat adhatunk meg, hogy hivatkozhassunk rájuk az élek megadásánál. Ezeknél fel kell tűntetni azt is, mely gráfhoz adjuk ezeket hozzá.

Számelmélet[szerkesztés | forrásszöveg szerkesztése]

Csomag neve:numtheory.
Fontosabb parancsok:

Parancs Művelet
isprime(x); x prím-e?
ithprime(x); x-edik prímszám
nextprime(x); x után a következő prímszám
ifactor(x); x kanonikus alakja
divisors(x); x pozitív összes osztója
phi(x); Euler-féle \phi függvény
isolve(ax+b,x); egészek körében oldja meg az egyenletet
msolve(x^2=1,3); kongruenciákat old meg

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

  1. A Google kereső a fibonacci.mws kifejezésre legalább 295 találatot ad.

Források[szerkesztés | forrásszöveg szerkesztése]

Külső hivatkozások[szerkesztés | forrásszöveg szerkesztése]