Pakiety Matematyczne dla Informatyków

Slides:



Advertisements
Podobne prezentacje
Temat 2: Podstawy programowania Algorytmy – 1 z 2 _________________________________________________________________________________________________________________.
Advertisements

Plan Czym się zajmiemy: 1.Bilans przepływów międzygałęziowych 2.Model Leontiefa.
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania 1 Metody optymalizacji - Energetyka 2015/2016 Metody programowania liniowego.
© Matematyczne modelowanie procesów biotechnologicznych - laboratorium, Studium Magisterskie Wydział Chemiczny Politechniki Wrocławskiej, Kierunek Biotechnologia,
Niepewności pomiarowe. Pomiary fizyczne. Pomiar fizyczny polega na porównywaniu wielkości mierzonej z przyjętym wzorcem, czyli jednostką. Rodzaje pomiarów.
Zmienne losowe Zmienne losowe oznacza się dużymi literami alfabetu łacińskiego, na przykład X, Y, Z. Natomiast wartości jakie one przyjmują odpowiednio.
Funkcja liniowa Przygotował: Kajetan Leszczyński Niepubliczne Gimnazjum Przy Młodzieżowym Ośrodku Wychowawczym Księży Orionistów W Warszawie Ul. Barska.
W KRAINIE TRAPEZÓW. W "Szkole Myślenia" stawiamy na umiejętność rozumowania, zadawania pytań badawczych, rozwiązywania problemów oraz wykorzystania wiedzy.
Menu Jednomiany Wyrażenia algebraiczne -definicja Mnożenie i dzielenie sum algebraicznych przez jednomian Mnożenie sum algebraicznych Wzory skróconego.
Pole magnetyczne Magnes trwały – ma dwa bieguny - biegun północny N i biegun południowy S.                                                                                                                                                                     
Optymalna wielkość produkcji przedsiębiorstwa działającego w doskonałej konkurencji (analiza krótkookresowa) Przypomnijmy założenia modelu doskonałej.
Metody sztucznej inteligencji - Technologie rozmyte i neuronowe 2015/2016 Perceptrony proste nieliniowe i wielowarstwowe © Kazimierz Duzinkiewicz, dr hab.
Dorota Kwaśniewska OBRAZY OTRZYMYWA NE W SOCZEWKAC H.
 Austriacki fizyk teoretyk,  jeden z twórców mechaniki kwantowej,  laureat nagrody Nobla ("odkrycie nowych, płodnych aspektów teorii atomów i ich zastosowanie"),
