Predstavitev orodja Mathematica

Predstavitev orodja Mathematica

Avtor: Anita Pandžić

Opis programa

Mathematica je programska oprema, ki jo uporabljamo na različnih znanstvenih področjih - v matematiki, računalništvu, ekonomiji, tehniki, fiziki, statistiki itd. Zasnoval jo je Stephen Wolfram, razvil pa Wolfram Research iz Champaign, Illinois. Ime programa je predlagal Apple-ov soustanovitelj Steve Jobs.
Mathematica se v matematiki uporablja na več različnih načinov: kot pomoč v raziskovalnem delu, za različne numerične metode ali pa kot samostojen programski jezik, ki ima mnogo povezav z drugimi programskimi jeziki (npr. C++, Java, NET, SQL, Fortran, CUDA, OpenCL). Nekatere od koristnih orodij v programu Mathematica so:

  • knjižnica elementarnih matematičnih funkcij
  • knjižnica posebnih matematičnih funkcij
  • orodja za manipulacijo z matrikami in podatki
  • podpora za kompleksna števila, poljubno natančnost in simbolično računanje
  • 2D in 3D vizualizacija podatkov in funkcij
  • reševalci za sisteme enačb, diofantskih enačb, diferencialnih algebrskih enačb...
  • numerična in simbolna orodja za diskretno računanje
  • statistične knjižnice
  • omejena in neomejena lokalna in globalna oprimizacija
  • programski jezik, ki podpira procesne, funkcionalne in objektno usmerjene konstrukcije
  • orodje za dodajanje uporabniških vmesnikov
  • orodja za obdelavo slik
  • orodja za vizualizacijo in analizo grafov
  • orodja za kombinatoriko
  • orodja za finančne izračune
  • knjižnica funkcij za teorijo števil, teorijo grup...
  • naravni jezik uporabniškega vmesnika tako imenovani 'free-form linguistic input' in jezik 'Mathematica' (privzet)
  • ter še mnogo več

Opis programa

Mathematica je zelo močno orodje, s katerim si lahko študentje pomagamo pri svojem študiju, če se ga le naučimo uporabljati. Dobljene rezultate lahko tudi pretvorimo v matematični zapis v TeXu:

