Wersja 14 oraz 14.1 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.
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: Poniżej wymienione zostały znaczące nowości i ważniejsze zmiany wprowadzone w wersji 14 programu.
Podstawowe funkcje języka Podstawowe funkcje języka Operacje na listach i procedury mapowania funkcji należą do podstawowych operacji środowiska Wolfram Language. Wersja 14 wprowadziła w tym zakresie nowe funkcje Comap i ComapApply. Istniejąca w środowisku programu procedura Map pozwala zastosować zastosować wybraną funkcję do każdego elementu listy.
Wprowadzona funkcja Comap pozwala zastosować listę funkcji do wskazanego wyrażenia.
W taki sposób można wyliczyć wartości funkcji trygonometrycznych dla danego kąta:
..., a tak zestaw parametrów statystyki opisowe dla zestawu danych.
Nieco inaczej wygląda tutaj wywołanie funkcji Quantile. Wiąże się to z faktem, że pozostałe funkcje użyte w tym przykładzie są funkcjami jednoargumentowymi, a funkcja Quantile potrzebuje drugiego argumentu, dlatego zastosowano strukturę pure function. Zmodyfikowane zostały w wersji 14 niektóre funkcje z zakresu operacji na liczbach, w tym na liczbach w zapisie rzymskim oraz w zakresie operowania na jednostkach fizycznych. Nowością jest funkcja DigitSum pozwalająca wyznaczyć sumę cyfr liczby całkowitej.
Został przyspieszone operacje na liczbach w zapisie rzymski realizowane przez funkcję RomanNumeral i FromRomanNumeral. Poniższa kombinacja funkcji RandomInteger i RomanNumeral generuje 20 losowych liczb w zapisie rzymski z przedziału od 1 do 2024.
Gdyby ktoś miał problemy z identyfikacją tych liczb można zastosować funkcję FromRomanNumeral.
Obie funkcje operowania na liczbach w zapisie rzymskim pojawiły się w środowisku programu w roku 2015 w wersji 10.2 programu Mathematica, ale wersja 14 usprawniła i przyspieszyła te operacje. Obliczenia matematyczne Procedury obliczeń matematycznych to obszar zastosowań programu Mathematica, w którym wersja 14 wprowadziła wiele nowości, aktualizacji i zmian. Zmianami objęte zostały takie obszary matematyki jak: rachunek wektorowy, analiza zespolona, transformacje całkowe, równania różniczkowe i różnicowe, funkcje specjalne, numeryczne rozwiązywanie równań, teoria ciała skończonego (finite field), macierze strukturalne i arytmetyka przedziałowa. W prawie każdej z tych dziedzin wprowadzone zostały nowe funkcje. Przykładowo jeszcze w wersji 13.3 wprowadzona została procedura LineIntegrate licząca symbolicznie całki krzywoliniowe. W wersji 14 wprowadzono jest numeryczny odpowiednik NLineIntegrate.
Rozwiązanie symboliczne za pomocą funkcji LineInterate nie zawsze jest dostępne. Poniżej liczona jest całka po okręgu dla funkcji f. Najpierw obraz tego co będzie liczone.
A teraz całka krzywoliniowa. Rozwiązanie symboliczne nie zostało wygenerowane.
Ale wartość numeryczna obliczona za pomocą funkcji NLineInterate wprowadzonej w wersji 14 może być wyznaczona.
Z innych zmian z tego zakresu należy wymienić funkcje NSurfaceIntegrate, czy NContourIntegrate. Uczenie maszyn i sieci neuronowe Procedury uczenia maszyn i operowania sieciami neuronowym są uzupełniane w każdej wersji programu. Dynamicznej rozbudowie podlega nieustannie Wolfram Neural Net Repository. Jest to zestaw gotowych do użycia sieci “przetrenowanych” sieci neuronowych dedykowanych określonym zastosowaniom. Rozbudowie ulegają szczególnie możliwości w zakresie generowania obrazów oraz konwersja nagrań audio na tekst. Aktualnie repozytorium zawiera ponad 150 gotowych do wykorzystania sieci neuronowych, podzielonych na grupy ze względu na charakter danych wejściowych oraz na cel jakiemu mają służyć. Wizualizacje parami wielu serii danych Wprowadzono kilka rodzajów nowych wykresów, które operują na zastawach kilku serii danych wyświetlając je parami. Najprostszy z tej serii PairwiseListPlot pokazany został poniżej. Rysunek pokazuje zależności między wiekiem pacjentów, zawartością cukru we krwi oraz poziomem cholesterolu. Uśrednione dane pochodzą z bazy Wolfram|Alpha.
Poniżej te same dane zaprezentowane w formie histogramu gęstości za pomocą procedury PairwiseDensityHistogram ...
... lub w formie “wygładzonego histogramu” PairwiseSmoothDensityHistogram.
W zestawie procedur operujących na parach serii danych są jest procedury PairwiseQuantilePlot i PairwiseProbabilityPlot. Astronomia Już wersja 13.2 wprowadziła szereg funkcji pozwalających na wykonywanie obliczeń astronomicznych. Nie są to obliczenia proste, tym bardziej że dane dotyczące pozycji obiektów astronomicznych wymagają obsługi wielu układów współrzędnych, a dodatkowo podawane są dla aktualnej pozycji obserwatora (Here), wyznaczone na ogół w oparciu o geoIP dla lokalizacji komputera użytkownika programu, ale może to znacznie odbiegać od rzeczywistej pozycji wyznaczonej przez wbudowany GPS. W wersja 14 programu położony został nacisk na wyznaczanie zaćmień słońca. Procedura SolarEclipse została wprowadzona do programu przed całkowitym zaćmieniem słońca, które ma być obserwowane w USA w dniu 8 kwietnia 2024. Informacja niniejsza przygotowana została z początkiem marca 2024, czyli mapę związaną z przebiegiem tego zaćmienia możemy oglądać wcześniej na symulacjach sporządzonych w wersji 14 programu Mathematica. Pokazana została poniżej.
Mapa poniżej pokazuje obszar USA i północnego Meksyku, po którym będzie przesuwał się cień księżyca podczas zaćmienia.
Geometria, grafy i grafika Obszary związane z wizualizacjami graficznymi podlegają nieustannym zmianom. Poszerzane są możliwości w zakresie komponowania grafiki oraz modyfikacji ich atrybutów. Z licznych zmian jakie w tym zakresie zostały wprowadzone zasygnalizujemy tylko nowe opcje w zakresie nakładania tekstury na obiekty graficzne oraz zmian dotyczących oparowania na strukturach drzewiatych. Wersja 14 programu Mathematica wprowadziła opcję TextureMapping, która pozwala sterować sposobem nakładania tekstury na obiekty graficzne. Oto kilka przykładów.
Dalszej rozbudowie podlegają procedury operowania na strukturach drzewiastych. Struktury tego typu znajdują coraz liczniejsze zastosowania w wizualizacjach z różnych dziedzin. Rozbudowa programu o nowe opcje renderowania tego typu struktur stwarza coraz większe możliwości w zakresie ich wykorzystania, dając nowe możliwości prezentacji. Często potrzeby użytkowników podpowiadają kierunki nowych modyfikacji i ulepszeń. Opcje takie jak ograniczenie liczby wyświetlanych elementów podrzędnych, definiowanie stylów wyświetlania elementów drzewa, możliwość wprowadzenia tekstowych opisów gałęzi drzewa, czy tak zwane pure trees (“drzewo czyste lub ubogie”) stosowane do prezentacji danych w sytuacji gdy ważna jest tylko struktura drzewa, a nie są istotne parametry jego elementów. Te opcje były dostępne już w wersjach wcześniejszych Przykład drzewa w którym ważna jest tylko jego struktura.
W wersji 14 procedury TreeInsert, TreeDelete i TreeReplacePart, pozwalające operować na fragmentach struktury drzewa zyskały taki sam zestaw opcji jak funkcje Tree. Funkcja mapowania wartości węzłów drzewa została wyposażona w dodatkową opcję pozwalającą narzucić kolejność mapowania węzłów. Przykład pokazuje użycie funkcji n++& do mapowania węzłów, co pozwala na nadanie im kolejnych numerów od 1 do 10. Kolejność numeracji może być różna, a decyduje o tym wartość opcji TreeTraversalOrder.
Przetwarzanie obrazów, sekwencji video i dźwięku Wersja 14 programu Mathematica kontynuuje rozbudowę możliwości programu w zakresie przetwarzania obrazów, sekwencji video i dźwięku. Gdy powstawała pierwsza wersja programu 35 lat przed ukazaniem się wersji 14 programu, jak pisze na swoim blogu Stephen Wolfram, megabajt stanowił dużą porcję danych. Teraz możemy efektywnie operować zestawami gigabajtowymi, co sprawiło, że procedury przetwarzania sekwencji video od wersji 12.1 programu są szybko rozwijane. Szczególnie rozwijane są możliwości programu w zakresie generowania sekwencji video, czyli programistyczne narzędzia pozwalające tworzyć animacje i video. Istniejąca w programie funkcja AnimationVideo bazuje na tworzeniu kolejnych klatek filmu przez wykonywanie operacji zdefiniowanych przez wyrażenia języka programowania. W innym trybie pracuje procedura TourVideo. Operuje ona na istniejącej konstrukcji graficzne i wykonuje specyficzną “podróż” przez wyświetlanie kolejnych fragmentów grafiki według zdefiniowanego planu. Komenda TourVideo zastała zaprezentowana przy okazji omawiania nowości w wersji 13.0. Wprowadzona w wersji 14 komenda Tour3DVideo pozwala na “podróż” przez obiekt 3D, w tym przypadku przez układ 75 sześcianów.
Plan “podróży” definiowany jest jako parametry procedury Tour3DVideo. Trasa “podróży” i położenie kamery definiowane są jako kolejne etapy w formie listy.
Modelowanie systemów Modelowanie systemów w większości przypadków sprowadza się do definiowania równań różniczkowych cząstkowych składających się na model systemu. Zagadnienie to wymaga określenia geometrii układów, zdefiniowania warunków brzegowych oraz konfigurowania samych równań opisujących zachowanie systemu. W wersji 14 programu Mathematica położony został szczególny nacisk na tworzenie modeli układów z zakresu mechaniki ciała stałego, mechaniki płynów oraz elektromagnetyzmu i mechaniki kwantowej. Modelowanie systemów stosowane w programie Mathematica krótko zasygnalizowane zostanie w tym opisie na podstawie tworzenia modelu ciała stałego o określonym kształcie i zdefiniowanych parametrach, rozciąganego z pomocą siły przyłożonej w jednym punkcie. W pierwszym kroku definiowane są zmienne i parametry opisujące model.
Krok drugi to definiowanie modelu. W definicji użyta została procedura SolidMechanicsPDEComponent, która definiuje układ równań różniczkowych cząstkowych, warunki brzegowe i działające siły zewnętrzne.
Procedura NDSolveValue, jak w każdym podobnym przypadku służy do rozwiązania zagadnienia i analizy modelu. Geometria obiektu poddawanego odkształceniom zdefiniowana został za pomocą funkcji Region.
Wynik symulacji odkształcenia obiektu pokazuje rysunek.
Zdefiniowane zostały analogiczne funkcje dla tworzenia modelu dla zagadnień mechaniki płynów FluidFlowPDEComponent oraz zagadnień mechaniki kwantowej SchrodingerPDEComponent. Przyspieszenie operacji Zmiany w kolejnych wersjach programu Mathematica obejmują nowe procedury i ten kierunek zmian jest łatwo zaprezentować, efekty ich są bezpośrednio widoczne. Wiele zmian jest trudno zaprezentować, gdyż dotyczą wewnętrznego funkcjonowania procedur. Wiążą się one z samym algorytmem pracy danej procedury, co wiążę się bardzo często ze znacznym przyspieszeniem obliczeń. Rozbudowa określonych obszarów zastosowań programu wymusza nie jednokrotnie zmiany w już istniejących grupach procedur. Taka sytuacja miała miejsce w wersji 14 przy rozbudowie możliwości w zakresie obliczeń z dziedziny astronomii. Pociągnęło to konieczność zmian w zakresie funkcji czasu oraz nowych systemów kalendarzy ukierunkowanych na zastosowania astronomiczne. Zoptymalizowana w wersji 14 arytmetyka dat pozwoliła na ponad 100 krotne przyspieszenie niektórych operacji. Inną metodą na przyspieszenie otrzymania wyniku jest ograniczenie liczby rozwiązań. Przykładem niech będzie procedura numerycznego rozwiązywania równań NSolve.
Jak widać na tym prostym przykładzie równanie, którego stopień wynosi 4000 ma dokładnie tyle pierwiastków, co nie jest zaskoczeniem. Poniżej wyświetlonych zostało pięć z nich.
Ale żeby wyświetlić pięć z nich program musiał wyliczyć wszystkie. Co by było gdyby wielomian był milionowego stopnia. Wyliczanie miliona pierwiastków mogłoby chwilę potrwać. Wersja 14 pozwala ograniczyć liczbę szukanych pierwiastków bez konieczności wyznaczania wszystkich. Wprowadzona w tej wersji opcja MaxRoots pozwala ustalić ile pierwiastków na zwrócić procedura NSolve.
Jak widać powyżej dzięki użyciu funkcji Timing, wynik otrzymaliśmy całkiem szybko. Pierwszy element listy odpowiedzi 0.265625 to czas trwania obliczeń w sekundach. Wyznaczenie wszystkich pierwiastków równania o stopniu 4000 zajęło na tym samym komputerze ok. . Nie podejmowaliśmy próby wyznaczenia wszystkich pierwiastków równania , ale ograniczenie liczby szukanych pierwiastków daje zadowalające wyniki. Bezwzględna wartość czasu obliczeń jest z oczywistych względów uzależniona od parametrów komputera i wyniki na różnym sprzęcie mogą od siebie znacznie odbiegać. W przykładzie nie jest istotna wartość czasu obliczeń, ale idea użycia opcji MaxRoots. Instalacja programu
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. Inne obszary wprowadzonych zmian i ulepszeń Poszerzony został zestaw formatów importu i eksportu plików oraz między innymi wprowadzono dalsze zmiany w zakresie kompilacji kodu źródłowego. |