![]() Wersja 13 programu Mathematica to w ponad 30-letniej historii rozwoju tego programu, kolejny krok na drodze do zapewnienia użytkownikom coraz większej mocy obliczeniowej, skuteczności i wydajności pracy. Wiele funcjonalności programu Mathematica wyposażonych zostało w wersji 13 w nowe procedury lub w znaczące rozszerzenia procedur istniejących. Zmiany objęły obliczenia symboliczne i numeryczne, grafikę i wizualizację, geometrię i geografię, obliczenia w dziedzinie Data Science, przetwarzanie obrazów i algorytmy maszyn uczących się, podstawy budowy Mathematica Notebook i struktur Wolfram Language oraz wymiany informacji ze innymi aplikacjami. |
![]() |
Nowości w wersji 13.0
Nowości w wersji 13.1
Nowości w wersji 13.2
Nowości wprowadzone w wersji 13.0
Mathematica 13.0 to ponad 150 nowych funkcji i zmiany głównie w obszarach eksploracji danych, inżynierii, naukach biologicznych, chemii i matematyce. To także zmiany w Wolfram Language i procedurach współpracy w ramach różnych środowisk programistycznych ze środowiskiem Wolfram Language.
Możliwości w zakresie przetwarzania złożonych struktur danych, to przede wszystkim import danych w 246 różnych formatach, a wersji 13 dodano do tej listy formaty naukowe (DTA, SAV, SAS7BDAT, XPORT), format rastrowy (OpenEXR), format video (FLV) oraz metadane w formacie WebP i HEIF.
Pełna lista nowości i zmian w tej wersji programu z podziałem na obszar zastosowań oraz wykaz alfabetyczny dostępne są pod adresami:
Lista nowości w wersji 13
Alfabetyczny wykaz nowych i zmienionych funkcji programu w wersji 13
Poniżej wymienione zostały znaczące nowości i ważniejsze zmiany wprowadzone w wersji 13 programu.
Całkowanie symboliczne
Funkcje elementarne
Obliczenia numeryczne i nowe formy liczb przybliżonych
Bieguny funkcji i wykresy na płaszczyźnie zespolonej
Kriging i modelowanie wariogramu
Dopasowanie obiektów 2D/3D do zbioru punktów
Obrazy i sekwencje video
Wykresy 2D i 3D
Algorytmy uczenia maszyn
Interfejs użytkownika i edycja komend
Język programowania
Instalacja programu
Inne obszary wprowadzonych zmian i ulepszeń
|
Od wersji pierwszej programu Mathematica w roku 1988 mocną stroną programu była możliwość symbolicznego liczenia całek. Zdolności w tym zakresie poszerzane są w dalszym ciągu. Program w wersji 13 liczy całki, które w wersjach wcześniejszych nie mogły być liczone lub korzystały z funkcji specjalnych.
A tak wyglądała odpowiedź w wersji 12.3.
|
Funkcje specjalne to pewna forma gromadzenia wiedzy matematycznej. Jeśli w rozwiązaniu jakiegoś problemy otrzymujesz w wyniku funkcje specjalne, to już ten fakt mówi wiele o na temat rozwiązywanego problemu. Funkcje specjalne w środowisku Wolfram Language od pierwszych wersji programu Mathematica były mocną stroną programu, a wyznaczanie ich wartości z dowolną precyzją numeryczną było zawsze priorytetem.
Kierunki rozwoju w tym zakresie wyznaczał uznany podręcznik z roku 1964, którego autorami byli Abramowitz i Stegun pod tytułem “Handbook of Mathematical Functions”. Zawiera on setki funkcji, niektóre używane powszechnie inne rzadziej.
W wersji 13 programu Mathematica wszystkie funkcje z tego podręcznika są w pełni obliczalne. Ostatnią, wprowadzoną do środowiska Wolfram Language funkcją była kulombowska funkcja falowa, wykorzystywana w mechanice kwantowej.
Tak wygląda opis funkcji w cytowanym podręczniku.
Źródło: Wolfram Blog
A tak w środowisku Wolfram Language.
|
Obliczenia numeryczne wymagają śledzenia dokładności wyników, a wiąże się to bezpośrednio ze sposobem definiowania liczb przybliżonych oraz dokładności ich przybliżeń. Pierwszym sposobem, stosowanym w środowisku Mathematica jest użycie liczb o skończonej precyzji.
Innym podejściem jest użycie funkcji Around, która reprezentuje wartość losowo rozłożoną wokół określonej wartości. W wersji 13 wprowadzona został funkcja CenteredInterval.
Definiuje ona liczbę rzeczywistą jako przedział centrowany w podanym punkcie.
|
Operowanie na płaszczyźnie zespolonej zostało usprawnione dzięki wprowadzeniu szeregu nowości i modyfikacji. Przykładem są procedury wizualizacji i wyznaczania biegunów funkcji.
|
W wersji 13 dodana została możliwość modelowania powierzchni na podstawie skończonej liczby punków xyz. Dane xyz mogą opisywać dowolne zjawisko. Mogą to być dane ze stacji meteorologicznych, próbki gleby pobrane w określonych lokalizacjach, dane z odwiertów geologicznych czy dowolne parametry opisujące pewne obszary na powierzchni Ziemi.
Poniżej przedstawione zostało graficznie położenie punktów określone przez współrzędne xy, a współrzędna z został pokazana jako kolor punktu. Listy o nazwach listaXY oraz listaZ zawierają dane wejściowe.
Na bazie tych punktów xyz wyznaczona zostanie przestrzenna siatka wartości za pomocą procedury SpatialEstimate.
Teraz już możemy zrobić wykres 3D wyznaczonej powierzchni.
Funkcja SpatialEstimate posiada zestaw opcji, pozwalający wpływać na proces interpolacyjnego wyznaczania siatki wartości, włącznie z możliwością modelowania funkcji wariogramu, który jest podstawą metody krigingu, stosowanej przez tę funkcję.
|
Nowa funkcja o nazwie RegionFit pozwala wyznaczyć obiekt geometryczny, który jest dopasowany do zbioru punków.
Wyznaczmy losowo 15 punktów leżących na okręgu o środku w punkcie (3,2) i promieniu o wartości 2 jednostek.
|
Generowanie sekwencji video
W wersji 12.3 zostały wprowadzone funkcje, takie jak AnimationVideo i SlideShowVideo, które pozwalają tworzyć sekwencje video z generowanych treści. Ten kierunek zmian programu został podtrzymany w wersji 13. Dodano w niej kolejne procedury pozwalające generować filmy na bazie istniejących obrazów, czy innych sekwencji video.
Przede wszystkim wersja 13 wprowadziła funkcję Video, która pozwala na odtwarzanie filmów wprost w strukturze notatnika. Rysunek pokazuje wygląd modułu odtwarzania filmu video w środowisku Mathematica Notebook.
Komenda TourVideo generuje sekwencje obrazów na bazie zdjęcia. Składnia komendy precyzuje parametry obrazów wycinanych ze zdjęcia w celu stworzenia sekwencji video. Poniżej prezentowana jest praca tej komendy na przykładzie zdjęcia krakowskiego rynku nocą.
Noc w Krakowie
![]() |
Obraz został opublikowany na portalu Sekcji i Klubu Fotograficznego SzOK, Szamotulskiego Ośrodka Kultury. |
Teraz wystarczy uruchomić animację.
|
Automatyczne łączenie obrazów
Funkcja ImageStitch to procedura łączenia w jeden panoramiczny widok wielu zdjęć zrobionych pod różnymi kątami.
Procedura bazuje na poszukiwania tak zwanych punktów kluczowych w obrazach ImageKeypoints. Dokonywane są również niezbędne korekty obrazów składowych, jak między innymi wyrównywanie jasności.
|
Wykresy z wielokrotnymi osiami liczbowymi
Rysunek przestawia pięć krzywych, kolejne potęgi zmiennej x od pierwszej do piątej, każda z własną osią dla zmiennej y.
Osie liczbowe skalowane w jednostkach typu data/czas
Od wersji 13 programu Mathematica osie liczbowe wykresów mogą być skalowane w jednostkach daty i czasu. Rysunek poniżej pokazuje wykres, gdzie oś pionowa wyskalowana jest w godzinach w ciągu doby, a oś odciętych wyskalowana jest w jednostkach daty.
Nieskończoność na osi liczbowej wykresu
Osie liczbowe na wykresie mogą mieć obecnie zdefiniowane nieskończone zakresy. Rysunek pokazuje wykres, dla którego oba końce zakresu zmiennej x przyjmują wartość ∞. Zakres zmiennej x określony jest od -∞ do ∞.
Nowe formy wizualizacji
W wersji 13 wprowadzono wiele zmian w zakresie wizualizacji danych w formie drzewa GraphTree, szereg nowy opcji dla komendy GeoGraphics oraz komend wizualizacji struktur związków chemicznych MoleculePlot i MoleculePlot3D.
Wprowadzenie nowych możliwości w zakresie mechaniki ciała sztywnego pociągnęło za sobą rozwój nowych metod wizualizacji, takich jak procedura VectorDisplacementPlot, czy VectorDisplacementPlot3D. Wykresy tego typu pozwalają na wizualizację deformacji i odkształceń.
Nowy rodzaj wizualizacji geograficznej GeoGraphValuePlot pozwala łączyć punkty na mapie za pomocą linii, obrazujących przepływy, których atrybuty, np. kolor, grubość kreski, zależą od wartości liczbowych
Nowe atrybuty oświetlenia obiektów w wizualizacji 3D
Już od wersji 1.0 programu dostępna była opcja Lighting, która pozwalała sterować oświetleniem powierzchni 3D. Od wersji 13.0 możliwa jest bardziej precyzyjna kontrola oświetlenia. Rodzaj, kierunek, czy kolor światła mogą być teraz definiowane za pomocą symbolicznych komend.
Komenda poniżej definiuje źródło światła złożone z niebieskiego światła otoczenia oraz dwóch świateł kierunkowych w kolorach czerwonym i zielonym.
Wersja 13.0 wprowadziła do sterowania oświetleniem takie opcje, jak AmbirntLight, DirectionalLight, PointLight czy SpotLight.
|
Detektory kontekstu w algorytmach uczenia maszyn
Dostępna w środowisku Mathematica od wersji 10.0 procedura Classify pozwala tworzyć funkcję klasyfikatora obiektów, na bazie dostarczonych przykładów i odpowiadających im klasom obiektów. W zbiorze uczącym zawarte są obiekty i przypisane im klasy.
Poniżej pokazano przykład tworzenia funkcji klasyfikatora rozpoznającego ręcznie pisane cyfry.
Cechą charakterystyczną jest tutaj fakt, że przykłady obrazów cyfr pisanych ręcznie używanych w klasyfikatorze są wykorzystane w całości. A co w sytuacji, gdy cyfry pisane ręcznie są tylko fragmentem większego obrazu, jak na przykład pokazano poniżej.
Można oczywiście odpowiednio przygotować obrazy dla klasyfikatora wycinają fragmenty obrazu, ale wersja 13.0 daje dodatkowe możliwości w tym zakresie. Wprowadzono dwie nowe funkcje TrainImageContentDetector oraz TrainTextContentDetector, używane odpowiednio dla uczenia klasyfikatora obiektów graficznych i tekstowych.
Użyta funkcja Rectangle pozwala sprecyzować, gdzie na obrazie uczącym znajduje się dany obiekt, a reguła przyporządkowania przypisuje go do określonej klasy. Nie ma konieczności wycinania obiektów do mniejszych obrazów, wystarczy wskazać, gdzie obiekty znajdują się na większym obrazie. Taka sama idea została zastosowana do obiektów tekstowych.
Tak utworzony klasyfikator może być używany tak samo, jak wynik operacji Classify.
|
Automatyczne uzupełnianie nawiasów zamykających w edycji komend
Dobrym nawykiem w edycji komend Wolfram Language było wstawianie nawiasu zamykającego, po wprowadzeniu nawiasu otwierającego, a w kolejnym kroku uzupełnianie treści wewnątrz tego nawiasu. Zapobiegało to ewentualnym błędom związanym z przeoczeniem zamknięcia nawiasu, szczególnie przy skomplikowanych komendach.
Wersja 13 Wolfram Language automatycznie domyka nawias otwarty. Dotyczy to zarówno argumentów funkcji [...], nawiasów ograniczających listy {...}, jak i nawiasów grupujących wykonywane komendy (...). Dotyczy to również struktur [[...]], <|...|> oraz komentarzy (*...*).
Przykładowo, po wprowadzeniu nazwy funkcji f i nawiasu otwartego [ pojawia się obraz pokazany poniżej oraz następuje domknięcie otwartego nawiasu. Kursor edycji ulokowany jest między nawiasami i system czeka na edycję treści wewnątrz nawiasu.
Osoby, którym tego typu nowości “przeszkadzają” w pracy z programem z uwagi na przyzwyczajenia z wcześniejszych wersji, mogą wyłączyć tę funkcjonalność, modyfikując nastawy w oknie Preferences.
Monitorowanie postępu obliczeń
Prowadząc długotrwałe obliczenia często trudno się zorientować, czy program ciągle coś liczy, czy system jak określamy to potocznie “zawiesił się”. Efekt często jest taki sam, brak informacji o stanie pracy programu. Plany rozwojowe Wolfram Language zakładają objęcie jak największej liczby funkcji interaktywnym monitorowaniem postępu obliczeń.
Monitorowanie postępu obliczeń jest bardzo pomocną opcją nawet w sytuacji, co może się zdarzyć, monitorowania postępu obliczeń funkcji, której użytkownik się nie spodziewał. Była po prostu wywołana automatycznie przez monitorowana procedurę. Może to wnosić “pewne zamieszanie” do monitoringu, ale zalety płynące z możliwości śledzenia obliczeń przewyższają tego typu wady.
Jeżeli użytkownik uzna, że raportowanie postępu obliczeń jest zbędne i nie jest mu potrzebne, to może wyłączyć tę funkcjonalność dla danej komendy lub ogólnie dla całego systemu obliczeń. Każda monitorowana komenda ma opcję ProgressReporting, którą można ustawić na False lub użyć zmiennej globalnej $ProgressReporting dla wyłączenia raportowania dla całego systemu.
|
Aliasy dla kontekstów
Kiedy tworzona jest nowa zmienna w środowisku programu na przykład zmienna x, to powstaje pytanie “które x”. W systemie może istnieć wiele definicji zmiennej i dlatego od wersji 1.0 programu Mathematica wprowadzono pojęcie kontekstów. Domyślnie tworzony nowy symbol jest definiowany w kontekście globalnym, więc utworzona zmienna x faktycznie ma nazwę Global`x.
Jeśli tworzony jest pakiet (Package), który ma być dołączany do środowiska obliczeniowego przez komendę Needs, to twórca pakietu musi zadbać o to, żeby zmienne definiowane w pakiecie nie kolidowały z innymi używanymi nazwami. Aby to osiągnąć, zwykle pakiety definiują swój własny kontekst. Można wtedy zawsze odwoływać się do symbolu w pakiecie poprzez jego pełną nazwę, powiedzmy Pakiet`Podpakiet`x. Jeśli teraz ma być użyta zmienna x, to jaka wartość zostanie wzięta do obliczeń? Jest to zdefiniowane przez ustawienia zmiennych $Context i $ContextPath.
Jeżeli trzeba użyć pełnej nazwy razem ze ścieżką kontekstu, to nazwa takiej zmiennej może być długa i niewygodna w operowaniu w kodzie źródłowym.
Z pomocą w wersji 13.0 przychodzi możliwość definiowania aliasów dla kontekstów. Teraz zamiast wywoływać pakiet komendą:
można zastosować składnię:
i zamiast zmiennej
użyć nazwy
Wszystkie nazwy zmiennych wbudowane w środowisku Mathematica zaczynają się od wielkich liter. Dobre nawyki i sugestie producenta idą w kierunku stosowania nazw własnych użytkownika zaczynających się od małych liter. Sugestia dotyczy również aliasów dla kontekstów. Ponieważ w środowisku rozróżniane są małe i duże litery w nazwach obiektów, wiec zabezpieczy to przed ewentualną kolizją nazw własnych z nazwami systemowymi.
|
Dwie opcje pobierania wersji instalacyjnej
Wersja instalacyjna programu Mathematica w wersji 12.3 w formie spakowanego pliku zip miała wielkość ponad 4.5 GB. W wersji 13 został wyodrębniony do samodzielnego pliku wyłącznie wersję instalacyjną samego programu, a po instalacji dokumentacja w formie systemu Help dostępna jest z poziomu programu w wersji on-line. Do korzystania z dokumentacji konieczne jest aktywne połączenie internetowe.
Dodatkowo w opcji Help znajduje się polecenie Install Local Documentation, które pozwala zainstalować lokalną wersję dokumentacji programu.
|
■ Mechanika ciała stałego ( Solid and structural mechanics)
■ Drzewa, grafy, operacje na grafach
■ Formuły chemiczne i reakcje chemiczne
■ Biosekwencje
■ Baza wiedzy: bieżące i przyszłe loty samolotów
■ Automatyzacja w projektowaniu układów sterowania
■ Tworzenie pakletów
■ Repozytorium funkcji
■ Narzędzia do tworzenia quizów
■ Rozbudowa w zakresie CloudExpression
■ ... i wiele innych
Nowości wprowadzone w wersji 13.1
W wersji 13.1 programu Mathematica, jak w każdej nowej wersji programu dodane zostały nowe funkcje do środowiska oraz w wielu istniejących funkcjach wprowadzono zmiany, głównie polegające na dodaniu nowych opcji do istniejących komend.
Znacząca część wprowadzonych zmian wiąże się poszerzaniem możliwości graficznej wizualizacji. Znaczna liczba nowości w zakresie grafiki dotyczy wizualizacją grafów i struktur drzewiastych, ale wprowadzono też nowy rodzaj wykresu punktowego TernaryListPlot, popularnie zwany diagramem trójkątnym.
Liczną grupę nowości stanowią procedury związane z kompilacją kodu źródłowego, operacjami macierzowymi, operacjami na strukturach listowych oraz zmiany w zakresie różniczkowania, całkowania i równań różniczkowych.
Pełne listy nowości i zmian w tej wersji programu z podziałem na obszar zastosowań oraz wykaz alfabetyczny dostępne są pod adresami:
Lista nowości w wersji 13.1
Alfabetyczny wykaz nowych i zmienionych funkcji programu w wersji 13.1
Poniżej wymienione zostały znaczące nowości i ważniejsze zmiany wprowadzone w wersji 13.1 programu.
|
Wprowadzone zostały funkcje tworzące blokowe macierze strukturalne, takie jak blokowa macierz diagonalna BlockDiagonalMatrix, czy blokowa macierz trójkątna górna BlockUpperTriangularMatrix i dolna BlockLowerTriangularMatrix. Wprowadzona też została nowa funkcja PermutationMatrix.
Przykład użycia funkcja BlockDiagonalMatrix.
|
W zakresie operacji na listach wprowadzone zostały nowe funkcje Threaded, DeleteAdjacentDuplicates oraz DeleteElements.
Funkcja Threaded
Użycie funkcji Threaded zmienia przebieg operacji na listach. Poniżej pokazano operację dodawania dwóch list.
A teraz podobna operacja z użyciem funkcji Threaded:
Funkcja DeleteElements
Procedura DeleteElements pozwala usunąć całkowicie określone elementy z listy lub tylko ich określoną liczbę początkowych wystąpień na liście.
Poniższa komenda usuwa całkowicie element x z listy
..., a w poniższej formie tylko pierwsza dwa wystąpienia tego elementu.
Funkcja DeleteAdjacentDuplicates
Usuwanie duplikatów w serii identycznych elementów listy.
Wprowadzone zostały operacje na listach, traktowanych jako zbiory elementów. Funkcja SymmetricDifference działając na dwóch listach zwraca elementy obu list, które występują tylko na jednej z tych list, a w przypadku większej liczby list będących argumentami funkcji, zwraca te elementy, który występują na nieparzystej liczbie list. Natomiast funkcja UniqueElements jako wynik operacji na wielu listach podaje listę elementów z każdej z list, które występują tylko na jednej z tych list.
|
Wersja 13.1 wprowadziła kilka nowych rodzajów wykresów. Niektóre z nich bardzo niszowe, jak BuckyballGraph, FeatureImpactPlot czy FeatureValueImpactPlot, ale też szerzej znane i używane, jak TernaryListPlot.
Nowością jest procedura CircularArcThrough, która pozwala wyznaczyć łuk okręgu przechodzącego przez zadane punkty. Funkcja jest wykorzystywana najczęściej w połączeniu z procedurą GeometricScene do definiowania ograniczeń w prezentacjach geometrycznych.
|
W zakresie różniczkowania wprowadzone zostały nowe funkcje CaputoD (pochodna ułamkowa według definicji Caputo), FractionalD (pochodna ułamkowa Riemanna-Liouville’a) oraz ImplicitD (pochodna funkcji niejawnej, uwikłanej). Wprowadzona została możliwość podmiany zmiennej w równaniach różniczkowych oraz całkowaniu przez dodanie procedur DSolveChangeVariables oraz IntegrateChangeVariables.
Podstawienie nowej zmiennej.
Dyrektywa Inactive blokuje wykonanie funkcji Integrate podczas operacji podstawienia zmiennej.
Teraz można “odblokować” całkowanie, wykonać obliczenia po podstawieniu zmiennej i wrócić do zmiennej pierwotnej.
Wynik jest oczywiście taki sam, jak przy bezpośrednim całkowaniu względem zmiennej x. Podobny mechanizm można zastosować przy całkowaniu równań różniczkowych i podobną rolę pełni funkcja Inactive i Activate,tym razem aby zablokować wykonanie DSolve.
|
Procedura GraphProduct pozwala tworzyć nowe grafy przez logiczne operacje (Boolean combinations) na grafach pierwotnych. Wprowadzono także operacje przekształcające grafy, takie jak GraphJoin, czy GraphSum.
|
Wprowadzonych zostało szereg nowych opcji dla komendy Tree i komend pokrewnych. Pozwalają one wpływać na atrybuty etykiet elementów drzewa, wielkość elementów, kształt symboli węzłów, wygląd krawędzi drzewa, itp.
Zróżnicowane obrazy węzłów drzewa dzięki zastosowaniu opcji TreeElementShape.
Sterowanie wyglądem krawędzi drzewa za pomocą opcji ParentEdgeStyleFunction.
|
■ Nowe funkcje pomocne w kompilacji kodu źródłowego
■ Struktury chemiczne
■ Modelowanie systemów
■ Sterowanie pracą systemu Kernel
■ Przetwarzanie sekwencji video
■ Programowanie funkcjonalne
■ ... inne zmiany i ulepszenia
Nowości wprowadzone w wersji 13.2
W wersji 13.2 programu Mathematica, podobnie jak we wcześniejszych wersjach, dodane zostały nowe funkcje oraz w wielu istniejących procedurach wprowadzono zmiany.
Znacząca część wprowadzonych zmian wiąże się poszerzaniem możliwości programu w zakresie obliczeń z algebry liniowej i algebry wielomianów, optymalizacji globalnej, rachunku różniczkowego i asymptotycznego, tworzenia sekwencji video i ich edycji oraz przetwarzania obrazów.
Nowe procedury dotyczą głównie obliczeń i wizualizacji astronomicznych, struktur macierzowych algebry liniowej oraz operacji na strukturach drzzewiastych (Tree Constructions).
Pełne listy nowości i zmian w tej wersji programu z podziałem na obszar zastosowań oraz wykaz alfabetyczny dostępne są pod adresami:
Lista nowości w wersji 13.2
Alfabetyczny wykaz nowych i zmienionych funkcji programu w wersji 13.2
Wkrótce na tej stronie zamieścimy więcej szczegółów na temat wersji 13.2.