Maple

Iz Wikipedije, proste enciklopedije
Skoči na: navigacija, iskanje
Maple
Razvijalec Waterloo Maple Inc. (Maplesoft)
Stabilna izdaja 16.01 / 16. maj 2012
Programski jezik C, java, jezik Maple
OS različni
Tip simbolno računanje
Licenca lastniška
Spletna stran www.maplesoft.com/products/maple/

Maple [méipl] (angleško javor) je splošni računalniški program za simbolno računanje. Najprej ga je leta 1981 razvila Symbolic Computation Group na Univerzi v Waterlooju, Ontario, Kanada.

Od leta 1988 ga razvija in prodaja kanadsko zasebno podjetje Waterloo Maple Inc. (znano tudi kot Maplesoft), ki ima prav tako sedež v Waterlooju. Trenutna različica programa je Maple 16.01, ki je izšla 16. maja 2012.

Uvod[uredi | uredi kodo]

Maple združuje programski jezik z vmesnikom, ki omogoča da uporabniki obravnavajo matematične probleme v tradicionalnem matematičnem zapisu. Večina matematične funkcionalnosti je zapisana z jezikom Maple, ki je razlagalni jezik Mapleovega jedra. Mapleovo jedro je napisano v C-ju.

Mapleov programski jezik je razlagalni programski jezik z dinamičnimi podatkovnimi tipi. Kakor je običajno pri programih za simbolno računanje, se simbolni izrazi shranjujejo v pomnilnik kot usmerjeni neciklični grafi. Od različice Maple 6 jezik dovoljuje spremenljivke s slovarskim obsegom.

Zgodovina[uredi | uredi kodo]

Prva zamisel Maplea je nastala na srečanju novembra 1980 na Univerzi v Waterlooju. Raziskovalci na univerzi so želeli kupiti dovolj zmogljiv računalnik, da bi poganjal program Macsyma, razvit na MIT. Namesto tega so se odločili, da bodo razvili lasten program za simbolno računanje, ki bo lahko tekel na cenovno ugodnejših računalnikih. Tako so začeli razvijati program za simbolno računanje namenjen raziskovalcem in študentom.

Začetni razvoj Maplea je stekel zelo hitro in prva omejena različica se je pojavila decembra 1980. Raziskovalci so preskusili in zavrgli več različnih zamisli in s tem izdelali neprestano razvijajoči sistem. Maple so prvič prikazali na konferencah v začetku leta 1982.

Do leta 1983 je imelo več kot 50 univerz na svojih računalnikih nameščen Maple. Zaradi velike količine vzdrževanj in licenčnih zahtev v letu 1984 se je raziskovalna skupina sporazumela s podjetjem WATCOM Products Inc. za izdajo licenc in prodajo Maplea.

Zaradi povečanih zahtev po vzdrževanju so leta 1988 ustanovili Waterloo Maple Inc. Podjetje je imelo namen nadzorovati prodajo programa. Kasneje se je razvilo v toliki meri, da ima lasten razvojni oddelek, kjer razvijejo večino programa. Razvoj Maplea se nadaljuje v univerzitetnih raziskovalnih laboratorijih kot so na primer: Laboratorij za simbolno računanje (Symbolic Computation Laboratory) Univerze v Waterlooju, Ontarijsko raziskovalno središče za računalniško algebro (Ontario Research Centre for Computer Algebra) Univerze Zahodnega Ontaria in laboratoriji po drugih svetovnih univerzah.

Leta 1989 so za Maple razvili prvi grafični uporabniški vmesnik in ga priložili različici 4.3 za računalnike Macintosh. Prejšnje različice so imele le vmesnik z ukazno vrstico z dvorazsežnim izhodom. Različica Maple V za operacijska sistema X11 in MS Windows je izšla leta 1990.