O PARADOKSIE BRAESSA Zbigniew Świtalski Paweł Skałecki Wydział Matematyki, Informatyki i Ekonometrii Uniwersytet Zielonogórski Zakopane 2016.
Grafika3D Domyślnie obiekty 3D widzimy pod określonym kątem. Możemy go zmieniać Możemy zdefiniować punkt widzenia kamery, środek obrazu i kąt widzenia-ViewPoint,
Test analizy wariancji dla wielu średnich – klasyfikacja pojedyncza
Minimalizacja automatu
W kręgu matematycznych pojęć
Rozwiązywanie równań Podstawowa komenda do rozwiązywania układów równań Solve[eqns,vars] -równania i układy równań -nierówności Równania mogą być sformułowane.
Schematy blokowe.
Wyznaczanie miejsc zerowych funkcji
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
terminologia, skale pomiarowe, przykłady
Metody matematyczne w Inżynierii Chemicznej
RUCH KULISTY I RUCH OGÓLNY BRYŁY
MATEMATYCZNE MODELOWANIE PROCESÓW BIOTECHNOLOGICZNYCH
Analiza Fouriera Redukcja szumów Wydobywanie i filtrowanie informacji
Prowadzący: dr Krzysztof Polko
Liczby pierwsze.
FIGURY.
Pakiety Matematyczne dla Informatyków
Rekursje Tak jak w innych językach funkcje mogą odwoływać się same do siebie Możemy regulować głębokość przed stwierdzeniem błędu (MaxRecursion, $RecursionLimit,
ALGORYTMY I STRUKTURY DANYCH
MECHANIKA 2 Wykład Nr 3 KINEMATYKA Temat RUCH PŁASKI BRYŁY MATERIALNEJ
Podstawy automatyki I Wykład /2016
Elementy analizy matematycznej
Optymalizacja programów Open-Source
Materiały pochodzą z Platformy Edukacyjnej Portalu
KOREKTOR RÓWNOLEGŁY DLA UKŁADÓW Z NIEMINIMALNOFAZOWYMI OBIEKTAMI Ryszard Gessing Instytut Automatyki, Politechnika Śląska Plan referatu Wprowadzenie.
Elementy fizyki kwantowej i budowy materii
PROGRAM WYKŁADU Analiza obwodów liniowych pobudzanych okresowymi przebiegami niesinusoidalnymi. Szereg Fouriera w postaci trygonometrycznej i wykładniczej.
Języki programowania.
Symulacje komputerowe
Selekcja zmiennych w trybie zaawansowanym -
GRUPY DANYCH : Funkcje dostępne z poziomu GRUP DANYCH
Tensor naprężeń Cauchyego
EXCEL Wykład 4.
Wytrzymałość materiałów
Koszyk danych.
Podstawy informatyki Zygfryd Głowacz.
Rozwiązywanie równań Podstawowa komenda do rozwiązywania układów równań Solve[eqns,vars] -równania i układy równań -nierówności Równania mogą być sformułowane.
Dokumentacja rysunkowa
ETO w Inżynierii Chemicznej
Pakiety Matematyczne dla Informatyków
MATEMATYKAAKYTAMETAM
Grafika3D Domyślnie obiekty 3D widzimy pod określonym kątem. Możemy go zmieniać Możemy zdefiniować punkt widzenia kamery, środek obrazu i kąt widzenia-ViewPoint,
ETO w Inżynierii Chemicznej
Implementacja rekurencji w języku Haskell
Znajdowanie liczb pierwszych w zbiorze
REGRESJA WIELORAKA.
Wyrównanie sieci swobodnych
Pakiety BeginPackage[Nazwa] Funkcja1::usage=„Instrukcja dla funkcji Funkcja1” Obiekt1::usage… . Begin[„Private`”] Funkcja1:=… Obiekt1:= End[] EndPackage[…]
Przekształcenia Funkcji
Prawa ruchu ośrodków ciągłych c. d.
Mikroekonomia Wykład 4.
Grazyna Mirkowska Matematyka Dyskretna PJWSTK 2001
Zapis prezentacji:

Pakiety Matematyczne dla Informatyków Wykład 1

Obliczenia numeryczne i symboliczne Obliczenia numeryczne- prosta algebra n.p. zapasy, plany zaopatrzenia dla wojsk Ekstrapolacja- zjawiska astronomiczne, rozwiązania równań różniczkowych- Kartezjusz, Euler Dopasowyawnie modeli ogólnych do danych numerycznych (Kopernik, Kepler, Airy (1820)) Mechanizm z Antikyteny, ok. 150 r. p.n.e.

Komputery jako maszyny obliczeniowe Cyfrowe -maszyna różnicowa Babbage’a (1833) -Bomba kryptologiczna (1938 Rejewski, 1940 Turing) -Colossus 1943 (5,8MHz) -Eniac (trajektorie balistyczne 1950-prognozy pogody von Neumanna, 100kHz) -Lorenz 1963-odkrycie Chaosu -Komercjalizacja komputerów (UNIVAC I $159000 1951, Układy scalone 1958), Sinclair, Apple, Comodore, …

Komputery jako maszyny obliczeniowe Analogowe -Dumaresq (1902-komputer nawigacyjny) -AKAT-1 1959 Jacek Karpiński Zasada działania: Problem: rozwiązać równanie różniczkowe odpowiadające procesowi fizycznemu (n.p. stanowi równowagi hydrodynamicznej). Równanie jest wyrażone przez pierwiastek wielomianu funkcji i jej pochodnych. Równanie reprezentowane jest przez układ elektroniczny Przykłady elementów i operacji -cewki-różniczkowanie] -kondensatory-całkowanie -tranzystory mnożenie

Obliczenia symboliczne Żmudne, często niewykonalne (n.p. całki, równania różniczkowe) (przykłady) Oszczędzające czas-szeregi… Abstrakcyjne-bez podanych wartości początkowych Ogólne- te same zasady dla różnych obiektów matematycznych. Komputery potrafią: Liczyć Interpretować dane Przeszukiwać bazy danych Nadają się do obliczeń symbolicznych

Wczesne programy obliczeniowe Schoonschip (1963) Reduce (1968 Tony Hearn) Macsyma, Maxima (1968) FORM SMP (Wolfram 1979) Axiom Matlab (1985) Derive (1988) Mathematica (1988) R (2000) Symbol x,y; Local myexpr = (x+y)^3; Id y = x; Print; .end

Struktura Programu ~5.5 GB Jądro Interface Pakiety

Cechy programu Zalety Wady Intuicyjna obsługa Droga licencja Szeroka gama zastosowań Duża objętość Mnogość specjalistycznych pakietów i funkcji Duże pliki wyjściowe (notatniki) Bogata biblioteka wewnętrzna Duże zużycie pamięci Programowalność Język wysokiego poziomu-powolne obliczenia Wsparcie dla nowoczesnych środowisk programistycznych Możliwość licencji sieciowej

Zastosowanie Sprawdzanie obliczeń Obliczenia prototypowe Upraszczanie formuł używanych w innych programach Opracowywanie procedur dla innych programów Analiza danych specjalistycznych Wizualizacja danych Przygotowywanie prezentacji Grafika i Animacje (również 3D)

Mathematica 10-interfejs

Format danych w Mathematice Typy danych: -Komórki wejściowe i wyjściowe -string -wyrażenie -liczba całkowita -stałe niewymierne -ułamki -liczby rzeczywiste -liczby zespolone -grafika -grafika 3D -obiekty dynamiczne (dźwięk, animacja} -tablice … Cała komunikacja Mathematici z użytkownikiem jest oparta na wyrażeniach. Wyrażeniem są nawet notatniki. Pozwala to na edycję notatników nawet bez dostępu do programu. Gwarantuje to łatwą i jednoznaczną komunikację z programem

Prosta algebra Nagłówki Przywołanie funkcji: Wprost:f[x] Przed wyrażeniem f[#]&@ Po wyrażeniu //f[#]& Przełączanie katalogów Import i eksport danych

Podstawienie wartości Set[#1,#2],#1=#2-podstawienie natychmiastowe SetDelayed[#1,#2],#1:=#2 podstawienie przy każdorazowym wywołaniu (dla Funkcji) Clear[#] usuwa wartość z pamięci ClearAttributes[#1,#2] ClearAll[#] With[{#1},#2] –podstawia tymczasowo definicje z listy #1 do wyrażenia #2 #1/.#2, ReplaceAll[#1,#2]-podobnie jak with, ale używamy Rule[#] #1//.#2 ReplaceRepeated[#1,#2]-podstawienia dokonywane w kolejności Assuming[#1,#2]-traktowanie wyrażenia #2 przy założeniach #1 (potrzebna jest dodatkowa komenda)

Otrzymywanie wyników Wyświetla się: Nie wyświetla się Proste wyrażenie bez podstawień Set With Replace, With, Block W pętlach po komendzie Print,… Wyrażenia zakończone średnikiem SetDelayed W pętlach

Liczby zespolone Im r q Re Re[#]-część rzeczywista Im[#]-część urojona Conjugate[#]-sprzężenie. Abs[#]-moduł Arg[#]-faza ReIm[#]-zamiana liczby na dwuelementową listę AbsArg[#]- ---//--- FromPolarCoordinates[#] ToPolarCoordinates[#]

Równania kwadratowe W ciele liczb zespolonych liczba pierwiastków wielomianu odpowiada jego stopniowi Wilelomiany o współczynnikach zespolonych mają pierwiastki parami sprzężone

Tablice Uporząkowane ciągi dowolnych obiektów Długość listy może być dowolnie zmieniana Elementy list mogą być bezpośrednio zmieniane Listy mogą być dodawane Listy list o różnych rozmiarach i o różnych głębokościach Możliwe puste listy Jednoelementowa lista nie jest równoważna swojemu elementowi Role: listy, ciągi danych, wektory, tensory, zbiory

Podstawowe komendy Table[…,{i,imin,imax}] Range[i] Sort[#] NestList Map[f,#] KroneckerProduct-iloczyn zewnętrzny dwóch tablic Outer[#1,…]-podobnie, ale #1 może być dowolną funkcją

Jako listy Part[#,m],#[[m]]-pobierz m-ty element listy # Part[#,-m] #[[-m]]-licz od końca #[[m,n]]-dla tablic wielowymiarowych #[[m;n;l]]-elementy od m-tego do n-tego Take[#,m]-pobierz m pierwszych elementów Take[#,-m]-pobierz m pierwszych od końca elementów Take[#,{m,n}]-pobierz elementy od m-tego do n-tego First, Rest, Most, Last

Drop[#,m]-odrzuca pierwsze m elementów Drop[#,-m]- ---//--- ostatnie m elementów Drop[#,{m}] ---//--- m-ty element Append[#,x]-zwraca listę z dodanym elementem na końcu AppendTo[#,x]-dodaje x do listy # (nie zwraca jej) Prepend PrependTo Select[#,m]-Wybiera z listy elementy, które speniają warunek m Length[#]-podaje długość listy Dimensions[#]-wymiary listy wielowymiarowej (foremnej) Sort-porządkuje listę-liczby, ciągi znaków, zmienne, listy Join łączy listy

Listy jako listy-uzupełnienie Reverse[#]-odwrócenie kolejności RotateLeft[#,m]-przesunięcie wyrazów w lewo o m pozycji, pozostałe są dodawane na początku listy. Permutations[#]-daje listę wszystkich Permutacji danej listy (używać ostrożnie!)

Jeszcze o tablicach i mapach Table[i,{j}] Table[f[i],{i,(imin,)imax}] Flatten Partition[…,…] Array-lista kolejnych wartości funkcji Map[f,l(,n)]-mapa funkcji f ma listę l (na poziomie n) MapAt[]-mapowanie konkretnego NestList

Jako zbiory Dane w zbiorach mają niepowtarzalne wartości i są uporządkowane DeleteDuplicates usuwa powtórzone wielkości, Union łączy zbiory Complement podaje elementy pierwszego zbioru, które nie występują w pozostałych Intersection-podaje przekrój zbiorów Subsets wypisuje podzbiory

Przestrzenie wektorowe Zbiory wektorów i liczb W ciele liczb mamy działania addytywne i multiplikatywne (łączne, z elementem neutralnym i odwrotnym*, rozdzielne) Wektory możemy dodawać do siebie i mnożyć przez skalary Istnieje iloczyn skalarny, przekształcający dwa wektory w skalar Iloczyn skalarny wektora z samym sobą daje kwadrat normy. Do ogólniejszych transformacji pomiędzy wektorami służą macierze

Jako wektory Conjugate[w].v= Sum[Conjugate[w[[i]]]v[[i]],{i,1,Min[Length[v],Length[w]] Dwa sposoby mnożenia wektorów i tensorów v.U.w U.w.v Bazy ortogonalne -zbiór prostopadłych wektorów o normie 1 -Norma danego wektora nie zależy od wyboru bazy -bazy powiązane są ze sobą transformacjami Unitarnymi Dot-iloczyn skalarny Norm-Norma wektorowa Normalize-normalizacja wektora Projection Orthogonalize-budowa bazy

Tablice –listy list -Dowolna głębokość -Dowolny wymiar w każdej głębokości -Mogą gromadzić dowolne obiekty -Macierze-szczególna rola w fizyce i matematyce Układy równań liniowych Obroty Mechanika brył Ogólna teoria względności Pole elektryczne i magnetyczne Mechanika kwantowa

Budowa macierzy i tensorów Skalar: Element macierzy: Rozkład Schmidta Rozkład Singularny Macierzy U,V-macierze unitarne przekształcające jedne wektory w inne o tej samej długości D-macierz diagonalna mająca niezerowe elementy tylko d[[i,i]]

Rozkład Schmidta dla tensorów wyższej rangi

Macierze Hermitowskie i Unitarne Kolumny i rzędy macierzy unitarnych są ortonormalne Operacje unitarne zachowują normę i iloczyn skalarny. Mnożenie Macierzy jest niekomutatywne Komutator-antyhermitowski Antykomutator-Hermitowski

Wektory własne i funkcje macierzy Uwagi: Nie wszystkie macierze mają wektory własne Wartości własne mogą być mieszane Istnieje nieskończenie wiele nietrywialnych pierwiastków równania własnego macierzy 0. Operatory w nieskończenie dużych wymiarach mogą mieć tylko wektory własne prawo- lub lewostronne

Funkcje Macierzy MatrixPower MatrixExp MatrixLog MatrixFunction Eigensystem SingularDecomposition

Miary i wielkości charakteryzujące macierze Ślad Macierzy: nie zależy od wybranej bazy Ranga Macierzy: „Obwód”, Permament…

Właściwości wyznacznika Niezmienne względem bazy Obrócenie (transpozycja) macierzy zmienia co najwyżej znak wyznacznika Wyznacznik jest równy 0 wtedy i tylko wtedy, gdy ranka macierzy jest niepełna Zamiana dwóch wierszy zmienia co najwyżej znak Dodawanie do dowolnej kolumny innej kolumny (pomnożonej przez liczbę) nie zmienia wyznacznika

Rozwiązywanie układów równań Metody rozwiązywania układów równań Kombinacja kolumn Kombinacja wierszy Triangularyzacja macierzy Macierz odwrotna

Garść komend Tr[A]-ślad Det[A]-wyznacznik NullSpace[A]-jądro Eigenvalues[A],Eigenvectors[A],Eigensystem[A]-wartości własne, wektory, układ własny UnitaryMatrixQ[A]-test unitarności macierzy Rank[A]-ranga macierzy SingularValueDecomposition[A]-rozkład singularny Inverse[A]-macierz odwrotna Diagonal[A]-wyrazy diagonalne macierzy DiagonalMatrix[List]-macierz diagonalna (przydiagonalna) SparseArray[…]-Macierz o elementach zerowych poza wskazanymi pozycjami Minors[A]-Minory Inverse[A]-macierz odwrotna Transpose[Macierz]-macierz transponowana (wiersze i kolumny zamienione) Map[#,A,{m}]-mapowanie funkcji # na m-ty poziom tablix

Definiowanie Funkcji Y:=x^2+Sin[x] Function[x,f[x]] F[x_]:=5x+Sin[x]-Exp[x] ?

Atrybuty Funkcji SetAttributes[f,…] Attributes[…] ClearAttributes ClearAll[…] ?,?? Constans-zeruje wszystkie pochodne Flat-funkcja staje się łączna (musimy zdefiniować ją dla dostatecznie wielu argumentów HoldAll, HoldFirst,HoldFirst-argumenty nie są przetwarzane Nhold… Orderless Listable-Argument-lista zwraca listę Locked Temporary- atrybut zmiennych tymczasowych NumericFunction

Rekursje Tak jak w innych językach funkcje mogą odwoływać się same do siebie Możemy regulować głębokość przed stwierdzeniem błędu (MaxRecursion, $RecursionLimit, $IterationLimit) Wartości początkowe definiowane są na końcu Tablica wartości rekurencyjnych: RecurrencyTable[#1,#2,{n,nmax}] Funkcje rekurencyjne są podstawą do konstrukcji fraktali.

Module Module służy do definicji funkcji wykonujących złożone obliczenia Możemy wprowadzić lokalne zmienne tymczasowe Wartości tych zmiennych nie są przetrzymywane w pamięci Zwracana jest ostatnia wielkość, która byłaby wyświetlona przy normalnym wywołaniu kodu Przykład: znajdź punkt z okręgu o określonym promieniu i środku, w którym dana funkcja ma największą wartosć. Napisz funkcję zamieniającą pojedynczy element macierzy na wskazaną wartość

Funkcje wielu zmiennych Dwa rodzaje przesłaniania: konfiguracja danych i typy danych W Mathematice tylko niektóre funkcje systemowe są przysłaniane Np. Max[#], Re[#], Power[#1,#2] Przysłanianie wymaga sensu matematycznego Funkcje zdefiniowane dziedziczą przysłanianie po użytych funkcjach Funkcje dla innych konfiguracji danych wymagają redefinicji F[x_]:=… F[x_,y_]:=… Wygodniej jest definiować funkcje dla listy, a nie dla kolejnych zmiennych. N.p. iloczyn tensorowy, wielkości statystyczne dla pojedynczych detekcji, Stopień zbalansowania baz w dowolnym wymiarze…

Funkcje zszywane Funkcje, które definiujemy przez podanie ich postaci na fragmentach dziedziny. f1 f2 f3 f4 f5 f6 f7 f8 f9 Przykłady: -Siła działająca na kulę spadającą do zbiornika z cieczą -cząstka kwantowa w studni potencjału o skończonej głębokości.

Metoda 1 –funkcje warunkowe

Metoda 2 –funkcje blokowe Mathematica posiada kilka różnych funkcji nieciągłych. Róznią się między sobą wartością w punkcie 0 i powiązaniami z innymi funkcjami UnitStep UnitBlock HeavySideTheta HeavySidePi HeavySideLambda Sign KroneckerDelta Bardzo trudne do zastosowania w pewnych obszarach

Metoda 3-Piecewise Piecewise pozwala na zszywanie funkcji. Podajemy listę par. Pierwszym elementem pary jest kawałek funkcji, drugim definicja obszaru, na którym ten kawałek obowiązuje. Jedną z definicji obszaru jest True, obejmuje ona wszystkie punkty, które nie były wcześniej opisane. Definicja Piecewise pozwala na dziedziczenie wszystkich własności funkcji pochodnych i całkowych. Funkcje Piecewise można ze sobą składać. Zmienna systemowa $MaxPiecewiseCases określa na ilu obszarach jest określona funkcja

przydatne działania macierzowe MatrixPower[A,m]-potęga macierzy MatrixExp[A]-wykładnik MatrixLog[A]-logarytm MatrixFunction[F[#]&,A]-dowolna funkcja macierzy

Prezentacja tablic TableForm MatrixForm Row, Column, Grid Frame, Dividers-obramowanie i linie podziału FrameStyle Background SpanFromLeft,SpanFromAbove-elementy łączące komórki (muszą wystąpić w tablicy)

Reprezentacja w tabelach Row[l1],Column[l3],Grid[t1] Item[…] Frame->{True/All/None} Frame->{{2->True},{3->True}} Alignment Dividers->{1->True,2->True} Background SpanFromAbove SpanFromLeft SpanFromTop

Rozwiązywanie równań Podstawowa komenda do rozwiązywania układów równań Solve[eqns,vars] -równania i układy równań -nierówności Równania mogą być sformułowane poprzez przynależność do zbiorów (RegionIntersection) -Niekiedy rozwiązanie są podane w formie uwikłanej. Podobna komenda: Reduce

Podstawowe opcje Cubics,Quatrics- włączanie rozwiązań z pierwiastkami sześciennymi i czwartego stopnia InverseFunctions-pozwolenie na użycie abstrakcyjnej funkcji odwrotnej (nie musi ona istnieć analitycznie) Modulus->N-rozwiązuje równania (wielomianowe) w pierścieniu liczb modulo N

Inne sposoby rozwiązywania NSolve[#,{x}]-rozwiązanie numeryczne Root[p,k]-znajduje k-ty pierwiastek równania wielomianowego p=0 (nawet jeśli ma on postaci analitycznej) FindInstance-znajduje jeden pierwiastek FindRoot-rozwiązanie w pobliżu danego punktu Eliminate[{…},x]-wyrugowuje zmienną z układu równań SolveAlways znajduje wartości parametrów swobodnych, dla których równania są zawsze spełnione RowReduce-buduje macierz trójkątną. LinearSolve-rozwiązuje układ równań linowych

Rozwiązywanie ciągów iteracyjnych RSolve[{a[i]==f[a[i-1],a[i-2],…],a[0]==…,a[1]==…},a[i],i] 0,1,1,2,3,5,8,13,21,34,… 1,2,4,8,16,32,64,…. 1,1,2,6,24,120,720, 1,4,6,4,1 RecurrenceTable[exp,a,Iterator]

Wykresy Plot[f[x],{x,xmin,xmax}] Ogólnie-reprezentacja graficzna przebiegu funkcji, wizualizacja jej przebiegu, głównie poprzez przypisywanie współrzędnych punktom. Plot[f[x],{x,xmin,xmax}]

Podstawowe opcje AspectRatio-> Określa proporcje wykresu Axes->True, False, {#,#}-pokazuje i ukrywa osie PlotRange->Automatic, All, {…,…} opisuje zakres, w którym pokazane są wartości funkcji ClippingStyle->… styl łączenia ze sobą punktów, w którym funkcja wychodzi poza zakres wykresu. Prolog->… Element grafiki będący tłem wykresu Epilog-> Element grafiki umieszczony na wierzchu grafiki Ticks-> znaczniki na osiach

Optymalizacja wykresów PlotPoints-liczba punktów, w których program zaczyna rysować Mesh-pokazuje punkty, w których Wykres był rysowany MaxRecursion-ile razy funkcja była wygładzana PerformaceGoal->”Quality”,”Speed”-wybiera strategię rysowania wykresu WorkingPrecision->Precyzja obliczeń EvaluationMonitor-> wskaźnik, że rysowana funkcja była obliczona

Estetyka Exclusions-usuwanie punktów (asymptot) z dziedziny Style-styl linii wykresu ExclusionStyle->… Styl Asymptot Filling-wypełnianie kolorem obszaru między krzywymi ColorFunction-funkja koloru krzywej (może zależeć od obu współrzędnych) PlotLegends-legenda (nie jest częścią wykresu)

Wykresy jako obiekty Wykres jest w Mathematice grafiką i może być mu przypisana zmienna lub funkcja A:=Plot[f[x],{x,5,20}] B:=Plot[g[y],{y,2,5}] Show[A,B]

Inne rodzaje wykresów ListPlot-wykres listy danych DiscretePlot- Rysuje funkcję ciągłą w równo rozłożonych punktach ParametricPlot-wykres funkcji zadanych parametrycznie. {x[t],y[t]} ContourPlot-wykres funkcji uwikłanej (nie opisanej relacją y=f(x)) PolarPlot-wykres we współrzędnych biegunowych ArrayPlot/ReliefPlot-graficzna wizualizacja macierzy

Wykresy Funkcji dwóch i trzech zmiennych Plot3D-podstaswowy wykres 3D DiscretePlot3D –Wykres 3D dla dyskretnych wartości. ContourPlot-wykres poziomicowy ContourPlot3D-trójwymiarowy wykres poziomicowy (dla ustalonych wartości funkcji) ListPlot3D-wykres na podstawie listy ParametricPlot3D-wykres parametryczny, ListPointPlot3D[#]-Wyświetlenie punktów z listy DensityPlot-podobnie jak CountourPlot DestinyPlot3D-Półprzeźroczysty wykres warstwowy SphericalPlot3D-wykres we współrzędnych sferycznych

Który wykres jest najprzydatniejszy Funkcje (poszukiwanie miejsc zerowych, ekstremów, osobliwości, itp) Plot,Plot3D Badanie ogólnego przebiegu DiscretePlot, DiscretePlot3D Funkcje biegunowe, np. emisja światła, orbity PolarPlot Funkcje sferyczne, np. mapy pogody, kształt orbitali atomowych SphericalPlot 3D Znajdywanie rozwiązań skomplikowanych równań ContourPlot, ContourPlot3D DensityPlot n.p. Mapy Regionów Dane nieciągłe – finansowe, statystyczne ListPlot,ListLinePlot Analiza grafiki ArrayPlot Ruch ParametricPlot, ParametricPlot3D, ListPointPlot3D

Przydatne opcje PlotStyle gromadzi opcje wykresu (kolor, teksturę, przeźroczystość, itp.) ColorFunction->Function[{x,y,z},f[x,y,z]]-przypisuje kolor każdemu punktowi w przestrzeni wykresu (jednowymiarowa-szarości, trójwymiarowa->Kolory rgb) ColorFunctionScaling-skalowanie funkcji kolorów RegionFunction-> -określa region, w którym funkcja jest rysowana (poprzez funkcję logiczną) Texture -nakładanie tekstury na wykres TextureCoordinatesFunction… ViewPoint, ViewAngle, ViewCenter…->Ustawienia kamery

Składanie ze sobą wykresów Niektóre typy wykresów przyjmują jako argumenty listy, i rysują wiele funkcji naraz. Możemy zdefiniować wykresy jako obiekty Graphics, lub Graphics3D Obiekty graficzne możemy pokazywać komendą Show[#1,…] #1 może być listą Zakresy na wykresach są dopasowywane. Nie można łączyć ze sobą obiektów różnych typów Polecenie Show może zmieniać zakres argumentów funkcji na wykresie

Grafika 2D Dwa źródła danych graficznych -generowane w programie -importowane Import[filename,type] Zaimportowana grafika może pełnić dwojaką funkcję: obrazu i tablicy wartości SetDirectory[„C:\\Users\\...”] Directory[]-aktualny katalog

Podstawowe obiekty Disk[…] –podobnie jak Circle, ale z wypełnieniem Grafika składa się z kombinowanych ze sobą obiektów Składnia: Graphics[Styl, Kolor,Obiekt[…], wymiary] Line[{{…},…,{…}]-linia Arrow[{{…},{…}]-strzałka Rectagle[{…},{…}] Polygon[{…}]-wielokąt rozpięty pomiędzy kolejnymi Circle[{x,y},r]-koło środku w punkcie x,y i promieniu r Circle[{x,y},{a,b}]-elipsa o środku w punkcie x,y i osiach a i b Circle[{x,y},{a,b},{e,f}], łuk elipsy rozpięty między kątami e i f Point[{…}] Możliwe jest tworzenie grafiki ręcznie Disk[…] –podobnie jak Circle, ale z wypełnieniem RegularPolygon[n]-n-kąt foremny

Przekształcenia Rotate[…,a]-obrót obiektu (niekoniecznie graficznego) o kąt a Translate[b,{x,y}]-Przesunięcie obiektu graficznego (nie grafiki!) Scale-przeskalowanie obiektu graficznego Magnify[#,s]-powiększanie wyświetlanego obiektu. Inset[s,{x,y}]-wstawianie obiektu (n.p. formuły) do grafiki Text[t,{x,y}]-wstawianie tekstu

Niektóre elementy aktywne Tooltip[#]-przypisuje do obiektu etykietę tymczasową Tooltip[#,”label”] TooltipDelay->t-opóźnienie Mouseover[#1,#2]-wyświetla obiekt #2 zamiast #1 po najechaniu myszką StatusArea[#1]-po najechaniu myszką na obiekt zmieni się status w dolnym lewym rogu

Grafika3D Domyślnie obiekty 3D widzimy pod określonym kątem. Możemy go zmieniać Możemy zdefiniować punkt widzenia kamery, środek obrazu i kąt widzenia-ViewPoint, ViewCenter, ViewAngle Możemy również zmieniać ustawienia światła Lighting->None, „Automatic”, „Spot”, „Ambient”, „Directional”

Elementarne Obiekty Arrow[] Ball[{…}] Ellipsoid[{…}] Cone[{pt1,pt2},r] Cuboid[…] Cylinder[{{x1,y1,z1},{x2,y2,z2},r] Sphere[{x,y,z},r] Tube[…] Polygon Line[{…}] Point[] Text[…]

Przekształcenia geommetryczne grafiki 3D Translate[#,v] przesuwa obiekt o wektor v. Rotate[#,a,v,p] obraca obiekt 3D # o kąta a wzdłuż wektora v względem punktu p GeometricTransformation[#,{m,v}]-przekształcenie każdego punktu objektu # macierzą m, a następnie przesunięcie o wektor v.

Właściwości (głównie) obiektów 3D EdgeForm[{styl,kolor,grubość}] FaceForm[{…}]-format (głównie kolor) ścian. JoinForm[{„Bevel”,”Round”,Miter”}] Capform[{„Butt”,”Round”}] Opacity[r]-przezroczystość Specularity[a,b]- obcicie Światła w stopniu a od powierzchni o gładkości b.

GraphicsComplex[{v},#[n1,n2,…] Zastępuje jeden wiele obiektów graficznym jednym Punkty użyte w obiekcie są zebrane w tablicy w. Do tworzących obiekt punktów odwołujemy się poprzez ich numer porządkowy Zaimportowane objekty 3D mają formę kompleksy graficzne

Objętość Tworząc obiekt 3D warto pamiętać, czy tworzymy obiekt złożony z wielościanów, czy ma objętość. Przykład Sphere-Ball Tube-Cylinder

Granice Limit[f,x->lim,Direction->+/-1] Jeżeli granica nie istnieje w sensie matematyczym, Mathematica może podać ją w postaci przedziału możliwych zakresów (sinus) Jak zawsze, podawane są wyniki prawdziwe w ogólności, pomijając przypadki specjalne (liczby pierwsze)

Pochodne f’[x] D[f,x] D[f,{{x1,x2,…}}]-wektor pochodnych po zmiennych x1,x2,x3 D[f,{x,n}]-pochodna n-tego rzędu D[f,x1,x2]-pochodna po zmiennych x1,x2, NonConstants->…-przyjęcie założenia o wyrażeniach niestałych Dt[f,x]-Różniczka zupełna

Całkowanie -Oznaczone -Nieoznaczone g[x,…]=Integrate[f[x,…],x,…] Integrate[f[x],{x,x0,x1}]=g[x1]-g[ x0]

Całkowanie po obszarach Integrate[f[x],Element[x,region]] Regiony to zbiory Przynależność do zbioru w tym kontekście nie jest funkcją logiczną Alternatywna wersja Integrate[f[x]Boole[g[x],{x,x0,x1}] Różnica prędkośc Podobnie: Sum

Funkcje jako wektory y Normalizacja do Delty Diraca p0 x x0

Przykłady funkcji ortogonalnych {a,b} K(x) F(x) {-1,1} 1 LegendreP[n,x] {-inf,inf} Exp[-x^2] HermiteteH[n,x] {0,2Pi} {1/Sqrt[2Pi], 1/Sqrt[Pi]Sin[nx] {0,inf} x^l Exp[-x] LagurerreL[n,l,x] Sfera SphericalHarmonicY[l,m,theta,phi] Funkcje bazowe pozwalają znaleźć odwzorowanie funkcji prawie ciągłych na nieskończone ciagi.

„Składowe” funkcji Delta Diraca- funkcja uogólniona, czyli funkcjonał Pochodna funkcji schodkowej a całka z delty Diraca

Przybliżenia delty Diraca a UnitBox[a x] a UnitTriangle[a x] Przy przybliżaniu delty Diraca musimy uważać na tempo zbieżności

Pola wektorowe Pola wektorowe przypisują wektory wszystkim punktom w przestrzeni Operator Nabla

Potencjał skalarny siły Właściwości pól wektorowych Źródłowość, dywergencja, mówi nam, czy pole reprezentuje przepływ od źródła do ścieku Rotacja-mówi, czy pole jest wirowe

Potencjał wektorowy Pole opisane potencjałem wektorowym nie może być źródłowe Pole opisane potencjałem skalarnym nie może być wirowe Laplacian Iloczyn pola skalarnego i wektorowego

Transformacje Cechowania Do potencjału skalarnego możemy dodać funkcję liniową, do potencjału wektorowego- pole wirowe. W efekcie otrzymujemy to samno pole.

Zastępowanie całek ds V S dl

Dekompozycja Hermholza Znajdywanie dla danego pola potencjału skalarnego i wektorowego Dowód: Zastosować Laplacian F/r Rozwinąć Laplacian Wyłączyć pierwsze operatory Nabla Zmienić zmienne w różniczkach Skorzystać z rozwinięcia iloczynów pól Zaniedbać całki po powierzchni

Komendy dla pól wektorowych Grad[f[x1,x2,…],{x1,x2,…}]-gradient Div[f,{x1,x2,…}]-dywergencja Curl[f,{x1,x2,x3,…}]-rotacja Laplacian[f,{x1,x2,x3,…}]-Laplaciane Del[x] Symbol Nabli VectorPlot[…]-wykres dwuwymiarowego pola wektorowego VectorPlot3D[…] ListVectorPlot[…] SliceVectorPlot3D[f,s,…]-wykres pola wektorowego na wyznaczonej płaszczyźnie s Opcje StreamPoints-ilość punków linii strumienia StreamScale-grubość linii strumienia VectorStyle

Przekształcenia Funkcji Pokazać różniczkę Przekształcenia Funkcji Funkcje są ze sobą powiązane przez różne tożsamości (n.p. jedynka trygonometryczna) Do poszukiwania tych zależności służy Simplify[expr]. FullSimplify działa podobnie, ale przeszukuje bogatszą kolekcję przekształceń

Upraszcza funkcje: Sumy wielomianów do pewnego stopnia-wymierne wykładnicze funkcje trygonometryczne (opcjonalnie) Funkcje potęgowe, logarytmiczne, … Uwaga: program uprości funkcje „jak mu wygodnie”, a nie jak od niego tego oczekujemy. Np. priorytet przy upraszczaniu mają zmienne na o niskiej wartości leksykologicznej

Opcje ComplexityFunction->k: opcja szuka w wyrażeniu nagłówków i innych obiektów i wybiera kryterium, według którego funkcja jest wskazywana jako najprostsza: LeafCount, ByteCount, StringLength(ToString[…]) TimeConstrains->{tloc,ttot} ogranicza czas na uproszczenie pojedynczych elementów do tloc i całego uproszczenia do ttot Assumptions->…-założenia Trig-> …-przekształcenia trygonometryczne

Factor rozkłada wielomiany na wielomiany nieredukowalne (takie, które nie mają pierwiastków rzeczywistych) (Opcja modulus) Expand-rozwija funkcje (głównie wielomiany) Refine[expr,assm] wprowadza zmiany wynikające z założeń TrigReduce-zamienia funkcję okresową na sumę Fouriera* TrigExpand zamienia funkcję na sumę potęg funkcji trygonometrycznych TrigFactor faktoryzuje wyrażenia trygonometryczne

Interpolacja, ekstrapolacja, aproksymacja Interpolacja-konstrukcja funkcji, która przybiera dokładnie zadane wartości dla danych argumentów w celu przybliżenia wartiości pośredniej. Przykład: Słońce wzeszło o 5:40, o 6:20 było około 15 stopni nad horyzontem, o 6:05 było około 8 st. nad horyzontem. Ekstrapolacja-przewidywanie wartości funkcji na podstawie jej znanych wartości w innym zakresie Przykład: w Gdańsku odległość między stacjami SKM wynosi 1,2 km, więc 13 stacja na linii będzie około 16 km tej linii Aproksymacja: na podstawie znanych wartości prostych funkcji o możliwie zbliżonym przebiegu Przykład: pieniądze na lokacie rosną eksponencjalnie w czasie.

Interpolacja Lagrange’e Każdy wielomian n-tego stopnia możemy zdefiniować poprzen n+1 punktów, przez które on przechodzi Załóżmy, że mamy dane {{x[1],y[1]},{x[2],y[2]},…,{x[n+1],y[n+1]} Wielomiany Lagrange’a Mają wartość 1 dla x==x[i] i 0 dla x==x[j]. By przeprowa-dzić je przez właściwe punkty, sumujemy je z odpowiednimi wagami

Inne możliwe funkcje do zastosowania w interpolacji Trygonometryczne-trudne do wyliczenia Wykładnicze Jeżeli dane są rozłożone równomiernie-Sinc[x]. Funkcje z elementami typu (analiza falkowa)

Interpolacja częściowa Interpolujemy tylko pomiędzy dwoma sąsiednimi punktami, a następnie zszywamy funkcję Hermite’a: -bierzemy n+1 punktów z sąsiedztwa wartości, w której chcemy interpolować, -budujemy wielomian interpolacyjny Lagrange’a n-tego rzędu przez te punkty -stosujemy go tylko w danym przedziale Spline’a -bierzemy n-1 punktów z sąsiedztwa -dokładamy warunki brzegowe. Druga pochodna w punktach początkowym i końcowym ma być równa 0, w pozostałych punktach pierwsza ma być ciągła -wyznaczamy wielomian -zszywamy funkcje w różnych zakresach.

Ostrożnie! Metody interpolacyjne mogą istotnie zniekształcać przebieg funkcji Wielomiany o gęsto rozłożonych pierwiastkach oscylują Powinniśmy mieć pojęcie o funkcji, którą interpolujemy

Komendy interpolacyjne Interpolation[{p1,p2,…}]-przeprowadza funkcję interoplacyjną przez punkty. Jeżeli nie podamy wartości x, zostaną one przyjęte jako 1,2,3,… ListInterpolation[…]- ----------//--------- Method->”Herminite”/”Spline”-wybór metody InterpolationOrder-określenie stopnia interpolacji FunctionInterpolation-różniczkowalna postać funkcji interpolacyjnej InterpolatingFunction-obiekt (funkcja) będąca wynikiem interpolacji InterpolatingPolynomial[{p1,p2},x]-wynik interpolacji Lagrange’a (wielomian)

Aproksymacja Dopasowanie prostego modelu do wielu punktów danych (które nie muszą być ze sobą spójne). Model, który dopasowujemy ma mniej parametrów swobodnych, niż mamy punktów, więc ich wartości wybieramy w sposób statystyczny. Aproksymowana funkcja nie musi przechodzić przez żaden punkt danych. Stosujemy ją tam, gdzie spodziewamy się istotnych niepewności statystycznych. Natomiast interpolacja sprawdza się tam, gdzie spodziewamy się prostych zjawisk i dużej pewności co do wartości.

Regresja liniowa Procedura dopasowania funkcji liniowej y=ax+b do danych R=-1 R=1 R=0 Inne funkcje można próbować zlinearizować

Dopasowanie dynamiczne (nauka maszynowa) Funkcja może mieć skomplikowany przebieg Dopasowujemy tylko dane bliskie względem parametru Kiedy zdobywany nowe dane uzupełniamy ich kolekcję

FindFit[d,f,p,v]-dopasowuje do danych d wartości parametrów , tak żeby opisana nimi funkcja f[v] zmiennych v najlepiej opisywała dane Fit[d,f,x]-dopasowuje funkcje z listy do danych d (zwraca kombinacje liniowe funkcji) LinearModelFit[…]-działa tak, jak Fit, ale zwraca obiekt typu FittedModel, który oprócz funkcji zawiera wiele właściwości. NonlinearModelFit[…] GeneralizedLinearModelFit-dopasowuje dane do prostej funkcji kombinacji liniowej podanych funkcji. Opcje: ConfidenceLevel-określić poziom zaufania do wyników, przez co zmiejsza się zakres stosowalności przybliżenia IncludeConstantBasis-przesuwanie dopasowywanego modelu o stałą-domyślnie: włączone LinearOffsetFunction-funkcja bazowa, na którą nakładamy kombinację Weights-Przypisywanie wagi poszczególnym punktom WorkingPrecision

Ekstrapolacja Oszacowanie wartości funkcji na podstawie jej dotychczasowego przebiegu Na podstawie danych interpolacyjnych Na podstawie aproksymacji UWAGA! Nie ma żadnych sposobów zagwarantowania przyszłości. Musimy dobrze rozumieć co ekstrapolujemy i dlaczego. Możemy ekstrapolować zjawiska astronomiczne i inne niezakłócane procesy fizyczne (n.p. zmiany temperatury), ale nie możemy w dłuższej perspektywie przewidywać zjawisk ekonomicznych, społecznych, zdrowotnych, pogodowych, itp.. Ekstrapolację możemy zastosować zazwyczaj tylko dla danych bliskich danych wejściowych.

Składowe ciągów czasowych Trend to najczęściej stale rosnąca składowa w czasie. Możemy ją usunąć poprzez regresję liniową lub różnicowanie wyrazów Trend Stacjonarność Sezonowość Modele: AR (autoregressive)-następny wyraz jest funkcją n poprzednich wyrazów MA (moving average)-następny wyraz jest funkcją n poprzednich wartości szumu ARMA-kombinacja dwóch powyższych modeli ARIMA-ARMA z trendem SARIMA-sezonowa ARIMA Wielkości charakteryzujące Szeregi czasowe: Autokorelacja-korelacja wartości wyrazu z wartościami porzednimi Średnia ruchoma-średnia m ostatnich wyrazów Sz

Komendy TimeSeriesModelFit[data]-dopasowuje model SARIMA do danych TimeSeriesModel-dopasowany model. ARMAProcess,SARIMAProcess,ARMAProcess,… AutocorrelationTest-oblicza autokorelację (z opóźnieniem) TimeSeriesForecast[tmod,k]-przwiduje wartość modelu dla k-tego kroku po danych serii Każdy model określa zakres możliwych przewidywań.

Równania różniczkowe i całkowe Opisują ciągłe przemiany funkcji Fundamentalne znaczenie dla fizyki Bardzo rzadko rozwiązywalne

Metody numeryczne Metoda Adamsa-Bashfortha Metoda Eulera Metoda Integratorów liniowych

Poprawa wyników przez ekstrapolację Rozwiązujemy równanie numerycznie dla ustalonego kroku Dzielimy krok Rozwiązujemy je z nowym krokiem …. Na podstawie otrzymanych wyników znajdujemy wartość dla dowolnie małego kroku

Kroki rozwiązywania równań różniczkowych Podstawienie warunków brzegowych Uproszczenie równań Dyskretyzacja Przygotowanie punktów nieciągłych …

Rozwiązywanie DSolve[eqn,fun,var] DSolve[eqn,fun,{var,min,max}] Dolve zwraca Funkcję, np. DSolve[y’’[x]+y[x],y[x],x] {y->Function[{x} ,C[1]Exp[x]+C[2]Exp[-x]} Podstawowa opcja: Assumptions

Rozwiązywanie numeryczne NDSolve[eqns,funs,vars]-rozwiązuje numerycznie funkcje funs względem równań eqns. Układ równań mu zawierać co najmniej tyle równań, ile wynosi stopień głównego równania (plus dodatkowe równanie dla każdego wprowadzonego parametru dyskretnego). Dodatkowe równania opisują warunku brzegowe, f[0]==1,f’[2]=12,… Rozwiązaniem jest listą podstawień, n.p. za funkcję f obiektu InterpolatingFunction. Aby skorzystać z tego rozwiązania musimy najpierw podstawić Funkcję Rozwiązanie obowiązuje tylko w przedziale zdefiniowanym w komendzie. Ekstrapolacja jest niedopuszczalna, z powodów o których mówiliśmy wcześniej.

Opcje NDSolve Bez opcji jest równoważne N[Dsolve[…]], o ile są spełnione dostateczne warunki na znalezienie rozwiązania PrecisionGoal, AccuracyGoal… InterpolationOrder-> -określa stopień wielomianu interpolacyjnego MaxStepFraction-> -jaką maksymalnie część przedziału jest pokryta w jednym kroku MaxSteps-> -ilość kroków w rozwiązaniu MaxStepSize-> -wielkość pojedyńczego kroku Method->{s1->m1,…}-kolejność kroków przygotowywania rozwiązywania. Uproszczenie równania, Obsługa nieciągłości, Dyskretyzacja, Warunki brzegowe,…

Zmiany nieliniowe WhenEvent[Condition,Action] Whenevent[x^2+y^2==1,{x’,y’}->{x’,y’}-2({x,y}.{x’,y’}){x,y}]

Równanie całkowe Ogólna Postać Szczególne postaci Fredholma Jeżeli całka w równaniu jest nieoznaczona, możemy zróżniczkować je obustronnie otrzymując równanie różniczkowe Jeżeli całkujemy po zamkniętej krzywej, lub płaszczyźnie, możemy użyć prawa Gaussa lub Biota-Savarta Możemy zdyskretyzować równanie otrzymując równanie macierzowe Dla wielu funkcji K możemy policzyć momenty. Wtedy możemy rozwinąć funkcję podcałkową w Szereg Fouriera

Równanie Liniowe Volterry Szereg Neumanna

Optymalizacja Znajdywanie minimów i maksimów Dopasowywanie modeli do danych (ręczne)

FindMinimum,FindMaximum[f[x,y,…],{x,x0},{y,y0},…]-zaczyna szukać minimum/maksimum w określonym miejscu FindMinimum[{f[x,y],c1},{x,x0},{y,y0}]-szuka minimum pod warunkami c1 FindMinimum[f[x],Element[x,R]]-szuka minimum w zbiorze R FindMinimum[f[x],{x,x0,x1}]-Szuka minimum w przedziale Szukanie min/max od punktu może nas wyprowadzić do nieskoczoności. Szukanie w zbiorze, może trwać długo i skończyć się fiaskiem. Jeżeli funkcja jest ograniczona-najlepiej zacząć w losowym miejscu, a następnie powtórzyć procedurę wiele razy.

Zasada szukania maksimum od punktu Wyliczamy gradient funkcji i przesuwamy współrzędne wzdłuż niego (krzywa geodyzjna) Gradient-> - definicja gradientu funkcji (przyśpiesza obliczenia) Method->”ConjugateGradient”/”PrincipleAxis”-wyszukiwanie wzdłuż osi StepMonitor->Sygnalizator kolejnej iteracji Wynik: lista-wartość funkcji i zbiór podstawień pod argumenty

Maximize[…] znajduje maksimum funkcji Nmaximize[…] znajduje numerycznie maksimum funkcji ArgMax znajduje argument, dla której funkcja przybiera maksymalną wartość MaxValue-maksymalna wartość funkcji

Rozkłady Losowe RandomReal[], RandomInteger[] i RandomComplex[] losują liczby w danym przedziale. RandomSample[lista] zwraca losową permutację listy, a RandomSample[lista,n] zwraca pierwsze pozycji liczb tej permutacji SeedRandom[i]-ustawienie zarodka pseudolosowego RandomVariate[a]-losuje zmienną względem dystrybucji a

Dystrybucje NormalDistribution[a,s]-gaussowska BinomialDistribution[n,p]-rozkład dwumianowy PoissonDistribution[m] … RandomFunction[Proces,{tmin,tmax}]-symulacja procesu losowego RandomVariate[Dystrybucja]-zmienna losowa wg Dystrybucji

Grafy Reprezentują proces decyzyjne, relacje, związki, przepływ danych itp.. Składają się z wierzchołków (Vertex, Vertices) i krawędzi (edges) Krawędź bezkierunkowa [Esc]ue[Esc] Krawędź kierunkowa [Esc]de[Esc]

Graph[{v1”ue”v2,v2”de”v3,…}] Graph[{v1,v2,v3},{v1”ue”v2,…}] Zamiast krawędzi kierunkowej możemy użyć reguły podstawienia Nazwy: Labeled[v1,”Nazwa”],Labeled[e1,”Nazwa”] Graf jest reprezentowany graficznie, jednak jest to osobny rodzaj obiektu Opcje: VertexCoordinates GraphLayout VertexStyle VertexWeight EdgeWeight GraphHighlight-podświetlenie wybranego fragmentu grafu HighlightGraph

FindShortestPath[g,s,f] FindShortestPath[g,s,f]. Znalezienie najkrótszej drogi, pomiędzy dwoma wierzchołkami. Dla jednego z argumentów równego All otrzymujemy obiekt ShortestPathFunction[…] GraphDistance[]-odległość na grafie FindShortestTour[g]-znajduje najkrótszą drogę po grafie przez wszystkie jego wierzchołki (DistanceFunction->) GraphDiameter[g]-odległość pomiędzy dwoma najdalszymi punktami VertexEccentricity[g,s]-najdłuższa odległość z wierzchołka s do dowolnego innego wierzchołka

FindClique[]-znajduje klikę NeighbourhoodGraph[g,…]-otoczenie grafu GraphUnion, VertexAdd,VertexDelete,EdgeAdd,EdgeDelete Niektóre komendy tworzące grafy PathGraph[]-graf liniowy RandomGraph[a,b]-losowy graf CompleteGraph PetersenGraph[a,b]- PolyhedronData[…,”NetGraph”] HyperCubeGraph[…]

Funkcje Interaktywne Intuicyjne prowadzanie danych Ręczna kontrola parametrów Nadzór nad obliczeniami Wizualizacja danych Dodatkowe informacje na wizualizacjach By funkcje interaktywne były dostępne, musi być włączona opcja „Dynamic Update Enabled” w menu Evaluation

Wprowadzanie danych Input[„tekst”,wartość]-Otwiera okienko z instrukcją „tekst” i pobiera wartość z klawiatury InputString[]-wejście będzie interpretowane jako ciąg znaków Dialog-otwierana jest nowa pod sesja, kończona komendą Return[x], która zwraca x. W międzyczasie możemy przeprowadzić podręczne obliczenia Read[j]-wczytanie wartości ze strumienia znaków

Dynamic[x]-wyświetla dynamiczną wartość x Refresh[x]-odśwież wartość x, opcja UpdateInterval DynamicModule-tworzy moduł, w której zmienne są dynamiczne FinishDynamic[] Trigger[Dynamic[x]]-wyzwalacz

Manipulate Tworzy środowisko, w którym mamy zmienną tymczasową, którą możemy ręcznie manipulować. Opcje AppearenceElements->”HideControlButtons”-ukrywa kontrolki, które pojawią się po kliknięciu, „ResetButton”-przywraca oryginalne wartości parametrów, „UpdateButton”-odświeża wartość funkcji ControlType->Slider, VerticalSilder, ,Locator, Slider2D, Setter, RadioButtons, PopupMenu, ColorSelector, InputField ControllerLinking ControlerPath Deployed-odczepia wygenerowany obiekt

Wybór opcji MousePosition[] MouseOver[] „MouseDown” CheckBox[v1,v2] Opener[v1],PaneSelector[{False->…,True->…}] Toogler[x,{x1,x2,…}] OpenerView[…,…] MousePosition[] MouseOver[] „MouseDown” ClickPane[obj,act]-wykonuje akcję act po kliknięciu w obrębie grafiki ‚ LocatorPane[{x,y},img]-pozwala umieścić celownik na obrazie PopupWindow[obj,”Napis”]-okienko wyskakujące po kliknięciu na objekt Hyperlink[]

Button[„Tekst”,Akcja] Tworzy przycisk, który po wciśnięciu przycisku wykonuje akcję AutoAction-> Określa, czy przycisk wymaga kliknięcia, czy jedynie wskazawania Appearance->”DialogBox”, „Palette”, „AbuttingLeft”, „AbuttingRigth” BackgGround Method->”Queued”-ciągłe działanie/”Preemptive” DialogInput tworzy okienko, w którym możemy wyświetlać przyciski i wartości CancelButton zamyka okienko i wycofuje wszystkie zmiany dokonane w okienku DialogReturn-akcja zamykająca okienko i zwracająca wynik

Animacje Animate[exp,{t,t0,t1}]-tworzy animacje Animate[list]-tworzy animacje z elementów listy Export[%,…]-zapis animacji do pliku (AVI)

Dźwięk Beep-alarm SoundNote[C,t,Instrument]-obiekt dźwiękowy o barwie C, o długości t na Instrumencie trzeba użyć Sound Sound-przekształca obiekty dźwiękowe w dźwięk SampledSoundFuction[fun,n,freq]-Dźwięk o z funkcji f(x), dla n pierwszych liczb całkowitych, z częstością próbkowania freq Play[f,{t,t0,t1},SampleRate->…] ListPlay[…]-dźwięk z listy EmitSound[…]-odtwarza dźwięk Speak[expr]-czyta wyrażenie

Pakiet Music` Pakiety zawierają definicje dodatkowych funkcji Pakiety ładujemy poleceniem Needs[„pakiet`”] Centy w muzyce-skala podziałów oktawy na 12 tonów, z których każdy jest 100 centów MusicScale[{c1,c2,…},f1,t]-obiekt dźwiękowy o częstotliwości bazowej f0, kolejnych segmentach f(c1),f(c2),… o łącznej długości t sekund. CentsToHertz, HertzToCents-konwerscja pomiędzy Centami a Hertzami PythagoreanMajor, JustMajor, JustMinor, MeanMajor, MeanMinor, QuarterTone-różne podziały oktawy C0, D0, E0,… CFlat0,…, CSharp0,… -Częstotliwości Nut

Edycja Grafiki Rasterize[x]-zamienia wyświetlany obiekt na rysunek rastrowy Rastersize,ImageResolution,Background ImageCrop[]-odcina jednolity brzeg obrazu. Jeżeli podamy wymiar przycięcia, obraz będzie przycinany względem środka obrazu ImageTrim[img,{pt1,pt2,pt3…}]-wycina prostokątny fragment zawiera wszystkie punkty ImageResize ImageRotate ImageReflect[img,{Top,Bottom,Left,Rigt}->…] ImageCompose[img1,img2,a]->Nakłada img2 na img1 z przeźroczystością a ImageCompose[img1,img2,pt1,pt2,{f0,f1,mode=0,1}]-mieszanie obrazów z wagami 0,1 ImageAssemble składa tablicę obrazów w jeden obraz ImageCollage-tworzy obraz z wielkościami obrazów składowych proporcjonalnymi do ich wag

ImageAdjust[img,{c,b,g},{inmin,inmax},{outin,oumax}]-poprawia kolory ImageAdjust[img,{c,b,g},{inmin,inmax},{outin,oumax}]-poprawia kolory. Najpierw skalujemy rozpiętość kolorów oryginalnego obrazu z 0 (czarny) i 1 (biały) do inmin i inmax, następnie wyjście skalujemy do outmin-outmax następnie przeprowadzamy transformacje kolorów. Jeżeli jedynym argumentem jest img, skala kolorów jest przemnożona tak, by zajmowała 1. ImageMultiply-mnożenie każdego piksela przez wartość liczby lub piksela ColorNegate-odwraca kolory ImageData-przekształcenie obrazu w tabelę liczb ImageLevels-zwraca listę wartości pikseli i częstość ich występowania ImageHistogram-histogram HistogramTransform[img1,img2]-dopasowanie histogramu Inpaint[img,map]-interpolacyjne wypełnianie obrazu w miejscach oznaczonych na binarnej mapie

Lokalne Filtry Blur[img,r]-rozmazuje obraz poprzez uśrednienie pikseli w promieniu r GaussianFilter-rozmazuje obraz, jednak tym razem o wagach decyduje macierz Gaussowska Sharpen-wyostrzenie, operacja „odwrotna” do Blur. GradientFilter[img,r]- bada zmianę odcienia na obrazie i zastepuje wolne zmiany ciemnym kolorem, a szybkie jasnym GradientOrientationFilter[img,r]-zastępuje każdy piksel odcieniem szarości kodującym kąt gradiedntu MeanFilter[img,r],MedianFilter[img,r],MinFilter, MaxFilter, CommonestFilter, EntropyFilter,…

Opening[…]:=Dilation[Erosion[…]] Closing[…]:=Erosion[Dilation] Erosion[img,binmat] zastępuje wartość piksela najniższą wartością w obrębie macierzy Dilation[img,bitmat] zastępuje wartość piksela najwyższą wartością w obrębie macierzy Opening[…]:=Dilation[Erosion[…]] Closing[…]:=Erosion[Dilation] DiskMatrix[] DiamondMatrix[] BoxMatrix[] „Bokeh”

Binarize zamienia kolorowy piksel na piksel czarny lub biały, zależnie od koloru MorphologicalBinarize[img,t1,t2]-najpierw wyszukiwane są piksele o jasności powyżej t2, a następnie przylegające do nich piksele powyżej jasności t1. LocalAdaptiveBinarize[img,r]-binaryzacja zależna od średniej lokalnej w promieniu r ImageFilter[fun,img,r]-dowolny filtr zastosowany w otoczeniu o promieniu r.

Segmentacja ColorQuantize[img,n]-zastąpienie pełnej palety paletą n-kolorową (opcja-Dithering) Colorize-przypisanie kolorów kolejnym liczbom naturalnym, i czarnego liczbom niedodatnim MorphologicalComponents-znajdywanie połączonych ze sobą np. na mapie binarnej ImageForestingComponents-algorytm zaczyna od punktu startowego („pnia drzewa”), a następnie sprawdza, czy sąsiednie piksele są kolorystycznie „połączone” Clustering Components WatherShedComponents-Obraz traktujemy jako mapę. Wyobrażamy sobie, że na przedstawiony teren pada deszcz. Badamy gdzie zbiera się woda i z których obszarów ścieka do zbiorników.

Właściwości składowych obrazów ComponentMeasurements[img,”Prop”]-podaje listę wartości danej własności poszczególnych składowych „Count”-ilość pikseli, „Area”-ważona powierzchnia, „EquivalentDisk”-dysk opdowiadający tej samej powierzchni, „PerimeterCount”-długość obwodu, „Centroid”-współrzędne środka masy elementu, „SemiAxes”-osie najlepiej dopasowanej elipsy, „Orientation”-kąt obrotu najlepiej dopasowanej elipsy, „Ecentricity”-mimośród najlepiej dopasowanej elipsy, „Holes”,…

Usuwanie składowych RemoveBackground DeleteSmallComponents[img,n] DeleteBorderComponents[img] SelectComponents[img,prop,c]-dla każdej składowej obrazu obliczana jest wartość prop, a następnie wybieram składowe, których własność spełnia kryterium c

Znajdowanie szczegółów FindFaces[img]-zwraca współrzędne prostokątów zawierającycgh twarze. ImageKeyPoints[img,prop]-lista punktów kluczowych (punktów maksymalnych w transformacji Różnicy Gaussowskiej) prop: „Position”, „PixelPosition”, „Orientation”, „ContrastSign”,… ImageCorners-znajdywanie rogów na obrazie ImageLines[img,t,d]-znajdywanie linii prostych EdgeDetect[img] CrossingDetect[img] ContourDetect[img]

ImageAlign[img1,{img2,…}-geometryczne dopasowanie rysunków z listy do wzorca img1 ImageCorrespondingPoints[img1,img2]-znajduje punkty, które mogą być uważane za podobne FindGeometricTransform[pts1,pts2]-znajduje przekształcenie geometryczne między zbiorami punktow ImageTransformation->Przekształca obraz wg zdefiniowanej mapy ImagePerspectiveTransformation[img,m] ImageFeatureTrack-śledzenie szczegółów na obrazach MorphologicalGraph[img]. Zastępuje obraz binarny grafem reprezentującym ten obraz. Wierzchołki oznaczają punkty kluczowe obrazu, a waga krawędzi-grubość w danym miejscu

DistanceTransform[Img]-zastępuje białe piksele w obrazie binarnym pikselami o wartości odpowiadającej odległości od czarnego obszaru SkeletonTransform-znajduje punkty, w których są dla lub więcej najbliższe punkty na granicy obszarów InverseDistanceTransform odwraca obie transformacje

CUDA Omówione operacje możemy wykonywać również przy pomocy procesora graficznego (n.p CUDA) Needs[„CUDALink`”] CUDAQ[]-sprawdza dostępność karty CUDA CUDAFunctionLoad[…] CUDAMemoryLoad[…]-wczytuje listę lub obraz do pamięci CUDAMemory[…]-informacja o obiektach w pamięci CUDAMemoryAllocate-Rezerwacja pamięci na daną tabelę CUDAMemoryGet[]-Pobiera objekt z pamięci CUDAMemoryUnload[…]-czyszczenie pamięci UWAGA-karta graficzna przechowuję grafikę, ale nie grafikę3D Podobne operacje można wykonywać na urządzeniach OpenCL

Obrazy 3D Oprócz grafiki 3D źródłem obiektów mogą być obrazy trójwymiarowe. Otrzymujemy importując serię obrazów, składając je w tabelę, a następnie komendą Image3D[] lub Raster3D[] Opcja ImageSize definiuje wielkość obrazu (woksele nie muszą być sześcienne) Na obrazach 3D możemy wykonywać te same operacje, co na zwykłych obrazach Image3DSlices[Img,n,d]-pokazuje n-ty przekrój w wymiarze d (d=n)

Kamery $ImagingDevices-podaje spis kamer podłączonych do komputera $DefaultImagingDevice-podaje nazwę domyślnej kamery $ImagingDevice-ustawienie aktualnej kamery ImageCapture[„CaptureAction”->…]-wyświetla obraz z kamery CurrentImage[]-przechwytuje aktualny obraz

Śledzenie obiektów ImageFeatureTrack[imglist(,n)]-zwraca listę zawierającą dla każdego obrazu z listy współrzędne punktów które zostały uznane za kluczowe. Jeżeli punkt znika, jest oznaczony jako Missing[]. Należy te wpisy usunąć (DeleteMmissing[…]) zinterpretowane w inny sposób

Urządzenia zewnętrznę Devices[]-zwraca listę podłączonych urządzeń FindDevices[] –znajduje urządzenia w systemie DeviceRead[devid]-pobiera daną (sygnał, obraz…) z urządzenia DeviceReadBuffer[devid] DeviceWrite[devid] DeviceExecute[devid]

Pakiety BeginPackage[Nazwa] Funkcja1::usage=„Instrukcja dla funkcji Funkcja1” Obiekt1::usage… . Begin[„Private`”] Funkcja1:=… Obiekt1:= End[] EndPackage[…] Needs[„Pack’”]=<<„Pack’” Save[„…”] DeclarePackage[„nazwa”,{„Pack1”,”Pack2”,…}]-liekroć pojawi się „nazwa” zostaną otwarte pakiety „Pack1”, „Pack2” Remove[…] ContextPath

Message[Funkcja1::argx,a,b]-komunkikat o niewłaściwej ilości argumentów Funkcja2::numb-Argument x powinen być liczbą Funkcja2::nnarg-niewłaściwa wartość liczby /; warunek InitializationCell[]-opcja komórki powodująca jej automatycze wywołanie (ExpressionCell[…,”Input”,…]). Get, Put, PutAppend… Encode[…] DumpSave[file,{expr1,expr2}]

Strumienie Jak we wszystkich językach, możemy wprowadzać i eksportować dane używajac strumieni. Strumień to po prostu ciąg znaków, który wczytujemy i zapisujemy w odpowiedniej kolejności. Otwieranie strumieni: OpenRead[plik]-zwraca obiekt typu stream, z którego możemy pobierać dane… OpenWrite[plik]-zwraca obiekt typu stream, do którego możemy wysyłać dane… Read[stream,type] Write[Stream,type] Streams[] Lista dostępnych strumieni, wraz z identyfikatorami. Close[stream] zamykanie strumienia StreamPosition[str] SetStreamPosition[str,n/0/Infinity]

Read[s,”typ”]-czyta ciąg znaków typu String/Word/Byte/Character/Record/Number/Real/Expression Write[s,expr]-zapisuje wyrażenia do strumienia BinaryRead[…],BinaryWrite[…], WriteLine[],WriteString[], LinkRead, ReadString[]…,Skip,Find, Get[…], czyta cały strumień i uruchamia wszystkie wyrażenia, zwracając ostatnie Put[…]( …>>…) spisuje wyrażenie do pliku PutAppend[…] (…>…)dopisuje wyrażenie do pliku CloudPut[…]/CloudGet[…]

Nazwy plików Directory[]; SetDirectory[…]; ResetDirectory[] $UserDocumentsDirectory-katalog dokumentów DirectoryName[] FileNameJoin[str1,str2]-złożenie np. ścieżki i nazwy pliku w całą nazwę pliku FileNameSetter[f, typ]-wywołuje okienko wyboru pliku/katalogu, możliwe typy to: „Open”, „OpenList”, „Save”, „Directory” FileExistQ[] FileNameSplit, Take, Drop,… FindFile[…]

Analiza Fouriera Redukcja szumów Wydobywanie i filtrowanie informacji Dopasowywanie obrazów ….. FourierTransform[f,t,w],InverseFourierTransform[f,t,w] FourierSeries[f,t,w] Fourier[l],InverseFourier[l] Continuum<->Continuum Odcinek<->Zbiór liczb całkowitych Zbiór Policzalny<-> Zbiór Policzalny „Zasada nieoznaczoności” Transformata Delty Diraca

Analiza Falkowa Tablice, obrazy, obrazy3D, dźwięki,… Podobnie jak analiza Fouriera, służy do eksponowania lub tłumienia drobnych zmian Zamiast funkcji o równym module rozkładamy w bazie funkji dążących do 0

Falka ojciec (phi) i falka matka (psi) HaarWavelet[] DaubechiesWavelet[] BattleLemarieWavelet[], BiorthogonalSplineWavelet[] CDFWavelet[] CoifletWavelet[] MeyerWavelet[] ReverseBiorthogonal- SplineWavelet[] ShannonWavelet[] SymletWavelet[] MexicanHatWavelet[] GaborWavelet[] DGaussianWavelet[] MorletWavelet[] PaulWavelet[]

Analiza falkowa DiscreteWaveletTransform[Object,Wavelet,Order] DiscreteWaveletPacketTransform[Object,Wavelet,Order] StationaryWaveletTransform InverseWaveletTransform Transformacje zwracają obiekt typu DiscreteWaveletData. Jego właściwości to „Image”-wyświetla obrzay falkowe (używany z All), TreeView, EnergyFraction, Padding, Wavelet. Przy argumencie [All, Image, ImageSize->…] dostajemy listę podstawień obrazów za charakterystykę falki

Śledzenie postępów obliczeń Pomaga oszacować czas pozostały do zakończenia procedury PrintTemporary[…] wyświetla napis do wyświetlenia następnego wyniku Monitor[…,var]-wyświetla aktualną wartość wyrażenia (zmiennej) var w trakcje obliczeń. Po wykonaniu zadania wartość znika i nie jest wliczana do wyświetlanego wyniku programu Trace[…]-przedstawia listę wszystkich kroków użytych w upraszczaniu wyraażenia.

Jeżeli chcemy przejrzeć zmianę jakiegoś parametru możemy użyć opcji Monitor, możemy spróbować użyć komendy AppendTo, możemy również użyć konstrukcji Reap[… Sow[…]]. Tworzy ona środowisko, w którym wykonywane są obliczenia, a w określonych momentach zapisywane są chwilowe wartości argumentów Sow[]. Wynikiem (Reap[]) jest para wynik obliczeń-lista zapisanych wartości Zwykle Sow występuje po opcji EvaluateMonitor:>

Ile czasu zajmują obliczenia Timing[…]-podaje czas zużyty przez procesor na wykonanie programu. Nie jest wliczany czas interfejsu, itp. AbsoluteTiming[…]-podaje czas zużyty na przetwarzanie wyrażenia, bez jego uproszczenia (wyniku) RepeatedTiming[…]-sumaryczny czas obliczeń powtórzonych n razy (na przykład w czasie t sekund)

Co robić, by przyspieszyć obliczenia i działanie programu Kiedy można, pracować w trybie numerycznym (N, kropka) Czyścić pamięć podręczną (ClearSystemCache) Usuwać zbędne dane z pamięci (Clear, $MemoryUsed) Restartować jądro programu Nie nadużywać funkcji dynamicznych Nie wyświetlać dużych obiektów Korzystać z wykonanych już obliczeń (Set, nie SetDelayed, Evaluate,…] Stworzyć nowe jądra

Obliczenia równoległe LaunchKernels[]-uruchamia wszystkie utworzone jądra Parallelize-wprowadza obliczenia równoległe. Każde aktywne jądro dostaje część obliczenia do wykonania SetSharedVariable[…]-deklaracja wspólnoty wartości zmiennej SetSharedFunctions[…] ParallelEvaluate[...]-wykonuje polecenia we wszystkich jądrach DistributeDefinitions

ParallelTable-jak Table, ale kolejne elementy macierzy liczone są przez kolejne jądra ParallelMap ParalelCombine[f1,list,f2]-kolejne jądra wykonują obliczenia funkcji f1 na elementach listy, a następnie wyniki są składane funkcją f2 ParallelSubmit[…]Wysyła wyrażenie do następnego wolnego jądra WaitAll[…] czeka, aż zakończą się wszystkie przekształcenia danego procesu WaitNext[] czeka na następne zakończenie

ParallelTry[f,list(,k)]-wykonuje obliczenia z argumentami z listy i zwraca k najszybciej otrzymanych wyników Stosowanie obliczeń równoległych wyłącza możliwość stosowania komendy Monitor

Obliczenia numeryczne Compile[{{x1,t1},….},f] kompiluje funkcję używając kompilatora (np. C). Definiujemy jej argumenty w typach t1,t2,=…_Real,_Integer,_Complex. Opcje CompilationTarget->”WVM”/”C” Parallelization->

Eksport do języków CForm[expr]/FortranForm[expr] przekształca w miarę możliwości wyrażenie na język. Jeżeli nie ma bezpośredniej formy funkcji w bibliotece math.h, możemy zaimportować do programu bibliotekę „…\SystemFiles\IncludeFiles\C\dllexport.h” Możemy wyeksportować kod C, Export[„Code.c”,…]

SymbolicC` CCodeGenerator` CCompilerDriver` Pakiet generujący kod programu w języku C, n.p. CBlock[…]-tworzy programu (fragment zawarty między klamrami) CFunction[type, name, {var1, type1,…},body], tworzy funkcję ToCCodeString[…]-wyświetlenie kodu reprezentowanego przez komendy zawarte w pakiecie CCodeGenerator` CCodeGenerate[f,name]-zapisuje kod C skompilowanej funkcji… CCodeStringGenerate[…]-… CCompilerDriver` CreateExecutable[src,file] CreateLbrary CreateObjectFile

DataSet (v.>10.0) Przydatne funkcje f: Tworzy bazy danych, które możemy analizować Tabele bez opisów: tabele Tabele z opisanymi kolumnami {<|”a”->a1,”b”->b1|>, <|”a”->a2,”c”->b2|>,…} Tabele z opisanymi kolumnami i wierszami <|„1”-><|”a”->a1,”b”->b1|>, <|”a”->a2,”c”->b2|>,…|> Zbiór danych nie muszą być kompletne, wówczas w tabeli pojawi się informacja KeyAbsent Pobieranie kolumn lub wierszy dataset[[All,n]],dataset[[„nazwa1”;;”nazwa2”,All]] dataset[f,…]-aplikacja funkcji f do wybranych kolumn dataset[…,f] dataset[{n->f}],dataset[All,{n->f}]-aplikacja funkcji do kolumny/rzędu z zachowaniem reszty danych Przydatne funkcje f: Count,CountDistinct, Sum, Max, Min, Select, Sort, SortBy, TakeLargestBy[…]

Assocjacje As=<|a1->b1,a2->b2|> Keys[…] Values[…] As[[„key”]],As[„key”] Key[As] Position[…] AppendTo, Delete, Select, KeyExistQ,Lookup KeySort, KeyAdd, KeyTake

Wbudowane bazy danych W większości przypadków bazy wymagają połączenia z internetem ExampleData-zawiera przykładowe dane (tekst, obraz, obraz3D, tekstura, animacja, dźwięk, graf, macierz).

Bazy danych (v.>10.0) Wprowadzenie zapytań- Ctrl-”=„ i tekst jawny, Entity[…] EntityClassList[…] EntityProperties[…]-lista właściwości danego obiektu EntityGroup[{…}]-złożenie obiektów EntityValue[{…}]-wartość właściwości obiektu EntityCopies[…]-pomnożenie własności obiektu przez liczbę kopii EntityIntance[…]-ustawienie parametru charakteryzującego obiekt, n.p. wymiary, datę… WikipediaData[…] Interpreter[…][…] Restricted[…]

ElementData-dane o atomach i pierwiastkach: masa, walencyjność, liczba atomowa, temperatura wrzenia, topnienie, ChemicalData-budowa cząsteczek chemicznych („MoleculePlot”, „MolarMass”) ThermodynamicData-ściśliwość, prędkość dźwięku, gęstość, pojemność cieplna…. PlanetData, MinorPlanetData, PlanetaryMoonData, ConstelationData, SateliteData, DeepSpaceProbeData…

CountryData, CityData, AdministrativeDivisionData, GeoGraphics, GeoIdentify, GeoRegion ValuePlot[{Country1->a1,Country2->a2}] Sunrise, Sunset, SunPosition,… $GeoLocation UnitConversion UnitSimplify[…] FinancialData[„NAME”,{start,end}] DateListPlot HistoricalPeroidData PersonData WordData RandomWord[…] DictionaryLookup[…] …

Kartografia Entity[]-obiekt z bazy danej Wolfram. Podajemy typ i specyfikacje, np. Entity[„City”,{„Gdansk”,”Pomorskie”,”Poland”}] (Ctrl+=) … Here, $GeoLocation

Mapy konturowe w starym stylu CountryData[kraj,”Shape”]-zwraca grafikę wielokąta o kształcie odpowiadającym krajowi. Możemy wydobyć ten wielokąt i wykonać na nim dowolne operacje

Współrzędne geograficzne GeoPosition[{szr,dł}]-szerokość i długość geograficzna, można też podać wysokość. Dodatnie wartości dla północy i wschodu GeoPositionXYZ[{x,y,z}]-położenie geograficzne we współrzędnych katrezjańskich GeoPositionENU[{e,n,u},pt]-zaczynamy w wyznaczonym punkcie, udajmy się e metrów na wschód, n na północ i u w górę GeoDistance GeoDirection Geodisplacement[d,a], GeoDestination[] FromDMS, DMSList, DMSString-konwersja zapisu kątów

(Dynamic)GeoGraphics Wyświetla mapę wskazanej okolicy, bez argumentu wyświetla mapę okolicy, w której jesteśmy (na podstawie adresu IP) Opcje: GeoRange->Quantity[x,”km”],Entity[…] GeoBackground GeoGridLines GeoModel GeoProjection GeoZoomLevel

GeoListPlot[List] Komenda zaznacza na mapie żądane objekty-miasta, obszary administracyjne, wyznaczone przez użytkownika. GeoBackground->”ReliefMap”, ”StreetMap”, ”ContourMap”, ”OutlineMap” GeoProjection->…

GeoListPlot[{Rectangle[{18,54},{19,55}],Rectangle[{16. 5,47. 5},{17

GeoRegionValuePlot ColorFuntion ColorRules GeoLabels MissingStyle PlotMarkers TargetUnits

Inne obiekty do umieszczenia na mapach Point Line Polygon Arrow Disk Circle GeoPath[{pos1-pos2}, type]-ścieżka pomiędzy dwoma punktami na Ziemi („Geodesic”, „Rhumb”, „GreatCircle”] GeoCircle[„Parallel”,…],[„Meridian”,…], „Equator”, „NorthernTropic”,”SouthernTropic”,”Dateline” GeoDisk,GeoCirle GeoBounds DayHemisphere[],NightHemiphere[],DayNightTerminator[] GeoGroup[…]

WorldPlot` WorldPlot[{„Poland”}] WorldPlot[{World,RandomColors},WorldRotation->{90,0,0},WorldRange->{{0,90},{-180,180}},WorldProjection->LambertAzimuthal]

Meteorologia WeatherData[miejsce, właściwość, data] „CloudCoverFraction”, „DewPoint”, „Humidity”, „Pressure”, „SnowDepth”, „Temperature” „WindDirection”, ”WindSpeed”, „Coordinations”, „Elevation” WindSpeedData[],WindVectorData[],WindDirectionData[],AirTemperatureData[],AirPressureData[]

Dokumenty Tworzenie Szablonów: StringTemplate[„ `miejsce` wpisujemy `wyraz`][<|„miejsce”->Tu, „wyraz”->”Treść”] XMLObject[„Declaration”,”Comment”,”Document”,”Doctype”][…] XMLElement[type,{attr->value},{}] XMLTemplate[<wolfram:sequence values=‚#key’> <wolfram:slot id=‚…’/>…</wolfram:sequence>]; TemplateApply[„key”->List]… ExportString[…,”XML”]

TemplateSlot[„nazwa”] TemplateIf[warunek,a,b] TemplateExpression[…] TemplateGet[] TemplateSequence[…\ Sloty: ‚nazwa’, ‚1’, ‚counter’ <wolfram:slot>, <wolfram:expr>, <wolfram:if>, <wolfram:which>, <wolfram:sequence>

Computable Document File Dokumenty, w których możemy stosować formuły interaktywne (wymaga instalacji CDFPlayer) CDFDeploy[„file.cdf”,expr] DocumentNotebook[{TextCell[„Text”,”type”],ExpressionCell[…]}]

Pola Tekstu ToBoxes[expr],MakeBoxes-pezekształcenie wyrażenia na postać pól. RowBox,GridBox SubscriptBox, SuperscriptBox, UnderscriptBox, OverscriptBox,… FractionBox, RadicalBox,… StyleBox, GraphicsBox, AdjustmentBox, ButtonBox…

Dane Finansowe FinancialData[nazwa,{data1,data2}]-przebieg wielkości finansowej (ceny/wolumenu akcji, kursu wymiany, wartości branży,…) między datami „OHLCV”-Open, High, Low, Close, Volume-zbiór danych o kursie otwarcia, zamknięcia, oraz o maksymalnych wachaniach i wielkości emisji DateListPlot[…] CandleStickChart[…]-wykres słupkowy z wahaniami. Słupki są czerwone przy spadku, słupki zielone przy wzrostach TrandingChart[…]-interaktywna wersja wykresu CandleStick, z wykresem wielkości emisji InteractiveTradingChart[…]-TradingChart z interaktywną regulacją okresu KagiChart[…,rt]-rysuje zmiany ceny powyżej zmiany rt: {„Relative”,…},{„Percent”,…},{„Absolute”,…} -RenkoChart[…]-rysuje wykres z bloków o stałej wysokości PointFigureChart[...]

PieChart[{a,b,…}]-wykres kołowy PieChart[{a,b,…}]-wykres kołowy. Koło podzielone jest na części proporcjonalne do stosunku danej liczby do sumy. Jeżeli podamy kilka list , dostajemy współśrodkowe pierścienie. SectorOrigins->{a,r}, obrót początku pierwszego sektora o kąt a, i promień wewnętrznego okręgu r. Pierścień wykresu ma grubość 1. ChartLabels->, ChartLegends->, ColorFunction-> SectorSpacing->…

Pozostałe wykresy PieChart3D SectorChart, SectorChart3d BarChart,BarChart3D PairBarChart RectagleChart (ChartElement->) Histogram[…],Histogram3D[…]

Przepływ w grafach Pozwala określić jak popłynie zasób (woda, prąd, ludność,…) po grafie Źródła i ścieki mogą być pojedynczymi wierzchołkami, lub ich zbiorami Możemy określić również minimalny koszt transportu w sieci. Działa dla grafów kierunkowych i bezkierunkowych

Własności określające koszty i przepływ grafów EdgeCost->… Cena z przepływ przez krawędź grafów EdgeCapacity-> Zdolność krawędzi do przyjęcia maksymalnego przepływu VertexCapacity->Zdolność wierzchołka do przyjęcia maksymalnego przepływu. Np. Średnica i wytrzymałość rur, limity i koszty przelewów bankowych, modele ruchu drogowego.

FindMaximumFlow[g,s,t]-znajduje maksymalny przepływ pomiędzy wskazamymi wierzchołkami FindMinimumCostFlow-znajduje przepływ o minimalnym koszcie. Graf może być określony przez macierz określającą zdolność/koszt krawędzi […,”OptimalFlowModel”]-tworzy obietk OptimalFlowData, który możemy wywołać z następującymi argumentami „EdgeList” „VertexList” „FlowValue” „FlowMatrix” „FlowGraph”

Ciągi czasowe Zbiór wartości pewnej wielkości opisanych względem czasu AbsoluteTime[…]->Liczba sekund od 1 stycznia 1900, domyślnie bez korekty strefy czasowej TimeSeries[{v1,v2,…},{{t1},{t2},…}],TemporalData[{{{t11,v11},{t21,v21},…},…}]-ciąg danych Metadata->, MisingDataMethod->… EventSeries[]-podobnie jak TimeSeries, ale bez interpolacji.

TimeSeriesWindow[ts,{t1,t2}]-wycina okres serii czasowej TimeSeriesInsert[ts,event] …Shift[ts,dt] …Resample[ts,d] –uzupełnia brakujące dane do kroku czasowego d Map[f,ts] MapThread[…] MovingMap[f,ts,window]-ciąg wartości funkcj w przedziałach o danej szerokości. MovingMedian,MovingAverage Differences,Accumulate TimeSeriesModelFit[…] TimeSeriesForecast[…]

Procesy Markowskie Procesy stochastyczne bez pamięci. Zaczynamy w określonym stanie. Dla każdego stanu jest określony rozkład prawdopodobieństwa przejścia do innych stanów, zależny tylko od aktualnego stanu

Procesy DiscreteMarkovProcess[p0,m0] ContinousMarkovProcess[p0,m0] RandomFunction[…,{tmin,tmax}] MarkovProcessProperties[proc,…] -”CommunicatingClasses”-stany przejściowe -”RecurrentClasses”-stany i ich grupy, z których nie można wyjść -”TransientClasses”-stany z których można wyjść -”AbsorbingStates” -”HoldingTimeMean”, „HoldingMeanVariance” -”PeriodicClasses”, -”Periods”

Rodzaje wartości OwnValues-wartości przypisane wprost do symbolu, np. c=5, d:=8 DownValues-wartości przypisane z dołu, przez wartość argumentu, np. c[1]=3,d[x_]=x^2/2 UpValues-wartości przypisane z góry, przez nagłówek, np/. d/:Superscript[d,2]=4, d/:f[d]:=d^2+3 SubValues-wartości przypisane do zmiennej przez wielokorotne indeksowanie, np. d[1][2]=3 DefaultValues NValues FormatValues Nie możemy tworzyć definicji mieszających ze sobą typy wartości

Automaty komórkowe Zbiór komórek o kilku stanach. Stan każdej z nich na danym etapie może zależeć od stanów komórek w sąsiedztwie w poprzednim etapie CellularAutomaton[{rule,state0,steps}] Reguły możemy ponumerować Rule N, {n,k}, {n,k,r}, {n,k,{r1,r2,…}}, {a1->b1,a2->b2},… State0 {{1},0},{{1,1},0},Matrix.. Steps S,{s},…

Maszyny Turinga Pierwszy model komputera. Zbudowany jest on z głowicy, która posiada jeden z kilku stanów i ruchomej taśmy złożonej z komórek które również mogą być w kilku stanach. Po odczytaniu komórki głowica zmienia jej stan, swój stan i położenie taśmy. Maszyny Turinga również można ponumerować. TuringMachine[rule,state0,steps] rule: {{h1,t1}-{h2,t2,o}}, {n,s,k}…