Maple (szoftver)

A Wikipédiából, a szabad enciklopédiából
Maple

FejlesztőMaplesoft Inc.
Legfrissebb stabil kiadás2023 (stabil verzió, 2023. március 9.)[1]
Legfrissebb fejlesztői kiadás18 (2014. március 5.) +/-
Programozási nyelvC, Java, Maple
Operációs rendszermulti-platform
Kategóriaalgebrai program
Licenckereskedelmi, zárt forráskódú
A Maple weboldala

A Maple egy hatékony matematikai szoftver csomag PC-re, 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]

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]

  • 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 17: 2013
  • Maple 18: 2014
  • Maple 2015: 2015
  • Maple 2016: 2016
  • Maple 2016.1: 2016. április 20.
  • Maple 2016.1a: 2016. április 27.
  • Maple 2017: 2017. május 25.
  • Maple 2017.1: 2017. június 28.
  • Maple 2017.2: 2017. augusztus 2.
  • Maple 2017.3: 2017. október 3.
  • Maple 2018.0: 2018. március 21.

Maple termékskála[szerkesztés]

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]

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 kvantummechanika és a Feynman-diagramok. 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]

Maple fájlkiterjesztések
Fájlkiterjesztés.mws és .mpl
FejlesztőMaplesoft
Formátum típusaszövegfájl
Weboldalwww.maplesoft.com/products/maple/

Maple fájlok[szerkesztés]

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.[2]

Parancssor[szerkesztés]

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]

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);
%; sin(60)

A ; a parancs lezárása, és az eredménye kiírására szolgál. A :-tal 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]

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 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
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(1/n^2, n=1..infinity); elvégzi a műveletet

Egyenletek[szerkesztés]

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-lal 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:=
gyokok:=solve(egyenlet,x);
gyokok[2];
eval(egyenlet,a=0,b=1,c=-2); 2

Függvénykirajzolás[szerkesztés]

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]

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);
diff(x^3+3*x^2-11,x);
diff(arctan(x*y),y);
int(cos(3*x-5),x);
int(cos(3*x-5),x);
int(2*x^2,x=0..3); 18

Listák, halmazok, sorozatok[szerkesztés]

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]

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]

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

Ciklikus és feltételes utasítások[szerkesztés]

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]

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]

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]

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]

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]

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]

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 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]

  1. Waterloo, Canada; Mar. 9, 2023: Maplesoft today announced a new release …, 2023. március 9. (Hozzáférés: 2023. július 19.)
  2. A Google kereső a fibonacci.mws kifejezésre legalább 295 találatot ad.

Források[szerkesztés]

Külső hivatkozások[szerkesztés]