Z različico Maple 9 je leta 2003 izšel trenutni »standardni« vmesnik. Ta vmesnik je večinoma napisan v Javi, deli, kot so pravila za pisanje matematičnih enačb, pa so napisani v jeziku Maple. Iz novega vmesnika so se na široko norčevali, češ da je počasen. Zaradi tega Maplesoft še vedno prilaga prejšnji »klasični« vmesnik in izboljšuje delovanje in značilnosti novega vmesnika.

Maple 10 je leta 2005 uvedel nov »dokumentni način« kot del standardnega vmesnika. Glavna značilnost takšnega načina je, da je moč matematične izraze vnašati z dvorazsežnim vnosom, podobnim enačbam v knjigi.

Izvor imena[uredi | uredi kodo]

Ime Maple večinoma obravnavajo kot akronim (mathematical manipulation language). Ime je povezano s kanadsko dediščino javorja.

Osnovne značilnosti[uredi | uredi kodo]

Maple omogoča uporabniku veliko možnosti. Ukazi so v Mapleu zaključeni s podpičjem ;, če želimo, da jih program izpiše, ali z dvopičjem :, če tega ne želimo. Funkcije so zapisane v okroglih oklepajih, seznami (vektorji, matrike, funkcije prek knjižnic, ...) v oglatih in množice v zavitih. Komentarji niso vgnezdeni in se začenjajo z lojtro #.

Zgledi uporabe[uredi | uredi kodo]

Vrednost števila √2 na 20 decimalk:

sqrt(2) = evalf(sqrt(2),21);

\sqrt{2}=1,41421356237309504880

Vrednost števila π na 20 decimalk:

evalf(Pi,21);

 3,14159265358979323846 \!\,

Poenostavitev izraza z ulomkoma:

\frac{a}{b}+\frac{c}{d}\,\!

simplify(a/b + c/d);

 \frac{ad+cb}{bd}

Rešitvi kvadratne enačbe:

3 x^{2} + 2bx + c = 0 \,\!

solve (3*x^2 + b*x + c = 0, x);

 - \frac{b}{3} + \frac{\sqrt{b^2-3c}}{3}, - \frac{b}{3} - \frac{\sqrt{b^2-3c}}{3}

Numerična vrednost rešitve enačbe na 75 decimalnih števk:

e^x=x^2+2, \quad x \in  [-1,\infty) \,\!

evalf(RootOf(exp(x)=x^2+2,x,-1),75);

 1,31907367685736535441789910952084846442196678082549766925608900490512707635 \!\,

Determinanta matrike:


  \begin{bmatrix}
    1 & 2 & 3 \\
    a & b & c \\
    x & y & z
  \end{bmatrix}

M := Matrix([[1,2,3], [a,b,c], [x,y,z]]); # Matrika

LinearAlgebra:-Determinant(M);

 bz-cy+3ay-2az+2xc-3xb \!\,

Odvod funkcije:

 y =\sin\left(x^2+x\right)\sqrt{2} \!\,

y := x -> sin(x^2+x)*sqrt(x);

D(y)(x);

 \cos\left(x^2+x\right)(2x+1)\sqrt{x}+\frac{1}{2}\frac{\sin\left(x^2+x\right)}{\sqrt{x}} \!\,

 y = \ln x \!\,

y := x -> ln(x);

D(y)(x);

\frac{1}{x} \!\,

Nedoločeni integral (brez integracijske konstante):

\int \cos\left(\frac{x}{a}\right)\mathrm{d}x.

int(cos(x/a), x);

a \sin\left(\frac{x}{a}\right)

\int \frac{\mathrm{d}x}{a + bx^{2}}.

int(1/(a+b*x^(2)), x);

\frac{\operatorname{arc\, tg} \frac{bx}{\sqrt{ab}}}{\sqrt{ab}}

\int \frac{\mathrm{d}x}{a - bx^{2}}.

int(1/(a-b*x^(2)), x);

\frac{\operatorname{Arth} \frac{bx}{\sqrt{ab}}}{\sqrt{ab}}

