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.
”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
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:
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
Plik z chomika:
lazarusp22
Inne pliki z tego folderu:
Computer science with Mathematica.djvu
(4676 KB)
matlab.pdf
(1725 KB)
Mathematica (2).pdf
(861 KB)
Mathematica-w1.pdf
(188 KB)
mathematica(1).pdf
(141 KB)
Inne foldery tego chomika:
Mathematic pliki
Zgłoś jeśli
naruszono regulamin