(http://www2.nauk.si/files/307/slika1.png)

Mathematica je razdeljena na dva dela (kernel in front end). Front end (zasnoval ga je Theodore Gray) je uporabniški vmesnik, v katerem urejamo dokumente, ki vsebujejo račune, besedilo in grafiko. Front end ničesar ne računa, ampak samo skrbi za prikaz dokumentov in rezultatov računanja. Vse računanje opravi jedro Mathematice ali kernel. Dokumenti, ki jih pišemo s front endom, se imenujejo zvezki (notebooks) in imajo končnico .nb. Zvezek sestoji iz celic:

  • tekstovne celice, v katere pišemo besedilo
  • vhodne celice, v katere pišemo račune in ukaze
  • izhodne celice, ki prikazujejo rezultate

Računanje v Mathematici je preprosto:

  1. Uporabnik v vhodno celico vpiše račun ali ukaz in pritisne Shift+Enter
  2. Front end ukaz posreduje kernelu
  3. Kernel izračuna rezultat in ga posreduje front endu
  4. Front end rezultat vstavi v izhodno celico

Vhodne in izhodne celice so oštevilčene, da vemo , katera vhodna celica pripada kateri izhodni celici.
Včasih želimo napisati program v Mathematici, ki vsebuje ukaze samo za kernel. Take programe shranjujemo v datoteke s končnico .m in jih ne pišemo s front endom, ampak z navadnim urejevalnikom besedil, kakršen je npr. Textpad. Datoteko s končnico .m naložimo v kernel z ukazom Get.

(http://www2.nauk.si/files/307/slika2.png)

Opis programa

Pomembno je vedeti tudi to, da v Mathematici uporabljamo oglate oklepaje, ko uporabimo funkcijo na argumentu - namesto f(x) pišemo f[x]. Vse vgrajene funkcije in konstante pišemo z veliko začetnico - npr. Cos[Pi/4]. Če jih napišemo z malo začetnico, potem Mathematica to razume kot splošno spremenljivko. Komentarje v Mathematici pišemo kot (*komentar*). Nekaj primerov, kaj lahko počnemo z Mathematico:

Paket Combinatorica

Combinatorica razširja Mathematico z več kot 450 funkcijami za kombinatoriko in teorijo grafov. Vključuje funkcije za predstavitev grafov, ustvarjanje in lastnosti grafov ter funkcije za algoritme na grafih. Paket naložimo z ukazom:

(http://www2.nauk.si/files/307/slika3.png)


Predstavitev grafov

Graf je definiran kot skupek vozlišč z nizom povezav, kjer je povezava opredeljena kot par točk (vozlišč). Grafe lahko predstavimo kot matrike sosednosti ali sezname (za računalnike oz. stroje) ali pa kot zbirko točk, ki so povezane s črtami (človeška vizualizacija).

Ustvarjanje grafov

Veliko grafov se izkaže kot zanimivih (npr. polni graf), ker imajo edinstvene lastnosti ali pa so modeli pomembnih relacij.

Lastnosti grafov

Teorija grafov se ukvarja s študijo o lastnostih grafov, kot npr. povezanost grafov, cikličnost in barvnost grafov.

Algoritmi na grafih

Poznamo tudi nekaj algoritmov, ki ji lahko izvajamo na grafih.

Paket Combinatorica

Primeri uporabe različnih funkcij:

Naloga

1.naloga

Iz Ljubljane bi radi obiskali Zagreb, Dunaj, Beograd, Budimpešto, Bratislavo in Prago ter se na koncu vrnili v Ljubljano. Poišči najkrajši itinerarij (najkrajšo pot), če veš, da so cestne razdalje med vsemi pari točk v km naslednje: Ljubljana - Zagreb 139, Ljubljana - Dunaj 383, Ljubljana - Beograd 555, Ljubljana - Budimpešta 462, Ljubljana - Bratislava 448, Ljubljana - Praga 706, Zagreb - Dunaj 373, Zagreb - Beograd 418, Zagreb - Budimpešta 347, Zagreb - Bratislava 438, Zagreb - Praga 696, Dunaj - Beograd 610, Dunaj - Budimpešta 243, Dunaj - Bratislava 65.9, Dunaj - Praga 334, Beograd - Budimpešta 376, Beograd - Bratislava 573, Beograd - Praga 900, Budimpešta - Bratislava 200, Budimpešta - Praga 528, Bratislava - Praga 331

(http://www2.nauk.si/files/307/slika4.png)

TravelingSalesman najde optimalno pot trgovskega potnika v grafu. Najkrajši itinerarij je torej: Ljubljana- Zagreb- Beograd- Budimpešta- Bratislava- Praga- Dunaj- Ljubljana in najkrajša pot je dolga 2181 km.

Naloga

Vojaško poveljstvo bi rado oskrbovalo mesto 15 s tanki iz tovarne v mestu 1. Zaradi logističnih omejitev lahko po vsaki cesti prepeljemo samo določeno število tankov na dan. Cestno omrežje in omejitve za vsako cesto so naslednje: {{4, 6}, {4, 12}, {4, 13}, {2, 8}, {2, 12}, {2, 13}, {1, 3}, {1, 6}, {1, 7}, {1, 8}, {1, 9}, {1, 11}, {6, 12}, {7, 15}, {9, 2}, {10,14}, {10, 15}, {11, 5}, {11, 7}, {11, 9}, {11, 13}, {12, 15}, {14,5}, {14, 7}}], {5, 18, 16, 2, 2, 4, 12, 9, 19, 18, 8, 18, 5, 17, 1, 12, 4, 12, 13, 20, 10, 12, 19, 9}. Koliko tankov lahko prepeljemo na dan, koliko po kateri cesti? Narisi tudi dani uteženi usmrjeni graf.

(http://www2.nauk.si/files/307/slika5.png) (http://www2.nauk.si/files/307/slika6.png)
0%
0%