Določeni integral:

\int_{0}^{\pi/2} \sin\left(x^{4}+1\right)\mathrm{d}x.

int (sin(x)^4+1, x = 0..Pi/2);

\frac{11}{16}\pi

Posplošeni integral:

\int_{a}^{\infty} \frac{\mathrm{d} x}{x(x+1)}.

int (1/(x*(x+1)), x = a..infinity);

\ln (a+1) - \ln a \!\,

Eksaktna rešitev navadne linearne diferencialne enačbe:

\frac{\mathrm{d}^{2}y}{\mathrm{d}x^{2}} - 2 y - x = 0 \,\!

z začetnimi pogoji:

y(0) = 0 ,\quad \left. \frac{\mathrm{d}y}{\mathrm{d}x} \right|_{y=0} = 2

dsolve( {diff(y(x),x,x) - 2*y(x) - x = 0, y(0)=0, D(y)(0)=2}, y(x) );

y(x)=\frac{5}{8}\sqrt{2} e^{\sqrt{2}x}-\frac{5}{8}\sqrt{2} e^{-\sqrt{2}x}-\frac{1}{2}x

Koordinatna enačba sfere s središčem (2, 1/a, 0) in polmerom 1.

geom3d[sphere] (S, [geom3d[point] (M, -2, 1/a, 0), 1]):

geom3d[Equation] (S, [x, y, z]);

x^{2}+y^{2}+z^{2}+4x-\frac{2y}{a} +3+\frac{1}{a^{2}}

Graf funkcije x\sin x \, za x \, v intervalu (-10,10):

f:=x*sin(x):

plot(f,x=-10..10);

Maple1DPlot.PNG

Graf funkcije x^2+y^2 \, za x \, in y \, v intervalu (-1, 1) in (-2, 2):

f:=x^2+y^2:

plot3d(f,x=-1..1,y=-1..1);

plot3d(f,x=-2..2,y=-2..2,color=f)

Mapleplot.jpg Maplesoft Maple-11 x2-plus-y2 3D plot.png

Animacija funkcije dveh spremenljivk:

 f(x,t) = \frac{2 k^{2}}{\cosh(k (x-4 k^{2} t))^{2}} \!\,

f:=2*k^2/cosh(k*(x-4*k^2*t))^2:

with(plots);

animate(subs(k = 0.5, f), x = -30 .. 30, t = -10 .. 10, numpoints = 200, frames = 50, color = red, thickness = 3);

Animacija funkcije treh spremenljivk:

 f(x,y,t) = \cos xt \, \sin 3yt \!\,

f:=cos(x*t)*sin(3*y*t):

with(plots);

animate3d(f, x = -Pi .. Pi, y = -Pi .. Pi, t = 1 .. 2);

Animacija dvorazsežnega zvončastega solitona
Trirazsežna animacija funkcije treh spremenljivk

Sistem parcialnih diferencialnih enačb:


{\frac {\partial }{\partial x}}v \left( x,t
 \right) =-u \left( x,t \right) v \left( x,t \right)

{\frac {\partial }{\partial t}}v \left( x,t \right) =-v \left( x,t \right) {\frac {\partial }{\partial x}}u
 \left( x,t \right) +v \left( x,t \right)  \left( u \left( x,t
 \right)  \right) ^{2}
 
{\frac {\partial }{\partial t}}u
 \left( x,t \right) +2\,u \left( x,t \right) {\frac {\partial }{
\partial x}}u \left( x,t \right) -{\frac {\partial ^{2}}{\partial {x}^{2}}}u \left( x,t \right) =0

pri v(x,t)\neq 0.

enacba1 := diff(v(x, t), x) = -u(x,t)*v(x,t):

enacba2 := diff(v(x, t), t) = -v(x,t)*(diff(u(x,t), x))+v(x,t)*u(x,t)^2:

