Mathematica/Osnovni ukazi v Mathematici/Splošno o programskemu jeziku Mathematica

Iz MaFiRaWiki

Mathematica ni le eden izmed programskih jezikov, kot so recimo Java, C ali Python. Mathematica je prepisovalni sistem, oziroma paket za simbolno računanje, ki simbolne izraze prepisuje iz enega v drugega. Z njo komuniciramo torej preko (simbolnih) izrazov. Pojem izraz razumemo širše; izrazi so lahko tako aritmetični izrazi (4 * 3 + 2), kot stavki oziroma ukazi (Sqrt[4], Transpose[A], Random[], ...) ali celo funkcije (f[x_]:=x+3).

Sintaksa izrazov je enostavna. Poznamo nesestavljene izraze (atomarne ali osnovne) in sestavljene izraze. Mathematica pozna šest atomarnih izrazov: Integer, Rational, Real, Complex, String, Symbol. Sestavljeni izrazi so zapisani v obliki g [a1,a2,...,an], kjer je g glava in a1,...,an argumenti izraza. Glava in argumenti so lahko poljuben (celo sestavljen) izraz. Sestavljen izraz lahko vsebuje argumente ali pa ne. Primer izraza brez argumentov je recimo ukaz List[], ki vrne prazen seznam.

Opisali smo notranjo sintakso izrazov. Predstavljaj si, da bi moral uporabnik Mathematice vnesti ukaz Times[Plus[3,a],b]. Seveda lahko to stori tudi tako, vendar mu Mathematica omogoča, da uporabi tudi bolj prijazno zunanjo sintakso - bolj znano obliko (3 + a) * b. Notranjo sintakso (poljubnega) izraza x si lahko ogledamo z ukazom FullForm[x].

Računanje vrednosti izraza

Recimo da imamo izraz x. Ko ga vnesemo v sistem in ga potrdimo (kako to naredimo, bomo videli kasneje), Mathematica 'izračuna' vrednost izraza. To stori tako, da uporablja prepisovalna pravila.

Prepisovalna pravila so sestavljena iz vzorca na levi strani pravila in nove vrednosti na desni strani pravila, v obliki vzorec -> nova vrednost. Na primer, pravilo {1, 1} -> a pomeni, da se povsod kjer se v izrazu pojavi del izraza zapisan v (natančno tako zapisani) obliki {1,1} zamenja s simbolom a. Prepisovalna pravila so lahko bolj splošna, predvsem v levem delu, kjer lahko z bolj kompleksnimi vzorci povemo veliko več.

Vrnimo se k računanju izraza. Če je izraz x atom, recimo 3, potem je vrednost izraza kar izraz sam. Če pa je izraz sestavljen, recimo x = g [a1,a2,...,an], Mathematica najprej rekurzivno izračuna vrednosti argumentov in vrednost glave, ki so tudi lahko sestavljeni izrazi. Naj bo h vrednost glave g, a pa vrednost i-tega argumenta a. Nov izraz je torej izraz y oblike h[a1,a2,...,an]. Mathematica nato na izrazu y uporabi prepisovalna pravila - v interni podatkovni bazi trenutno veljavnih prepisovalnih pravil, izbere pravilo, ki se lahko (z vzorcem) prilagodi delu izraza y. Če je takih pravil, ki se lahko prilagodijo več, potem izbere prvega, ki ga najde. Mathematica uporablja prepisovalna pravila toliko časa, dokler se izraz spreminja. Ko se izraz pri uporabi prepisovalnih pravil ne spreminja več, ali pa če pravila ki bi se lahko prilagodilo, ni, je vrednost izraza kar izraz sam.

Prepisovalna pravila so bolj splošna kot funkcije.


Osnove

Preden začnemo z uporabo Mathematice, je dobro poznati tudi nekaj najpomembnejših simbolov, pomenov znakov in oklepajev, funkcij tipk ...

Vgrajeni ukazi (funkcije, moduli, spremenljivke, ...), ki so definirani v Mathematici, se začnejo z veliko črko, ukazi, ki jih bomo pisali mi, pa se bodo začeli z malo.
  • imeSpr ⇒ ime je zaporedje črk in števk, ki se začne s črko (sistemske spremenljivke imajo pred imenom $)
  • Clear[imeSpr] ⇒ počisti vrednosti in definicije simbola imeSpr, simbol imeSpr postane prost
  • rez = Sin[4/13 π]; ⇒ izračun se zgodi v ozadju, ni vračila rezultata na zaslon (v izhodno celico)
  • % ⇒ sklic na prejšnji rezultat (%%, %%...%, %k, Out[k])
  • <ESC> p <ESC> ⇒ izpišemo lep znak π (lahko pišemo Pi, ali uporabljamo priročno paleto)
  • x <CTRL> + <&> y ⇒ izpišemo a(lahko pišemo x ^ y)
  • ?Order ⇒ izpišemo enostavno / krajšo pomoč ukaza Order
  • ??Order ⇒ izpišemo daljšo pomoč ukaza Order
  • ?Orde* ⇒ izpišemo seznam ukazov, ki se začnejo z Orde
  • Order <CTRL> + <k> ⇒ izpišemo pojavni menu, ki prikaže vse ukaze in spremenljivke, ki se začnejo na Order in jih Mathematica v tem trenutku pozna
  • a * b ⇒ znak * lahko izpustimo in pišemo a b (presledek je obvezen !)
  • = ⇒ prirejanje rezultata
  • =. ⇒ brisanje vrednosti spremenljivke
  • := ⇒ zakasnjeno prirejanje desne strani levi strani
  • ==, !=, <=, >=, <, > ⇒ relacije (enak, različen, manjši, ...)
  • ===, =!= ⇒ sintaktično enak, sintaktično različen (1 in 1.)
  • Head ⇒ vrne glavo izraza
  • Order::usage ⇒ definiramo niz s pomočjo, ki se izpiše pri ukazu ?Order
V primeru napak Mathematica izpiše opozorila, ki jih uporabnik prebere!
Uporaba oklepajev
  • ( ) ⇒ uporabljamo za grupiranje
  • [ ] ⇒ obdamo argumente funkcije a(b) != a[b]
  • {} ⇒ naštejemo elemente seznama
  • [[ ]] ⇒ navedemo indeks elementa seznama, prvi element je na poziciji 1 (in ne na poziciji 0, kot v javi)
  • (* *) ⇒ komentar, ki je lahko daljši od ene vrstice

Glej tudi

Osebna orodja