Mathematica
Mathematica – komercyjny system obliczeń symbolicznych i numerycznych opracowany w 1988 przez Stephena Wolframa. W ciągu swojego istnienia stał się popularny w środowisku naukowców i inżynierów.
Mathematicę charakteryzują wysoka wydajność, szerokie możliwości wizualizacji i prezentacji danych oraz przenośność. Obecnie jest dostępna na większość platform 32- i 64-bitowych.
Komercyjną konkurencją dla pakietu Mathematica jest Maple. Spośród wolnego oprogramowania podobne funkcje oferują programy Maxima oraz Sage.
Historia
Prace nad programem rozpoczęły się w 1986. Wersja 1.0 ukazała się w 1989 dla wielu platform[a][1].
W 1991 wprowadzony został protokół MathLink służący do komunikacji pomiędzy procesami. W 1993 ukazała się wersja 2.2 programu dla systemu Linux. Od 20 stycznia 2005 dostępna m.in. na procesory AMD64. 1 maja 2007 ukazała się wersja 6.0 programu. Wersja 7.0 programu ukazała się 18 listopada 2008, a wersja 8.0 dwa lata później (15.11.2010).
Rozszerzeniem Mathematiki w kierunku obliczeń rozproszonych jest gridMathematica, pozwalająca na niezależne od architektury węzłów obliczenia na klastrach. Najnowsza wersja produktu ma numer 2.1.
Cechy i możliwości
- Własny język programowania funkcyjnego podobny do języka Lisp, który operuje na listach i posiada bogate możliwości ich przetwarzania.
- Obliczenia na liczbach rzeczywistych, zespolonych i kwaternionach o precyzji definiowanej jako epsilon maszynowy lub duże liczby całkowite.
- Wykonywanie obliczeń równoległych, w tym obliczeń z wykorzystaniem karty graficznej w technologii CUDA.
- Przekształcenia wyrażeń arytmetycznych zawierających wielomiany, wyrażenia trygonometryczne, wykładnicze, logarytmiczne itd.
- Rozwiązywanie równań i nierówności różnych typów oraz ich układów.
- Logika matematyczna i algebra Boole'a.
- Algebra liniowa – operacje na skalarach, wektorach i macierzach pod postacią list, przekształcenia i rozkłady macierzy, rozwiązywanie układów równań liniowych, znajdowanie wartości i wektorów własnych, potęgowanie macierzy i funkcje macierzowe, tensory, macierze rzadkie.
- Algebra wyższa – wielomiany rzeczywiste i zespolone, wielomiany diofantyczne, ciała liczbowe, liczby i równania Frobeniusa, ciała skończone (Galois).
- Matematyka dyskretna – kombinatoryka i optymalizacja kombinatoryczna, równania różnicowe i transformata Z, teoria grafów, teoria grup, automaty skończone i komórkowe.
- Teoria liczb – faktoryzacja, kongruencje, równania diofantyczne, analityczne, addytywne i algebraiczne elementy teorii liczb.
- Szeregi, granice i rezydua – sumy i iloczyny, szeregi potęgowe i ich przekształcenia, rozwiązywanie równań rekurencyjnych, znajdowanie granic i residuów funkcji, przybliżenie Pade, alternatywne funkcje numerycznego obliczania przybliżeń granic, residuów i pochodnych.
- Rachunek różniczkowy i całkowy – różniczkowanie, różniczka zupełna, całkowanie, całki oznaczone, nieoznaczone funkcji jednej i wielu zmiennych, całkowanie po różnych obszarach, teoria pola, rachunek wariacyjny, ciągłe i dyskretne przekształcenia całkowe Fouriera i Laplace'a, numeryczna aproksymacja przekształcenia Fouriera i odwrotnego przekształcenia Fouriera.
- Analityczne rozwiązywanie niektórych typów równań różniczkowych zwyczajnych, cząstkowych i różniczkowo-algebraicznych, zagadnienia brzegowe liniowe i nieliniowe.
- Numeryczne rozwiązywanie równań różniczkowych zwyczajnych (wiele wariantów metod Eulera i Rungego-Kutty), cząstkowych (metoda linii MOL), różniczkowo-algebraicznych (metoda IDA) i równań różniczkowych ze stałym opóźnieniem (metoda kroków), wykrywanie równań sztywnych, rozwiązywanie problemów brzegowych, interfejs graficzny do analizy równań różniczkowych.
- Całkowanie numeryczne – kwadratury Newtona-Cotesa, Gaussa, Lobatto i Clenshawa-Curtissa, metody Monte-Carlo i quasi Monte-Carlo, metody adaptacyjne lokalne i globalne, strategie oscylacyjne, eliminacja osobliwości.
- Optymalizacja statyczna bez ograniczeń – metody Newtona, gradientu sprzężonego, Levenberga-Marquardta, BFGS i Brenta, optymalizacja kroku poszukiwań, stany początkowe i końcowe optymalizacji.
- Optymalizacja statyczna z ograniczeniami – programowanie liniowe (metoda simplex, metoda punktu wewnętrznego), numeryczna optymalizacja nieliniowa (lokalna – metoda punktu wewnętrznego, globalna – metoda sympleksu Neldera-Meada, ewolucja różnicowa, symulowane wyżarzanie, przeszukiwanie losowe), analityczna optymalizacja nieliniowa (metoda CAD, metoda mnożników Lagrange'a), programowanie całkowitoliczbowe.
- Prawdopodobieństwo, statystyka i analiza danych – obliczanie prawdopodobieństw, zmienne losowe i ich parametry, ponad sto dystrybuant rozkładów dyskretnych i ciągłych, interpolacja i aproksymacja, funkcje sklejane, sploty i korelacje, estymacja i testowanie hipotez, modele statystyczne.
- Zastosowania w innych dziedzinach wiedzy – teoria sterowania, przetwarzanie sygnałów i przekształcenia falkowe, przetwarzania obrazu i dźwięku, analiza giełdowa i finansowa, eksploracja danych (analiza skupień, dopasowanie sekwencji i dopasowanie do wzorca) i text mining.
- Biblioteka funkcji matematycznych: generatory liczb pseudolosowych, funkcje teorii liczb, funkcje teorii grup, wielomiany ortogonalne, funkcje specjalne i uogólnione, całki i funkcje eliptyczne, stałe matematyczne, fizyczne i jednostki miar.
- Grafika – wykresy 2D i 3D funkcji w postaci zwykłej, parametrycznej i uwikłanej w różnych układach współrzędnych, wykresy specjalne, rysowanie grafów, bryły platońskie, specjalistyczne wykresy statystyczne, opis i modyfikacja wykresów, animacje interaktywne.
- Import danych różnego typu i zapisywanie wyników pracy pod różnymi postaciami (HTML, LaTeX, PostScript, PDF, RTF, CDF, XML z MathLink).
- Narzędzia integracji z innymi systemami poprzez HTTP, SQL, Java, .NET i C.
- Dostęp do dużej internetowej bazy danych matematycznych, naukowych i socjoekonomicznych w serwisie Wolfram Alpha.
Przykłady
Podstawową strukturą danych w Mathematica jest lista. Przykłady list:
In[1]:= m = { {a11,a12}, {a21,a22} }
Out[1]:= { {a11,a12}, {a21,a22} }
Możliwe jest operowanie na listach, których elementami są zarówno liczby jak i zmienne. Funkcja Det[] wylicza wyznacznik macierzy.
In[2]:= Det[m] Out[2]:= -a12 a21 + a11 a22
Zobacz też
- Sage – darmowa alternatywa na licencji GPL.
Uwagi
- ↑ m.in. Apple Macintosh, Sun386i, Silicon Graphics Iris, NeXT, oraz IBM RT PC
Przypisy
- ↑ Peter Wayner. Symbolic Math on the Mac. „BYTE”, s. 239-28, styczeń 1992. ISSN 0360-5280. [dostęp 2026-01-26]. (ang.).
Linki zewnętrzne
Damian Słota, artykuły dla czasopisma „Matematyka i Informatyka na Uczelniach Technicznych” (MINUT) – Politechnika Śląska, minut.polsl.pl, ISSN 2719-3063 [dostęp 2026-01-17]:
- Mathematica – podstawowe instrukcje, 2024.
- Elementy języka Wolfram, 2025.
- Wolfram Research, producent Mathematiki
- Oliver Rübenkönig: IMTEK Mathematica Supplement. University of Freiburg. [dostęp 2019-03-24]. [zarchiwizowane z tego adresu (2017-06-15)]. (ang.).
- Krótka historia rozwoju programu Mathematica
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.