enacba3 := diff(u(x,t), t)+2*u(x,t)*(diff(u(x,t), x))-(diff(diff(u(x,t), x), x)) = 0:

pdsolve({enacba1,enacba2,enacba3,v(x,t)<>0},[u,v]): op(%);

v \left( x,t \right) ={e^{\sqrt {{\it \_c}_{{1}}}x}}{\it \_C3
}\,{e^{{\it \_c}_{{1}}t}}{\it \_C1}+{\frac {{\it \_C3}\,{e^{{\it \_c}_
{{1}}t}}{\it \_C2}}{{e^{\sqrt {{\it \_c}_{{1}}}x}}}}, \  \  u \left( x,t
 \right) =-{\frac {\sqrt {{\it \_c}_{{1}}} \left( {\it \_C1}\, \left( 
{e^{\sqrt {{\it \_c}_{{1}}}x}} \right) ^{2}-{\it \_C2} \right) }{{\it 
\_C1}\, \left( {e^{\sqrt {{\it \_c}_{{1}}}x}} \right) ^{2}+{\it \_C2}} }

Funkcije f, ki rešijo integralsko enačbo:

 f(x)-3\int_{-1}^1(xy+x^2y^2)f(y)\mathrm{d}y = h(x) \!\, .

enacba := f(x)-3*Integrate((x*y+x^2*y^2)*f(y), y=-1..1) = h(x):
intsolve(enacba,f(x));

f \left( x \right) =\int _{-1}^{1}\! \left( -15\,{x}^{2}{y}^{2}-3\,xy \right) h \left( y \right) {\mathrm{d}y}+h \left( x \right)

Različice[uredi | uredi kodo]

  • Maple 16.01: 16. maj 2012
  • Maple 16: 28. marec 2012
  • Maple 15.01: 21. junij 2011
  • Maple 15: 13. april 2011
  • Maple 14.01: 28. oktober 2010[1]
  • Maple 14.00: april 2010
  • Maple 13.02: oktober 2009
  • Maple 13.01: julij 2009
  • Maple 13: april 2009
  • Maple 12.02: december 2008
  • Maple 12.01: oktober 2008
  • Maple 12: 6. maj 2008
  • Maple 11: 21. februar 2007
  • Maple 10: 10. maj 2005
  • Maple 9.5: 15. april 2004
  • Maple 9: 30. junij 2003
  • Maple 8: 16. april 2002
  • Maple 7: 1. julij 2001
  • Maple 6: 6. december 1999
  • Maple V R5: 1. november 1997
  • Maple V R4: januar 1996
  • Maple V R3: 15. marec 1994
  • Maple V R2: november 1992
  • Maple V: avgust 1990
  • Maple 4.3: marec 1989
  • Maple 4.2: december 1987
  • Maple 4.1: maj 1987
  • Maple 4.0: april 1986
  • Maple 3.3: marec 1985] (prva javno dostopna različica)
  • Maple 3.2: april 1984
  • Maple 3.1: oktober 1983
  • Maple 3.0: maj 1983
  • Maple 2.2: december 1982
  • Maple 2.15: avgust 1982
  • Maple 2.1: junij 1982
  • Maple 2.0: maj 1982
  • Maple 1.1: januar 1982
  • Maple 1.0: januar 1982

Knjižnice[uredi | uredi kodo]

Z dodatnimi knjižnicami, ki jih program sproti prebira, se nabor osnovnih funkcij znatno poveča.

Uporaba Mapleovega pogona[uredi | uredi kodo]

Maple T.A., Maplesoftova spletna storitev uporablja Maple za algoritemsko tvorjenje vprašanj in odzive študentov.

MapleNet omogoča uporabnikom izdelavo strežniških strani JSP in javanskih programov. MapleNet 10 omogoča uporabnikom tudi naložitev in delo z Mapleovimi delovnimi listi, ki vsebujejo interaktivne komponente.

