Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałRoman Mazurkiewicz Został zmieniony 5 lat temu
1
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
2
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}]
3
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]
4
Read[s,”typ”]-czyta ciąg znaków typu String/Word/Byte/Character/Record/Number/Real/Ex pression
Write[s,expr]-zapisuje wyrażenia do strumienia BinaryRead[…],BinaryWrite[…], WriteLine[],WriteString[], 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[…]
5
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[…]
6
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
7
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
8
Falka ojciec (phi) i falka matka (psi)
HaarWavelet[] DaubechiesWavelet[] BattleLemarieWavelet[], BiorthogonalSplineWavelet[] CDFWavelet[] CoifletWavelet[] MeyerWavelet[] ReverseBiorthogonal- SplineWavelet[] ShannonWavelet[] SymletWavelet[] MexicanHatWavelet[] GaborWavelet[] DGaussianWavelet[] MorletWavelet[] PaulWavelet[]
9
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
10
Ś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.
11
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:>
12
Ile czasu zajmują obliczenia
Timing[…]-podaje czas zużyty przez procesor na wykonanie programu. Nie jest wliczany czas interfejsu, itp. AbsoluteTiming[…] RepeatedTiming[…]-sumaryczny czas obliczeń powtórzonych n razy (na przykład w czasie t sekund)
13
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
14
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ólnej wartości zmiennej SetSharedFunctions[…] ParallelEvaluate[...]-wykonuje polecenia we wszystkich jądrach DistributeDefinitions
15
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
16
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
17
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->
18
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”,…]
19
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
20
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[…]
21
Assocjacje As=<|a1->b1,a2->b2|> Keys[…] Values[…]
As[[„key”]],As[„key”] Key[As] Position[…] AppendTo, Delete, Select, KeyExistQ,Lookup KeySort, KeyAdd, KeyTake
22
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).
23
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”]
24
TemplateSlot[„nazwa”]
TemplateIf[warunek,a,b] TemplateExpression[…] TemplateGet[] TemplateSequence[…\ Sloty: ‚nazwa’, ‚1’, ‚counter’ <wolfram:slot>, <wolfram:expr>, <wolfram:if>, <wolfram:which>, <wolfram:sequence>
25
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[…]}]
26
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…
27
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
28
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},…
29
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.