mathematica.pdf

(295 KB) Pobierz
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Pakiet Mathematica
R. Jasica, M. Marczak
Institute of Computer Science, AGH, al. Mickiewicza 30, 30059, Kraków, Poland
email: [mmarczak,jasica]@student.agh.edu.pl
www: www.student.agh.edu.pl/ [mmarczak,jasica]/mathematica.pdf
Streszczenie
ArtykułdotyczypakietuMathematica.Opróczkilkuogólnychinforma
cji prezentujeróżnemożliwości pracyw pakiecie Mathematica iwybra
ne elementy funkcjonalności. Do zrozumienia artykułu nie jest wyma
gana żadna wiedza o pakiecie.
1 Wprowadzenie. Czym jest Mathematica?
Mathematicajestwszechstronnymśrodowiskiempracydorealizacjiobliczeńma
tematycznych,wizualizacjidanychipublikacjiwynikówprac.Jesttośrodowisko
kompleksowe tzn. niepotrzebne jest żadne dodatkowe oprogramowanieaby zde
finiować problem, rozwiązać go, przeprowadzić graficzną wizualizację otrzyma
nych wyników, a wszystko przygotować w formie gotowej do druku. Wszystko
to możnazrobićw Mathematice.Pierwszawersjaprogramuzostałaopracowana
w 1988 roku przez Stephena Wolframa i posiadała 600 wbudowanych funkcji.
Kod programu mieścił się w 150,000 liniach. W ciągu przeszło 20 lat istnienia
pakiet był stale rozwijany najnowsze wydanie z numerem 7.0.1.0 udostępnia
około 2550 wbudowanych funkcji, a jego kod źródłowy to ponad 2,5 miliona li
nii. (źródło : [1]) Oprócz funkcji wbudowanych istnieje możliwość załadowania
dodatkowych pakietów funkcji (tzw. ”Standard Extra Packages”) także liczba
wszystkich dostępnych funkcji jest jeszcze większa.
Z Mathematicy można korzystać jak z kalkulatora jednak jej możliwości są
znaczniewiększe.Mathematicaumożliwiaobliczeniasymboliczneinumerycznez
dowolną dokładnością. Jej procedury matematyczne implementują bardzo dużą
liczbę algorytmów z których większość została specjalnie zmodyfikowana lub
wręcz stworzona od zera wszystko to w celu jak największej optymalizacji.
Mathematica to również język programowania.
Zakresprocedurobliczeniowychpozwalanawykorzystywaniepakietuzarów
no przez uczniów i studentów jak i pracowników naukowych oraz inżynierów.
Przystępny interfejs i bardzo dobra dokumentacja umożliwiają łatwy start dla
początkujących.
Artykuł rozpoczniemy od opisania interfejsu i konwencji obowiązujących w
programie.Wdalszejczęścizaprezentujemywybranemożliwościprogramuwraz
z prostymi przykładami.
2 Podział na kernel i front-end
Mathematicaskładasięzdwóchczęści”kernel”i”frontend”.Kernelinterpre
tuje wyrażenia (w języku Mathematica) i zwraca wyrażenia wynikowe.
”The Mathematica Front End” udostępnia graficzny interfejs użytkownika,
który pozwala na tworzenie i edycję interaktywnych dokumentów w formacie
”Notebook” mogą one zawierać m.in. kod programów, sformatowany tekst,
wyniki obliczeń, grafikę, komponenty GUI, dźwięki. Dokumenty mają struktu
rę hierarchiczną podstawowym elementem jest komórka (cell). Umożliwia to
podział dokumentu na sekcje.Z dokumentów łatwomożna zrobić prezentację w
formie pokazu slajdów, można je też wydrukować bądź konwertować do innych
formatów (TeX, XML).
Rysunek 1: Wyglądprzykładowegodokumentu typu Notebook i jego struktura.
856828012.014.png 856828012.015.png 856828012.016.png 856828012.017.png
”The Mathematica Front End” jest oficjalnym frontend’em i udostępnia m.
in. takie narzędzia jak debugger i kolorowanie składni. Jednak są też dostępne
alternatywne frontend’y, np.
”The Wolfram Workbench” IDE oparte na Eclipse
JMath tekstowy frontend na licencji GNU
Kernel i frontend komunikują się za pomocą protokołu MathLink. Istnieje
możliwość uruchomienia kernela na jednym komputerze, a frontend’u na dru
gim.
3 Konwencje w Mathematice
operatorem potęgowania jest^
operatormnożeniamożebyćzapisanyjakospacjalubniemusibyćwogóle
zapisywany,a więc wyrażenia ”4x”,”4 x”,”4*x” są sobie równoważne
nazwywbudowanychfunkcjiistałychzaczynająsięodwielkiejlitery,każde
kolejne słowo w nazwie również zaczyna się od wielkiej litery
argumenty przekazywane do funkcji piszemy w kwadratowychnawiasach
podstawową strukturą danych jest lista. Listę zapisujemy w nawiasach
klamrowychnp.{1,2,3}.
kazdy ciąg liter i cyfr, nie rozpoczynający się od cyfry i nie zawierający
innych znaków, jest zmienną
Przyjrzyjmy się prototypowi przykładowejfunkcji:
RandomReal[ {xmin, xmax} ]
Jak widać funkcja przyjmuje jeden argument który jest listą składającą się z
dwóch liczb. Funkcja zgodnie z nazwą losuje liczbę rzeczywistą z przedziału
xmin, xmax.
FunkcjewMathematiceczęstomajądługienazwy.Wynikatozkolejnejkon
wencji wszystkie nazwy funkcji są zapisane jako całe angielskie słowa, chyba
że istnieje odpowiedni standardowy skrót matematyczny. Mathematica zawsze
będzie starała się dać dokładny wynik (o ile argumenty przekazane do funkcji
również były dokładne). Przykład:
In[1]:=Sqrt[25]
Out[1]=5
Wynik zgodny z oczekiwaniami.
In[2]:=Sqrt[2]
Out[2]=
p
2
Za to ten wynik może nieco zdziwić Mathematica stwierdziła że pierwiastek z
dwóch wynosi... pierwiastek z dwóch, czyli nic nie obliczyła. W tym przypadku
prawdopodobnie chodziło nam o uzyskanie przybliżenia, jednak trzeba to zasy
gnalizować explicite np. poprzez funkcję N :
In[3]:=N[Sqrt[2]]
Out[3]=1.41421
Przybliżenie można otrzymać z dowolną dokładnością :
In[4]:=N[Sqrt[3],30]
Out[4]= 1.41421356237309504880168872421
856828012.001.png
4 Obliczenia symboliczne
Główną siłą Mathematicy jest możliwość dokonywania obliczeń symbolicznych.
Operowane na symbolach pozwala na dokładne rozwiązanie wielu problemów
matematycznych
4.1 Różniczkowanie i całkowanie
Do różniczkowania służy funkcja D, do całkowania Integrate. Poniżej krótkie
przykłady :
całka nieoznaczona:
In[]:=Integrate[1/(x^2 + 1), x]
Out[]=ArcTan[x]
całka oznaczona:
In[]:=Integrate[Sqrt[2*x + Sqrt[x]], {x, 0, 1}]
Out[]= 64
44
p
p
p
3+
2 Log
5+2
6
pochodna:
In[]:=D[x^n,x]
Out=n x^{-1+n}
4.2 Upraszczanie wyrażeń
Do upraszczania wyrażeń służą dwie funkcje: Simplify i FullSimplify. Sim
plify wykorzystuje jedynie standardowe przekształcenia algebraiczne. Funkcja
FullSimplify jest znacznie bardziej skomplikowanai przezto wolniejsza, ale czę
sto potrafi znaleźć jeszcze krótszą postać wyrażenia. Przykład:
In[1]:=D[Integrate[1/(x^3 - 1), x], x]
Out[1]:=
2
3 ( 1+ 3 (1+2 x ) 2 )
Kolejno wykonane operacje całkowania i różniczkowania powinny zwrócić nam
to samo wyrażenie. Jednak nie widać tego na pierwszy rzut oka, ponieważ wy
rażenie wynikowe nie zostało uproszczone.
In[2]:=Simplify[%](% to skrót na skorzystanie z poprzedniego wyniku)
Out[2]:= 1
1+ x 3
1
3( 1+ x )
1+2 x
6(1+ x + x 2 )
4.3 Rozwiązywanie równań
Wieleobliczeńwymagarozwiązaniaukładurównańliniowych.Równieżmoż
na to zrobić symbolicznie, za pomocą funkcji Solve.
Przykładoworozwiążmy układ równań:
x +5 y = a
2 x y = b
Wystarczy w Mathematice wpisać:
In:=Solve[{x + 5 y, 2 x - y} == {a, b}, {x, y}]
Otrzymujemy wynik:
856828012.002.png 856828012.003.png 856828012.004.png 856828012.005.png 856828012.006.png 856828012.007.png 856828012.008.png 856828012.009.png 856828012.010.png
x ! 11 ( a +5 b ) ,y ! 11 (2 a b )
Out=
IstniejerównieżfunkcjaDSolvedotyczącarównańróżniczkowych,którapozwala
na rozwiązywanie:
równań i układów ODE (Ordinary Differential Equation)
niektórychrównańPDE (PartialDifferential Equation) większośćpierw
szego rzędu i część drugiego
niektórych systemów DAE (DifferentialAlgebraic Equation)
Przykład:
In[1]:=DSolve[y’[x] + y[x] == a Sin[x], y[x], x]
Out[1]=
y [ x ] ! e x C [1]+ 1 2 a ( Cos [ x ]+ Sin [ x ])
4.4 Przykłady innych funkcji symbolicznych
Limit obliczanie granicy.
Series rozwijanie funkcji w szereg
Minimize szukanie minimum funkcji
Sum liczenie sumy (Σ)
5 Obliczenia numeryczne
Choć Mathematica była pierwotnie przeznaczonado obliczeńsymbolicznych
oferuje bogaty wachlarz funkcji do obliczeń numerycznych.
5.1 Funkcje ogólnego przeznaczenia
N Zwraca numeryczną reprezentacje z zadaną precyzją
NSolve Rozwiązuje zadane równanie numerycznie
NDSolve j/w, ale dotyczy równań różniczkowych
NIntegrate Całkowanie numeryczne
NMinimize Wyszukiwanie numeryczne globalnego minimum
NSum Sumowanie numeryczne
Fourier Pozwala przeprowadzić transformacje Furiera
InverseFourier Przeprowadzaodwrotną operacje do Fourier
5.2 Liczby zespolone
Jednostkę urojonąmożna do wyrażeniawstawić wpisując symbol ”I”.Dodatko
wo dostępne są następujące funkcje do operowania na liczbach zespolonych:
Re Zwraca cześć rzeczywistą liczby
Im Zwraca część urojoną liczby
Abs Wartość absolutna
Sign Znormalizowany kierunek
Conjugate Liczba sprzężona
856828012.011.png 856828012.012.png 856828012.013.png
Zgłoś jeśli naruszono regulamin