Različice programa MathCad, izšle med letoma 1994 in 2006, so vsebovale pogon na osnovi Maplea (MKM ali Mathsoft Kernel Maple).

Simbolična orodja programa MATLAB vsebujejo dele pogona Maple 8.

Razpoložljive različice[uredi | uredi kodo]

Maplesoft prodaja študentske in profesionalne različice Maplea, s precejšnjo razliko v ceni (139 $ in 1.995 $).

Novejše različice (od različice 6 naprej) nimajo računskih omejitev in imajo manj spremne dokumentacije, kar je podobno razliki med študentskimi in profesionalnimi različicami programa Mathematica.

Starejše študentske različice pred različico 6 so imele nekaj računskih omejitev:

  • največ 100 števk s tekočo vejico za računanje in prikaz,
  • največ 8000 strojnih besed ali elementov za poljuben algebrski objekt,
  • največ tri razsežnosti za polja (arrays).

Kritika[uredi | uredi kodo]

Maple je kot soroden program Mathematica lastniški program in ima določene omejitve glede uporabe, spreminjanja ali kopiranja.

Za uporabnike, ki niso študenti, akademiki, vladni uslužbenci Maple 10.0 stane $1,995 kot tržna različica.[2] Tudi polovična cena akademske različice je draga, kar odvrača učitelje in druge uporabnike. Cena je nedostopna tudi mnogim, ki bi program lahko uporabljali.[3]

Maple se je začel kot akademski projekt na Univerzi v Waterlooju in njegov začetni razvoj je podpiralo raziskovanje z javno denarno podporo. Čeprav je Univerza v Waterlooju pri ustanovitvi Waterloo Maple Inc dobila svoj delež, to ni bil slučaj za nadomestitev javnih virov pri komercializaciji Maplea.

Trenutni grafični vmesnik, ki je izšel z različico Maple 9, ima nekaj pomanjkljivosti kot mnogo drugih programov, napisanih v Javi:

Izgled in občutek ni enak kot pri domačih platformah, povečan učinek in počasen uporabniški vmesnik[4]. Zaradi tega je Maple počasnejši kot prejšnje različice, ki so se izvajale bolj domače.[5]

Maplesoft je naredil spremembe, da ukazi iz starejših različic ne veljajo v novejših. Ker so spremembe nujne, razlike silijo uporabnike, da svoje programe napišejo na novo in s tem povečajo napake pri prevedbi, ali pa da ohranjajo stare različice programa, včasih tudi na starejših operacijskih sistemih. Zgledi za takšne spremembe so::

  • sprememba podvojitvenega operatorja iz dvojnega narekovaja " v znak za odstotek % v različici Maple V R5 (1997). Dvojni narekovaji sedaj ločujejo znakovne nize.
  • uvedba novih rezerviranih besed, ki se bodo verjetneje uporabljale. Na primer CIRCLE.

Reakcije na kritike[uredi | uredi kodo]

Maplesoft ima program, ki omogoča inštruktorjem in študentom da pridobijo Maple za vaje z dodatnimi cenovnimi ugodnostmi.[6]

ker je Maple lastniški program, lahko Maplesoft vključuje druge plačljive komponente (kot so na primer knjižnice NAG) s pogodbami. Ta programska oprema drugače ne bi bila na razpolago tako široki javnosti.

Od različice Maple V R5 leta 1997 so skladnjo Maplea razširili, vendar je niso zelo spremenili. V desetletnem razvoju so v veliki meri ohranili združljivost za nazaj. Vse različice Maplea so vsebovale program za posodobitev izvorne kode programov, da so se lahko izvajali v trenutni različici.

Hitrost in uporabnost javanskega vmesnika so izboljšali z vsako poznejšo večjo izdajo.

Glej tudi[uredi | uredi kodo]

Opombe in sklici[uredi | uredi kodo]

Zunanje povezave[uredi | uredi kodo]