Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Pakiety Matematyczne dla Informatyków

Podobne prezentacje


Prezentacja na temat: "Pakiety Matematyczne dla Informatyków"— Zapis prezentacji:

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)

10

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)

48

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ń

90

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

96

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.

143

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

183

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

185

186

187

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

189

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}…


Pobierz ppt "Pakiety Matematyczne dla Informatyków"

Podobne prezentacje


Reklamy Google