UWAGA! Używamy plików cookies, by ułatwić korzystanie z naszego serwisu. Jeśli nie chcesz, by pliki cookies były zapisywane na Twoim dysku zmień ustawienia swojej przeglądarki. Co to są pliki cookies?

Mathematica, nowości w wersji13.0


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 w wersji 13.3

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ń


  • Zmiany w v13.0, Całkowanie symboliczne
  • 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.

    Nowosci-w-13.0_1.png

    Nowosci-w-13.0_2.png

    A tak wyglądała odpowiedź w wersji 12.3.

    Nowosci-w-13.0_3.gif

  • Zmiany w v13.0, Funkcje elementarne
  • 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.

    Nowosci-w-13.0_4.gif

    Źródło: Wolfram Blog

    A tak w środowisku Wolfram Language.

    Nowosci-w-13.0_5.png

    Nowosci-w-13.0_6.gif

  • Zmiany w v13.0, Obliczenia numeryczne i nowe formy liczb przybliżonych
  • 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.

    Nowosci-w-13.0_7.png

    Nowosci-w-13.0_8.png

    Nowosci-w-13.0_9.png

    Nowosci-w-13.0_10.png

    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.

    Nowosci-w-13.0_11.png

    Nowosci-w-13.0_12.png

    Definiuje ona liczbę rzeczywistą jako przedział centrowany w podanym punkcie.

  • Zmiany w v13.0, Bieguny funkcji i wykresy na płaszczyźnie zespolonej
  • 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.

    Nowosci-w-13.0_13.png

    Nowosci-w-13.0_14.gif

    Nowosci-w-13.0_15.png

    Nowosci-w-13.0_16.png

  • Zmiany w v13.0, Kriging i modelowanie wariogramu
  • 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.

    Nowosci-w-13.0_17.png

    Nowosci-w-13.0_18.gif

    Na bazie tych punktów xyz wyznaczona zostanie przestrzenna siatka wartości za pomocą procedury SpatialEstimate.

    Nowosci-w-13.0_19.png

    Teraz już możemy zrobić wykres 3D wyznaczonej powierzchni.

    Nowosci-w-13.0_20.png

    Nowosci-w-13.0_21.gif

    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ę.

  • Zmiany w v13.0, Dopasowanie obiektów 2D/3D do zbioru punktów
  • 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.

    Nowosci-w-13.0_22.png

    Nowosci-w-13.0_23.png

    Nowosci-w-13.0_24.gif

    Nowosci-w-13.0_25.png

    Nowosci-w-13.0_26.png

    Nowosci-w-13.0_27.png

    Nowosci-w-13.0_28.gif

    Nowosci-w-13.0_29.png

    Nowosci-w-13.0_30.gif

  • Zmiany w v13.0, Obrazy i sekwencje video
  • 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.

    Nowosci-w-13.0_31.png
    Nowosci-w-13.0_32.png
    Źródło: Wolfram blog

    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

    Nowosci-w-13.0_33.gif
    Obraz został opublikowany na portalu Sekcji i Klubu Fotograficznego SzOK,  Szamotulskiego Ośrodka Kultury.

    Nowosci-w-13.0_34.png

    Teraz wystarczy uruchomić animację.

    Nowosci-w-13.0_35.png

    Kraków nocą

    Automatyczne łączenie obrazów

    Funkcja ImageStitch to procedura łączenia w jeden panoramiczny widok wielu zdjęć zrobionych pod różnymi kątami.

    Nowosci-w-13.0_37.gif

    Nowosci-w-13.0_38.gif

    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.

  • Zmiany w v13.0, Wykresy 2D i 3D
  • 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.

    Nowosci-w-13.0_39.png

    Nowosci-w-13.0_40.gif

    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.

    Nowosci-w-13.0_41.png

    Nowosci-w-13.0_42.gif

    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 ∞.

    Nowosci-w-13.0_43.png

    Nowosci-w-13.0_44.gif

    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ń.

    Nowosci-w-13.0_45.png

    Nowosci-w-13.0_46.gif

    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

    Nowosci-w-13.0_47.png

    Nowosci-w-13.0_48.gif

    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.

    Nowosci-w-13.0_49.png

    Nowosci-w-13.0_50.png

    Nowosci-w-13.0_51.gif

    Wersja 13.0 wprowadziła do sterowania oświetleniem takie opcje, jak AmbirntLight, DirectionalLight, PointLight czy SpotLight.

  • Zmiany w v13.0, Algorytmy uczenia maszyn
  • 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.

    Nowosci-w-13.0_52a.gif

    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.

    Nowosci-w-13.0_53.gif

    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.

    Nowosci-w-13.0_54a.gif

    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.

  • Zmiany w v13.0, Interfejs użytkownika i edycja komend
  • 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.

    Nowosci-w-13.0_55.gif

    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ń.

    Nowosci-w-13.0_56.png

    Nowosci-w-13.0_57.gif

    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.

  • Zmiany w v13.0, Język programowania
  • 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ą:

    Nowosci-w-13.0_58.png

    można zastosować składnię:

    Nowosci-w-13.0_59.png

    i zamiast zmiennej

    Nowosci-w-13.0_60.png

    użyć nazwy

    Nowosci-w-13.0_61.png

    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.

  • Zmiany w v13.0, Instalacja programu
  • 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.

  • Zmiany w v13.0, Inne obszary wprowadzonych zmian i ulepszeń
  • ■ 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.

  • Zmiany w v13.1, Operacje macierzowe
  • 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.

    Nowosci-w-13.1-v2_1.png

    Nowosci-w-13.1-v2_2.png

  • Zmiany w v13.1, Przetwarzanie list
  • 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.

    Nowosci-w-13.1-v2_3.png

    Nowosci-w-13.1-v2_4.png

    A teraz podobna operacja z użyciem funkcji Threaded:

    Nowosci-w-13.1-v2_5.png

    Nowosci-w-13.1-v2_6.png

    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

    Nowosci-w-13.1-v2_7.png

    Nowosci-w-13.1-v2_8.png

    ..., a w poniższej formie tylko pierwsza dwa wystąpienia tego elementu.

    Nowosci-w-13.1-v2_9.png

    Nowosci-w-13.1-v2_10.png

    Funkcja DeleteAdjacentDuplicates

    Usuwanie duplikatów w serii identycznych elementów listy.

    Nowosci-w-13.1-v2_11.png

    Nowosci-w-13.1-v2_12.png

    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.

  • Zmiany w v13.1, Grafika
  • 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.

    Nowosci-w-13.1-v2_13.png

    Nowosci-w-13.1-v2_14.gif

    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.

  • Zmiany w v13.1, Rachunek różniczkowy i całkowy
  • 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.

    Nowosci-w-13.1-v2_15.png

    Nowosci-w-13.1-v2_16.png

    Podstawienie nowej zmiennej.
    Dyrektywa Inactive blokuje wykonanie funkcji Integrate podczas operacji podstawienia zmiennej.

    Nowosci-w-13.1-v2_17.png

    Nowosci-w-13.1-v2_18.png

    Teraz można “odblokować” całkowanie, wykonać obliczenia po podstawieniu zmiennej i wrócić do zmiennej pierwotnej.

    Nowosci-w-13.1-v2_19.png

    Nowosci-w-13.1-v2_20.png

    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.

  • Zmiany w v13.1, Grafy
  • 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.

  • Zmiany w v13.1, Struktury drzewiaste
  • 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.

    Nowosci-w-13.1-v2_21.gif

    Graphics:None

    Sterowanie wyglądem krawędzi drzewa za pomocą opcji ParentEdgeStyleFunction.

    Nowosci-w-13.1-v2_23.png

    Graphics:None

  • Zmiany w v13.1, Inne obszary wprowadzonych zmian i ulepszeń
  • ■ 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 drzewiastych (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

    Poniżej wymienione zostały znaczące nowości i ważniejsze zmiany wprowadzone w wersji 13.2 programu.

  • Zmiany w v13.2, Obliczenia astronomiczne
  • Funkcja AstroPosition

    Wolfram Language w wersji 13.2 daje użytkownikowi możliwość przeprowadzenia obliczeń astronomicznych w pełni zintegrowanych z systemem i środowiskiem programu Mathematica. W wielu przypadkach obliczenia te są wzorowane na dostępnych już wcześniej obliczeniach geograficznych, z tą różnicą, że te astronomiczne są znaczenie bardziej skomplikowane. Wynika to z tego, że obiekty zainteresowania, dla których prowadzone są obliczenia, znajdują się w ciągłym ruch i zmieniają swoje pozycje. Dodatkowo względność, która w geografii znaczenia nie ma, w astronomii staje się ważna. Nie wspominając już o tym, że miejsce gdzie obiekty „są” niekoniecznie jest miejscem, w którym wydają się być – z powodu np. opóźnień w propagacji światła wynikającego z jego wędrówki przez ziemską atmosferę. W efekcie opisanie i wskazanie, gdzie w danym momencie znajdują się określone obiekty staje się wyzwaniem.

    Podstawową funkcją, która w Wolfram Language pozwoli nam obliczyć, gdzie znajdują się obiekty astronomiczne jest AstroPosition (analogiczna do znanej już funkcji GeoPosition) . Ta jedna funkcja umożliwi wskazanie położenia wybranego obiektu w różnych układach współrzędnych–pokażemy to na przykładzie Marsa .

    Nowosci-w-13.2-v2_1.png

    Nowosci-w-13.2-v2_2.gif

    Pierwsze użycie tej funkcji zajmuje trochę czasu, gdyż program pobiera efemerydy pozwalające wyznaczać położenie obiektów astronomicznych

    Użycie funkcji według składni pokazanej powyżej pozwala wyznaczyć  położenie Marsa na sferze  niebieskiej „tu i teraz”, czyli w danym momencie i we wskazanej  konkretnej geolokalizacji - w odpowiedzi otrzymamy wyznaczony azymut i wysokość, tj.  współrzędne układu horyzontalnego powiązane z danym czasem i miejscem obserwacji.

    Możemy wyznaczyć położenie Marsa bardziej ogólnie, nie wiążąc otrzymanych wyników z jednym konkretnym punktem obserwacji na Ziemi, w wyniku takich obliczeń otrzymamy współrzędne układu równikowego tj . rektascensję i deklinację .

    Nowosci-w-13.2-v2_3.png

    Nowosci-w-13.2-v2_4.gif

    Powyższe dwa sposoby określają położenie Marsa w odniesieniu do Ziemi .

    Czy Wolfram Language pozwoli nam określić położenie tej planety nie wiążąc jej w żaden sposób z Ziemią?
    Jak najbardziej.

    Do tego celu wykorzystamy Międzynarodowy Niebieski System Odniesienia ICRS, to system czasoprzestrzenny, niezależny od położenia osi obrotu Ziemi, a także od położenia osi ekliptyki . Przy odpowiednio zadanych warunkach AstroPosition w odpowiedzi wyliczy nam rektascensję i deklinację w systemie ICRS (jego początek jest usytuowany w punkcie środka masy naszego Układu Słonecznego) .

    Nowosci-w-13.2-v2_5.png

    Nowosci-w-13.2-v2_6.gif

    Wolfram Language pozwala nam także określić położenie Marsa z wykorzystaniem współrzędnych sferycznych, które łatwo jest przekształcić w razie potrzeby we współrzędne trójwymiarowego układu kartezjańskiego, podane w jednostkach astronomicznych .

    Nowosci-w-13.2-v2_7.png

    Nowosci-w-13.2-v2_8.gif

    Funkcja AstroPosition ma dostęp do wielu niezbędnych danych i jest wspierana przez szereg obliczeń, dzięki czemu pozwala określić położenia nie tylko wszystkich planet naszego Układu Słonecznego i ich księżyców, ale również gwiazd, galaktyk, pulsarów oraz innych ciał niebieskich.

    Funkcja AstroDistance

    Drugą istotną z astronomicznego punktu widzenia funkcją jest  AstroDistance (analogiczna do GeoDistance). Funkcja ta podaje odległość od określonego obiektu do obserwatora (w odniesieniu do czasu lokalnego obserwatora) i jest to odległość  wyznaczona dosyć precyzyjnie.

    Możemy na przykład obliczyć odległość pomiędzy Wenus a Marsem:

    Nowosci-w-13.2-v2_9.png

    Nowosci-w-13.2-v2_10.png

    czy też odległość od nas (bieżąca lokalizacja geograficzna) do gwiazdy τ Ceti - to gwiazda w gwiazdozbiorze Wieloryba, jedna z najbliższych naszemu Słońcu:

    Nowosci-w-13.2-v2_11.png

    Nowosci-w-13.2-v2_12.png

    Możemy także dzięki tej funkcji prześledzić jak będzie zmieniać się odległość pomiędzy nami i Saturnem przez najbliższe 50 lat :

    Nowosci-w-13.2-v2_13.png

    Nowosci-w-13.2-v2_14.gif

    Funkcja AstroAngularSeparation

    Nowa wersja programu Mathematica wprowadza jeszcze jedną funkcję obliczeniową w kontekście astronomii – AstroAngularSeparation. Funkcja ta podaje nam odległość kątową pomiędzy dwoma obiektami nieba widzianymi z określonej pozycji. Poniżej przykład wykorzystania tej funkcji w kontekście  Marsa i Jowisza, widzianych z Ziemi, na przestrzeni 10 lat, 5 lat wstecz i 5 lat w przyszłość:

    Nowosci-w-13.2-v2_15.png

    Nowosci-w-13.2-v2_16.gif

  • Zmiany w v13.2, Wizualizacje astronomiczne
  • Oprócz możliwości przeprowadzania obliczeń astronomicznych, program Mathematica 13.2 proponuje także pierwsze kroki w kontekście wizualizacji obiektów astronomicznych. Tym razem skupimy się na gwiazdozbiorze Oriona, by pokazać fragment nieba w okolicy jednej z jego gwiazd tj. Betelgeuse, widzianej z zadanego miejsca obserwacji. Betelgeuse to czerwony nadolbrzym o dużej jasności, wyróżniający się na naszym jesienno-zimowym nocnym niebie. Otoczenie Betelguese pokazano poniżej w wersji BlackSky i WhiteSky.

    Nowosci-w-13.2-v2_17.png

    Nowosci-w-13.2-v2_18.gif

    Mathematica 13.2 daje możliwość zmiany zakresu obserwowanej przez nas części nieba. Poniżej pokazano otoczenie Betelguese przy kącie obserwacji 15 i 25 stopni.

    Nowosci-w-13.2-v2_19.png

    Nowosci-w-13.2-v2_20.gif

    W programie mamy do wyboru wiele opcji renderowania wybranego przez nas obrazu fragmentu nieba - możemy na przykład wpisać w niego starożytne wizualizacje konstelacji

    Nowosci-w-13.2-v2_21.png

    Nowosci-w-13.2-v2_22.gif

    Możemy także wykonać azymutalny zrzut Lamberta całego naszego nieba :

    Nowosci-w-13.2-v2_23.png

    Nowosci-w-13.2-v2_24.gif

    Niebieska linia na załączonym powyżej zrzucie wskazuje orientację równika Ziemi, żółta linia - płaszczyznę ekliptyki (która jest zasadniczo płaszczyzną Układu Słonecznego), natomiast czerwona linia pokazuje płaszczyznę naszej galaktyki.
    Natomiast jeśli chcemy zobrazować to, co faktycznie widzimy na niebie, potrzebujemy rzutu stereograficznego i Mathematica 13.2 pozwala nam go stworzyć:

    Nowosci-w-13.2-v2_25.png

    Nowosci-w-13.2-v2_26.gif

    Dane, które zawiera program Mathematica 13.2 oraz obliczenia, które można dzięki niemu wykonać są na tyle szczegółowe, że możemy na przykład przybliżyć Jowisza i zaobserwować pozycję jego księżyców – poniżej widzimy trzy z czterech największych (“tu, czyli w Krakowie i teraz czyli w sobotę 4 lutego 2023 o godzinie 17:42”):

    Nowosci-w-13.2-v2_27.png

    Nowosci-w-13.2-v2_28.gif

    A tak je widział Galileusz w Padwie w 7 stycznia 1610 roku godzinę po zachodzie słońca.

    Nowosci-w-13.2-v2_29.png

    Nowosci-w-13.2-v2_30.gif

    Proponujemy również przetestować wiarygodność programu Mathematica 13.2 w kontekście obliczeń astronomicznych. Poniżej (rysunek górny po lewej) znajduje się wyznaczone maksimum obrączkowego zaćmienia Słońca, które będzie mieć miejsce 14 października 2023 roku. Problem polega tylko na tym, że aby to sprawdzić w realnym świecie trzeba by się udać do Belize, bo jak pokazują pozostałe rysunki w Europie raczej nie będzie szans na tę weryfikację. Polecamy zatem obserwacje on-line w Internecie.

    Nowosci-w-13.2-v2_31.gif Nowosci-w-13.2-v2_32.gif
    Nowosci-w-13.2-v2_33.gif Nowosci-w-13.2-v2_34.gif
  • Zmiany w v13.2, Operacje na wielomianach i algebra wielomianów
  • Wprowadzone zmiany pozwoliły znacznie przyspieszyć wykonywanie operacji takich jak LinearSolve, RowReduce, Inverse, NullSpace, MatrixRank, Det, MatrixPower. Przyspieszone zostały też podstawowe operacje na wielomianach takie jak Expand, czy Factor. Oto prosty przykład.

    Utwórzmy dwa wielomiany:

    Nowosci-w-13.2-v2_35.gif

    Nowosci-w-13.2-v2_36.png

    Nowosci-w-13.2-v2_37.png

    Wykonajmy ich iloczyn i rozwińmy go do sumy jednomianów:

    Nowosci-w-13.2-v2_38.png

    Nowosci-w-13.2-v2_39.png

    Nowosci-w-13.2-v2_40.png

    Nowosci-w-13.2-v2_41.png

    Wielomian jest sumą 19 jednomianów. Teraz rozłóżmy tę sumę ponownie na czynniki.

    Nowosci-w-13.2-v2_42.png

    Nowosci-w-13.2-v2_43.png

    Postać wyniku jest oczywista, gdy wiemy czego efektem był rozkładany na czynniki wielomian, ale funkcja Factor musi trochę popracować nad tym wielomianem, bo nie ma tej wiedzy co my.

    Skomplikujemy nieco ten przykład, aby efekt czasowy obliczeń był bardziej widoczny. Stopień wielomianów w1 i w2 nie będzie teraz wynosił 10, ale 400 i porównamy wynik z wersji 13.1 i 13.2 programu Mathematica.

    Wersja 13.1

    Nowosci-w-13.2-v2_44.gif

    Nowosci-w-13.2-v2_45.png

    Nowosci-w-13.2-v2_46.png

    Nowosci-w-13.2-v2_47.png

    Wynik oznacza, że odpowiedź posiada 3 czynniki (odpowiedź funkcji Length), a kernel obliczeniowy pracował na tą operacją nieco ponad 36 sekund. Ta wiedza to efekt użycia funkcji AbsoluteTiming. Nie pokazujemy postaci wielomianu, bo dużą część czasu operacji zajęłoby generowanie wyniku na ekranie.

    A teraz te same operacje w wersji 13.2.

    Wersja 13.2

    Nowosci-w-13.2-v2_48.gif

    Nowosci-w-13.2-v2_49.png

    Nowosci-w-13.2-v2_50.png

    Nowosci-w-13.2-v2_51.png

    W tym prostym przykładzie przyspieszenie obliczeń jest ponad 100 krotne.

    Obliczenia zostały nie tylko wielokrotnie przyspieszone, ale również generowane odpowiedzi się o wiele prostszymi wyrażeniami. Jeżeli złożoność wyrażeń (expressions) w środowisku programu mierzyć liczbą podwyrażeń (subexpressions) wyznaczoną jako odpowiedź funkcji LeafCount, to złożoność niektórych wyrażeń w obliczeniach z zakresu algebry liniowej wielomianów spadła nawet milion razy.

  • Zmiany w v13.2, Optymalizacja globalna
  • Dalszym rozwojem metod optymalizacji w środowisku programu Mathematica jest  poszerzenie zakresu optymalizacji globalnej. Do już zaimplementowanych w środowisku programu metod dodana została deterministyczna metoda optymalizacji globalnej oparta na bibliotece COUENNE (Convex Over and Under ENvelopes for Nonlinear Estimation). Metoda ta dostępna jest teraz w takich procedurach jak: NMinimize, NMinValue, NMaximize, NMaxValue. Metoda COUENNE określa jest też jako metoda optymalizacji nieliniowej typu midex-integer.

  • Zmiany w v13.2, Data i czas
  • Problem efektywnego operowania na zmiennych reprezentujących datę i czas nie należy do najłatwiejszych. W środowisku programu Mathematica procedury operujące na tego typu danych są ciągle rozwijane, wprowadzane są nowe funkcje i ulepszane istniejące już z wersji wcześniejszych programu. Z precyzyjnym określeniem czasu wiąże się pojęcie strefy czasowej lub jakiego kalendarza używamy. Nie bez znaczenia jest też wielkość pomiaru odstępów czasu, czy będzie to dzień, tydzień, a może miesiąc, który już sam w sobie jest mało precyzyjny.

    Wersja 13.2 wprowadziła nowe funkcje generowania losowych wartości daty i czasu o rozkładzie równomiernym. Funkcja RandomDate[] pozwala wygenerować losowo datę z bieżącego roku w bieżącej strefie czasowej i w ramach domyślnego kalendarza.

    Nowosci-w-13.2-v2_52.png

    Nowosci-w-13.2-v2_53.png

    Możemy też wygenerować losową datę na przykład ze stycznia 1846 roku:

    Nowosci-w-13.2-v2_54.png

    Nowosci-w-13.2-v2_55.png

    ... lub z sierpnia 2099 roku:

    Nowosci-w-13.2-v2_56.png

    Nowosci-w-13.2-v2_57.png

    Jeśli w losowej dacie nie interesuje nas czas, a jedynie data dzienna, możemy narzucić generatorowi “granulację” losowanych wielkości:

    Nowosci-w-13.2-v2_58.png

    Nowosci-w-13.2-v2_59.png

    Jeśli potrzebna jest losowa wartość godziny w ciągu najbliższych 6 godzin (“od teraz”), to z pomocą przychodzi funkcja RandomTime.

    Nowosci-w-13.2-v2_60.png

    Nowosci-w-13.2-v2_61.png

    Opcja DateGranularity pozwala pozwala narzucić “granulację” zarówno dla losowego generowania daty jak i czasu.

  • Zmiany w v13.2, Sieci neuronowe
  • Sieci neuronowe zostały zintegrowane w środowisku Mathematica od roku 2015. Są używane nie tylko jako samodzielne procedury, ale również jako podprogramy wywoływane automatycznie przez takie procedury jak: ImageIdentify, SpeechRecognize czy Classify. Funkcje takie jak NetChain i NetGraph pozwalają też tworzyć autorskie rozwiązania w tym zakresie. Biblioteka gotowych rozwiązań, Wolfram Neural Net Repository pozwala skorzystać z dostępnych opracowań producenta.

    Niezależnie od tych możliwości wersja 13.2 pozwala dołączyć do środowiska programu Mathematica rozwiązania zewnętrzne w formie zewnętrznych procedur. Służy do tego celu struktura NetExternalObject. Pozwala ona wykorzystać wytrenowaną na zewnątrz sieć neuronową, która jest importowana do środowiska Mathematica za pomocą zwykłej procedury Import z pliku w określonym formacie.   

  • Zmiany w v13.2, Wizualizacja struktur drzewiastych
  • Fundamentem pod wizualizacje struktur drzewiastych były procedury wprowadzone w wersji 12.3. Wersja 13.1 wprowadziła wiele nowych opcji pozwalających sterować wyglądem drzewa. Wersja 13.2 to dalszy rozwój w tym zakresie, a szczególnie w wizualizacji poddrzew o dużej liczbie elementów.

    Nowosci-w-13.2-v2_62.png

    Graphics:None

    Opcja MaxDisplayedChildren pozwala ograniczyć liczbą wyświetlanych krawędzi dla każdego węzła. Poniżej dla każdego węzła wyświetlane są maksymalnie 3 krawędzie.

    Nowosci-w-13.2-v2_64.png

    Graphics:None

    Nowością w środowisku programu jest funkcja FileSystemTree pozwalająca w formie drzewa przedstawiać strukturę plików w katalogach dyskowych.

  • Zmiany w v13.2, Rachunek różniczkowy
  • W zakresie rachunku różniczkowego praktycznie każda wersja wprowadza jakieś nowości i zmiany. Wersja 13.2 poprawiła znacząco format uzyskiwanych odpowiedzi rozwiązań równań różniczkowych i układów równań większości typów.

    Wersja 13.1

    Wielkość czcionki wyświetlania odpowiedzi została celowo zmniejszona, aby zmieścić całość na ekranie. Szczegóły w tym przypadku nie są istotne, a jedynie forma odpowiedzi.

    Nowosci-w-13.2-v2_66.png

    Nowosci-w-13.2-v2_67.png

    A tak wygląda odpowiedź w wersji 13.2

    Wersja 13.2

    Nowosci-w-13.2-v2_68.png

    Nowosci-w-13.2-v2_69.png

    Nowy algorytm upraszczania rozwiązań równań różniczkowych o stałych współczynnikach pozwolił znacznie uprościć wyniki rozwiązań tej klasy równań, a ma to szczególne znaczenie w elektrotechnice, mechanice czy chemii, gdyż ten typ równań różniczkowych opisuje większość zjawisk w tych dziedzinach inżynierii.

  • Zmiany w v13.2, Partia szachów
  • Podstawową ideą, jaka od początku przyświecała twórcom programu Mathematica było uczynienie jak największej liczby dziedzin działalności człowieka podatnych na opis symboliczny i dzięki temu poddanie ich analizie i wizualizacji. Tam można by interpretować maksymę “Our goal is to make as much as possible computable.

    W wersji 13.2 przyszedł czas na szachy.

    Na razie funkcja Import pozwala wczytać pliki w formacie FEN i PGN, które są zapisem pozycji szachowych. Notacji Forsytha – Edwardsa zwana w skrócie FEN to standardowa notacja opisująca pozycję na szachownicy podczas gry w szachy.

    Pliki PGN zostały specjalnie stworzono do zapisu wydarzeń szachowych, gdyż oprócz zapisu samej partii szachów pozwalają zapisać też dane zawierające nazwę wydarzenia, lokalizację, datę, rundę, nazwy graczy i wynik gry.

    Prześledźmy operacje wykonywane na plikach zapisu partii szachowych.

    Na etapie wczytania pliku PGN można sprawdzić ile partii szachów jest w nim zapisanych.

    Nowosci-w-13.2-v2_70.png

    Nowosci-w-13.2-v2_71.png

    Można wyświetlić ostatnią pozycję każdej gry.

    Nowosci-w-13.2-v2_72.png

    Nowosci-w-13.2-v2_73.gif

    Każda partia zapisana w pliku PGN może być prześledzona krok po kroku za pomocą opcji DynamicGameSummary. Poniżej widoczny jest zapis partii szachów pomiędzy Bobby Fischerem i Borysem Spasskim. Partia była rozegrana w Belgradzie 4 listopada 1992 roku.  Szachownica pokazuje pozycję po 10 ruchach.

    Nowosci-w-13.2-v2_74.png

    Nowosci-w-13.2-v2_75.png

    Zapis danych w pliku odczytany z pliku PGN pokazany został poniżej.

    Nowosci-w-13.2-v2_76.png

    Nowosci-w-13.2-v2_77.png

    Widoczne są poszczególne elementy zapisu, czyli dane wydarzenia i jego uczestnicy, zapisz posunięć każdego z graczy oraz wynik partii.

    Partię szachów można również przedstawić w formie sekwencji video.

    Nowosci-w-13.2-v2_78.png


    Partia szachów Fischer-Spassky
    4 listopad 1992

    Uruchamiając wyświetlanie filmu można prześledzić cała partię szachów. Ustawiona szybkość wyświetlania kolejnych posunięć wynosząca 1 obraz na sekundę raczej nie pozwoli przemyśleć strategii graczy, ale szybkość tę można zmienić, aby był czas do namysłu na wytypowanie kolejnego posunięcia arcymistrzów.

  • Zmiany w v13.2, Interfejs użytkownika
  • Interfejs programu Mathematica podlega ciągłemu rozwojowi, a głównym celem tych zmian jest wyposażenie go w zestaw narzędzi pozwalających na optymalną edycję kodu źródłowego. Kolorowanie fragmentów składni komend, nowe możliwości w zakresie podziału komórki dokumentu, pasek narzędziowy dający łatwiejszy dostęp do edycji atrybutów wyglądu komórki, czy zróżnicowany kolor ramek obejmujących zaznaczony element w komórce, to przykłady w jakim kierunku idą zmiany interfejsu użytkownika.

    Nowosci-w-13.2-v2_80.gif Nowosci-w-13.2-v2_81.gif Nowosci-w-13.2-v2_82.gif
    Nowosci-w-13.2-v2_83.gif Nowosci-w-13.2-v2_84.gif

    Powyżej pokazane zostały zróżnicowane kolory ramek otaczających zaznaczony obiekt. Kolor ramki uzależniony jest od charakteru obiektu. Na kolejnych rysunkach od górnego wiersza po lewej stronie przedstawiono obiekty typu: graf, grafika 2D lub 3D, drzewo, obiekt typu mesh, grafika rastrowa.   

    Zaznaczając obiekt kliknięciem można po kolorze ramki zorientować się jaki jest jego charakter.

    Dodatkowy pasek narzędziowy został do interfejsu wprowadzony w wersji 13.1. W wrsji 13.2 rozbudowane zostały jego możliwość o rozszerzone opcje edycji atrybutów komórki. Teraz można nie tylko ustawiać jej tło i rodzaj wypunktowania z przodu komórki, ale też marginesy komórki, niezależnie z każdej z czterech stron lub wszystkie jednocześnie.

    Nowości wprowadzone w wersji 13.3

    W wersji 13.3 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 wykorzystania systemów LLM (Large Language Models) do konwersacji z systemami sztucznej inteligencji. Wprowadzono zmiany w zakresie modelowania równań różniczkowych, w strukturze notatników (Methematica Notebook), w procedurach uczenia maszyn i sieci neuronowych, w analizie sekwencji wideo, obrazów i dźwięków, w kompilacji kodu i struktury danych oraz w procedurach importowania i eksportowania danych.

    Lista nowości w wersji 13.3
    Alfabetyczny wykaz nowych i zmienionych funkcji programu w wersji 13.3


    Poniżej wymienione zostały znaczące nowości i ważniejsze zmiany wprowadzone w wersji 13.3 programu.

  • Komunikacja z systemami LLM, konwersacja z systemami AI
  • Nowy zestaw procedur z grupy LLM... stworzył możliwość programowego wywoływania funkcji do komunikacji z systemami LLM, na których bazują systemy sztucznej inteligencji (AI). Nowe komendy pozwalają na konwersację z systemami sztucznej inteligencji z poziomu języka programowania Wolfram Language.

    Funkcja LLMFunction

    LLMFunction jest podstawową procedurą pozwalającą kierować polecenia do systemu sztucznej inteligencji bazującego na wybranym modelu LLM. Zdefiniowana przez użytkownika funkcja findbyproperty jest poleceniem wskazania obiektu, który mógłby mieć dwie wybrane cechy, wprowadzone jako argumenty wywołania funkcji. Definicja funkcji może wyglądać następująco:

    LLM2.png

    Wywołując tę funkcję kierujemy do sztucznej inteligencji polecenia wskazania obiektu, który ma podane cechy.
    Problem nie jest zbyt wyszukany i odpowiedź nie wymagała szczególnego wysiłku.

    LLM3.png

    Ze sztuczną inteligencją możemy konwersować na dowolny temat w dowolnym języku. Nie są jej obce na przykład przepisy kulinarne. Poniższe polecenie wywołuje funkcję, która zwraca się do sztucznej inteligencji o podanie przepisu na przygotowanie potrawy. Nazwa potrawy zostaje wprowadzona jako argument tej funkcji. Wynikiem będzie instrukcja jak przygotować wybraną potrawę, ale czy będzie można jej zaufać? Proszę sprawdzić.

    LLM1-A0.png

    Użyta w powyższej komendzie struktura //Framed[Pane[...]]& pozwoliła zadbać o estetykę generowanej odpowiedzi, dokładając ramkę i pionowy pasek przewijania. Sztuczna inteligencja sama z siebie jeszcze tego nie potrafi.

    Przepis na kotlet schabowy to tylko dowód, że ze sztuczną inteligencją można konwersować na dowolny temat i że radzi sobie ona doskonale konwersując w różnych językach. Można sięgnąć do bardziej ścisłej wiedzy. Komenda LLMSynthesise ma za zadanie zmusić system AI do rozwinięcia tekstu podanego jako argument funkcji. Poniżej sięgnęliśmy po małą próbkę wiedzy chemicznej sztucznej inteligencji.

    LLM1-A1.png

    Funkcja LLMTool

    Funkcja LLMTool pozwala na wywoływanie procedur Wolfram Language z poziomu systemu LLM. Generując tekst odpowiedzi sztuczna inteligencja posiłkuje się zdefiniowanym w środowisku Wolfram Language narzędziem.

    Poniżej zdefiniowana została procedura tool, która w następnym kroku zostanie wskazana jako narzędzie dla systemu LLM pozwalające odszukać dane na temat wielkości populacji wybranego miasta.

    LLM4.png

    Zdefiniowana procedura tool zostaje wskazana jego narzędzie dla modelu LLM

    LLM5.png

  • Obliczenia matematyczne
  • Wersja 13.3 wprowadziła szereg zmian między innymi w wymienionych poniżej obszarach:

    • analiza wektorowa
    • analiza zespolona
    • transformacje całkowe
    • równania różniczkowe
    • funkcje specjalne
    • algebra ciał skończonych
    • macierze strukturalne

    Równania różniczkowe

    W rozwiązywaniu rekurencyjnych równań różniczkowych poprawiona została jakość odpowiedzi i wydajność obliczeń.

    RR.png

    Macierze strukturalne

    Procedury generowania macierzy strukturalnych zostały wyposażone w dodatkowe opcje. Pozwalają one między innymi na wybór sposobu zapamiętywania macierzy, co wiąże się z wielkością koniecznej do tego pamięci. Procedury takie jak IdentityMatrix, DiagonalMatrix, FourierMatrix, HankelMatrics, czy ToeplitzMatrix zostały wyposażone w opcję TargetStructure. Opcja ta może przyjmować wartości Automatic, "Dense", "Sparse","Structured".

    Poniżej pokazany został wynik generowania macierzy diagonalnej złożonej z tysiąca liczb losowych. Funkcja ByteCount pozwala wyświetlić tylko rozmiar pamięci w bajtach niezbędnej do zapamiętania macierzy.

    MacierzS.png

    Widoczne są duże różnice w wielkości pamięci potrzebnej do zapamiętania macierzy w zależności od wybranej wewnętrznej struktury jej zapisu.

    Macierz zapamiętana w różnej strukturze będzie oczywiście wyświetlana za pomocą procedury MatrixForm oraz MatrixPlot dokładnie w takiej samej formie, co pokazują poniższe rysunki.

    Macierz.png

    Wizualizacja macierzy za pomocą procedury MatrixPlot.

    Macierz1.png

    Wraz z wprowadzonymi zmianami w zakresie struktury zapisu macierzy nastąpiło przyspieszenie obliczeń w obrębie takich operacji jak Det, Dot, Inverse i LinearSolve.

  • Uczenie maszyn i sieci neuronowe
  • Funkcja ImageIdetify

    W zakresie uczenia maszyn zmodyfikowane zostały takie procedury jak: ImageIdentify, NetModel, NetGraph. Poprawiona została dokładność modelu oraz szybkość obliczeń. Procedura NetExternalObject została wyposażona w możliwość importowania struktury sieci zapisanej w formacie MXNet. Poniżej pokazano przykład użycia funkcji ImageIdentify, która pozwala zidentyfikować obiekt widoczny na obrazku. Sama funkcja zozstała wprowadzona w wersji 10.1 programu Mathematica, a wersja 13.3 pozwala wykorzystywać szybszy i bardziej wydajny model rozpoznawania obrazów.

    UM.png

    Możliwe jest doprecyzowanie rozpoznawania, co pozwala określić rasę psa znajdującego się na obrazku.

    UM1.png

    Funkcja NetModel

    Wersja 13.3 programu przyspieszyła również pracę z modelami sieci neuronowych pobieranych z zasobów Wolfram Neural Net Repository. Procedura NetModel pojawiła się w środowisku programu w wersji 11.1, była modyfikowana w 11.3 i 12.0 i ciągle ma charakter procedury eksperymentalnej. Poniżej pokazano przykład użycia modelu sieci pobranego z repozytorium.

    NN.png

    Zastosowanie wytrenowanej sieci do zestawu danych.

    NN1.png

  • Wizualizacja
  • Funcja Plot i ListPlot oraz funkcje pokrewne zostały wyposażone w nową opcję pozwalającą globalnie ustawić atrybuty podświetlania na wykresach (wyróżniania wykresów). Nowe możliwości pozwalają dynamicznie wyróżniać elementy wykresu po najechaniu wskaźnikiem myszy na wykres. Różne możliwości w zakresie podświetlania interesują fragmentów zwiększają czytelność prezentowanych danych. Opcja PlotHighlighting może być wykorzystywana dla większości wykresów 2D.

    Funkcja Highlighted

    Interaktywne wyróżnianie pojedynczej krzywej na wykresie. Po najechaniu wskaźnikiem myszy (w środowisku programu Mathematica) na pomarańczową krzywą, zostaje zaznaczony punkt na wykresie i podane jego współrzędne. Wyróżnienie dotyczy w tym przypadku wyłącznie wykresu sin(x)+x. Wykres sin(x)+x/2 nie jest objęty wyróżnieniem.

    V.png

    Funkcja PlotHighlighted

    Najeżdżając kursorem myszy na krzywą wyświetlają się współrzędne punktu i linie opadające do osi liczbowych. W tym przypadku wyróżnienie dotyczy obu wykresów zawartych na rysunku.

    V1.png

  • Obliczenia astronomiczne
  • Poprawiona została dokładność obliczeń astronomicznych, między innymi w zakresie określania punktów czasowych wschodów i zachodów słońca dla określonych lokalizacji.

    Przykładem niech będzie obliczenie następnego wschodu słońca dla określonego miasta w określonym dniu.

    A.png

  • Przetwarzanie obrazów
  • Wolfram Language zapewnia szeroką gamę narzędzi do przetwarzania obrazów. Wersja 13.3 zmodyfikowała szereg funkcji języka z tego zakresu oraz wprowadziła nowe procedury.

    Funkcja ImageSynthesize

    Procedura ImageSynthesize pozwala na syntezę obrazu jako nowy wariant obrazu będącego argumentem funkcji lub daje możliwość generowania obrazu na podstawie słownego opisu. Procedura wykorzystuje algorytmy AI. Poniżej pokazano wygenerowanie trzech wariantów tego samego obrazu.

    I.png

    Pokazane poniżej obrazy jeziora zostały wygenerowane przez procedurę ImageSynthesize na bazie słownego opisu. Miały to być obrazy jeziora w stylu malarstwa Claude Moneta.

    I1B-d.png
    Kliknij obraz, aby go powiększyć.

    Funkcja RemoveBackground

    Funkcja oddziela pierwszy plan i tło. Zmiana w wersji 13.3 polega na wprowadzeniu pojęcia istotności pierwszego planu i wykrywanie na tej podstawie elementów do usunięcia stanowiących tło. Poniżej pokazano usuwanie jednolitego tła dla danego koloru.

    I1.png

    Działanie opcji istotności pierwszego planu pokazuje rysunek poniżej. Po lewej stronie znajduje się zdjęcie oryginalne. Obraz środkowy powstał w wyniku zastosowania procedury usuwania tła wywołanej bez dodatkowych opcji. Efekt po prawej stronie uwzględnia opcję istotności pierwszego planu.

    I1A-d.png
    Kliknij obraz, aby go powiększyć.

  • Przetwarzanie wideo
  • W zakresie przetwarzania sekwencji video zmodyfikowano szereg funkcji, takich jak TourVideo czy VideoTranscode. Przespieszone zostało działanie procedur VideoTrim, VideoDelete oraz VideoJoin, pozwalające na edycje filmów, obcinacie fragmentów, usuwanie sekwencji klatek lub łączenia filmów.

    Funkcja TourVideo

    Argumentami funkcji TourVideo poza obrazem i obiektem graficznym, jak było we wcześniejszych wersjach, może teraz być obiekt grafiki typu GeoGraphics. Pokazana poniżej komenda jest wywołaniem funkcji TourVideo na bazie mapy Polski dla zobrazowania podróży z Krakowa do Gdańska. Kontur obszaru Polski jest wygenerowany przez procedurę GeoGraphics.

    I2A.png

  • Przetwarzanie dźwięku
  • Szereg procedur z zakresu analizy, syntezy i przetwarzania dzwięku zostało wyposażonych w możliwość współpracy z algorytmami AI. Procedury takie jak SpeechRecognizeSpeechSynthesize, czy VoiceStyleData zyskały rozszerzone wartości dla opcji Method, dzięki czemu mogą w swoich algorytmach wykorzystywać zewnętrzne serwisy oferujące tego typu możliwości. Współpracują między innymi z Google i OpenAI.

  • Pełna lista nowości w wersji 13.3
  • W wersji 13.3 wprowadzono łącznie nieco ponad 70 nowy procedur, funkcji i obiektów. Zmodyfikowano znacznie więcej. Pełen ich wykaz dostępny jest na podanych poniżej podstronach producenta oraz w systemie pomocy najnowszej wersji programu.

    Lista nowości w wersji 13.3
    Alfabetyczny wykaz nowych i zmienionych funkcji programu w wersji 13.3