Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Pakiety Matematyczne dla Informatyków
Wykład 1
2
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.
3
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 $ , Układy scalone 1958), Sinclair, Apple, Comodore, …
4
Komputery jako maszyny obliczeniowe
Analogowe -Dumaresq (1902-komputer nawigacyjny) -AKAT 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
5
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
6
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
7
Struktura Programu ~5.5 GB Jądro Interface Pakiety
8
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
9
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)
11
Mathematica 10-interfejs
12
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
13
Prosta algebra Nagłówki Przywołanie funkcji: Wprost:f[x] Przed wyrażeniem Po wyrażeniu //f[#]& Przełączanie katalogów Import i eksport danych
14
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)
15
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
16
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[#]
17
Równania kwadratowe W ciele liczb zespolonych liczba pierwiastków wielomianu odpowiada jego stopniowi Wilelomiany o współczynnikach zespolonych mają pierwiastki parami sprzężone
18
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
19
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ą
20
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
21
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
22
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!)
23
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
24
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
25
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
26
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
27
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
28
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]]
29
Rozkład Schmidta dla tensorów wyższej rangi
30
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
31
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
32
Funkcje Macierzy MatrixPower MatrixExp MatrixLog MatrixFunction
Eigensystem SingularDecomposition
33
Miary i wielkości charakteryzujące macierze
Ślad Macierzy: nie zależy od wybranej bazy Ranga Macierzy: „Obwód”, Permament…
34
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
35
Rozwiązywanie układów równań
Metody rozwiązywania układów równań Kombinacja kolumn Kombinacja wierszy Triangularyzacja macierzy Macierz odwrotna
36
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
37
Definiowanie Funkcji Y:=x^2+Sin[x] Function[x,f[x]]
F[x_]:=5x+Sin[x]-Exp[x] ?
38
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
39
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.
40
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ść
41
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…
42
Funkcje zszywane Funkcje, które definiujemy przez podanie ich postaci na fragmentach dziedziny. f1 f2 f f4 f f6 f7 f 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.
43
Metoda 1 –funkcje warunkowe
44
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
45
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
46
przydatne działania macierzowe
MatrixPower[A,m]-potęga macierzy MatrixExp[A]-wykładnik MatrixLog[A]-logarytm MatrixFunction[F[#]&,A]-dowolna funkcja macierzy
47
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)
49
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
50
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
51
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
52
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
53
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]
54
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}]
55
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
56
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
57
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)
58
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]
59
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
60
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
61
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
62
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
63
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
64
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
65
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
66
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
67
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
68
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”
69
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[…]
70
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.
71
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.
72
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
73
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
74
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)
75
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
76
Całkowanie -Oznaczone -Nieoznaczone g[x,…]=Integrate[f[x,…],x,…]
Integrate[f[x],{x,x0,x1}]=g[x1]-g[ x0]
77
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
78
Funkcje jako wektory y Normalizacja do Delty Diraca p0 x x0
79
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.
80
„Składowe” funkcji Delta Diraca- funkcja uogólniona, czyli funkcjonał
Pochodna funkcji schodkowej a całka z delty Diraca
81
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
82
Pola wektorowe Pola wektorowe przypisują wektory wszystkim punktom w przestrzeni Operator Nabla
83
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
84
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
85
Transformacje Cechowania
Do potencjału skalarnego możemy dodać funkcję liniową, do potencjału wektorowego- pole wirowe. W efekcie otrzymujemy to samno pole.
86
Zastępowanie całek ds V S dl
87
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
88
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
89
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ń
91
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
92
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
93
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
94
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.
95
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
97
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)
98
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.
99
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
100
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)
101
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.
102
Regresja liniowa Procedura dopasowania funkcji liniowej y=ax+b do danych R=-1 R=1 R=0 Inne funkcje można próbować zlinearizować
103
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ę
104
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
105
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.
106
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
107
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ń.
108
Równania różniczkowe i całkowe
Opisują ciągłe przemiany funkcji Fundamentalne znaczenie dla fizyki Bardzo rzadko rozwiązywalne
109
Metody numeryczne Metoda Adamsa-Bashfortha Metoda Eulera
Metoda Integratorów liniowych
110
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
111
Kroki rozwiązywania równań różniczkowych
Podstawienie warunków brzegowych Uproszczenie równań Dyskretyzacja Przygotowanie punktów nieciągłych …
112
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
113
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.
114
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,…
115
Zmiany nieliniowe WhenEvent[Condition,Action] Whenevent[x^2+y^2==1,{x’,y’}->{x’,y’}-2({x,y}.{x’,y’}){x,y}]
116
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
117
Równanie Liniowe Volterry
Szereg Neumanna
118
Optymalizacja Znajdywanie minimów i maksimów
Dopasowywanie modeli do danych (ręczne)
119
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.
120
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
121
Maximize[…] znajduje maksimum funkcji
Nmaximize[…] znajduje numerycznie maksimum funkcji ArgMax znajduje argument, dla której funkcja przybiera maksymalną wartość MaxValue-maksymalna wartość funkcji
122
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
123
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
124
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]
125
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
126
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
127
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[…]
128
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
129
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
130
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
131
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
132
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[]
133
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
134
Animacje Animate[exp,{t,t0,t1}]-tworzy animacje
Animate[list]-tworzy animacje z elementów listy Export[%,…]-zapis animacji do pliku (AVI)
135
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
136
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
137
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
138
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
139
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,…
140
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”
141
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.
142
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.
144
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”,…
145
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
146
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]
147
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
148
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
149
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
150
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)
151
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
152
Ś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
153
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]
154
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
155
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}]
156
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]
157
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[…]
158
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[…]
159
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
160
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
161
Falka ojciec (phi) i falka matka (psi)
HaarWavelet[] DaubechiesWavelet[] BattleLemarieWavelet[], BiorthogonalSplineWavelet[] CDFWavelet[] CoifletWavelet[] MeyerWavelet[] ReverseBiorthogonal- SplineWavelet[] ShannonWavelet[] SymletWavelet[] MexicanHatWavelet[] GaborWavelet[] DGaussianWavelet[] MorletWavelet[] PaulWavelet[]
162
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
163
Ś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.
164
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:>
165
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)
166
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
167
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
168
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
169
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
170
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->
171
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”,…]
172
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
173
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[…]
174
Assocjacje As=<|a1->b1,a2->b2|> Keys[…] Values[…]
As[[„key”]],As[„key”] Key[As] Position[…] AppendTo, Delete, Select, KeyExistQ,Lookup KeySort, KeyAdd, KeyTake
175
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).
176
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[…]
177
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…
178
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[…] …
179
Kartografia Entity[]-obiekt z bazy danej Wolfram. Podajemy typ i specyfikacje, np. Entity[„City”,{„Gdansk”,”Pomorskie”,”Poland”}] (Ctrl+=) … Here, $GeoLocation
180
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
181
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
182
(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
184
GeoListPlot[List] Komenda zaznacza na mapie żądane objekty-miasta, obszary administracyjne, wyznaczone przez użytkownika. GeoBackground->”ReliefMap”, ”StreetMap”, ”ContourMap”, ”OutlineMap” GeoProjection->…
188
GeoListPlot[{Rectangle[{18,54},{19,55}],Rectangle[{16. 5,47. 5},{17
190
GeoRegionValuePlot ColorFuntion ColorRules GeoLabels MissingStyle
PlotMarkers TargetUnits
191
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[…]
192
WorldPlot` WorldPlot[{„Poland”}]
WorldPlot[{World,RandomColors},WorldRotation->{90,0,0},WorldRange->{{0,90},{-180,180}},WorldProjection->LambertAzimuthal]
193
Meteorologia WeatherData[miejsce, właściwość, data]
„CloudCoverFraction”, „DewPoint”, „Humidity”, „Pressure”, „SnowDepth”, „Temperature” „WindDirection”, ”WindSpeed”, „Coordinations”, „Elevation” WindSpeedData[],WindVectorData[],WindDirectionData[],AirTemperatureData[],AirPressureData[]
194
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”]
195
TemplateSlot[„nazwa”]
TemplateIf[warunek,a,b] TemplateExpression[…] TemplateGet[] TemplateSequence[…\ Sloty: ‚nazwa’, ‚1’, ‚counter’ <wolfram:slot>, <wolfram:expr>, <wolfram:if>, <wolfram:which>, <wolfram:sequence>
196
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[…]}]
197
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…
198
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[...]
199
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->…
200
Pozostałe wykresy PieChart3D SectorChart, SectorChart3d
BarChart,BarChart3D PairBarChart RectagleChart (ChartElement->) Histogram[…],Histogram3D[…]
201
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
202
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.
203
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”
204
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.
205
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[…]
206
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
207
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”
208
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
209
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},…
210
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}…
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.