Techniki komputerowe
w 
robotyce

dr inz. Robert Muszynski   p. 331C3
e-mail: mucha@pwr.edu.pl

Literatura:
	G. Drwal, R. Grzymowski, A. Kapusta, D. Słota "Mathematica dla każdego", Wyd. Pracowni Komputerowej Jacka Skalmierskiego, Gliwice 1996.
	S. Wolfram "The Mathematica Book" Third Edition, Mathematica version 3, Wolfram Media, Cambridge University Press, 1996.
	T.B. Bahder "Mathematica for Scientists and Engineers", Addison-Wesley Publishing Company, 1995.
	strona domowa:   http://www.wolfram.com/

Uruchomienie Mathematici

Interfejs typu Notebook

Uruchomienie: wydanie polecenia mathematica  w linii komend lub zaznaczenie myszka ikony Mathematici
Obliczenia: wpisanie wyrazenia do obliczenia i nacisniecie klawiszy Shift+Return
Wyjscie: Wybranie pola Quit z menu File lub nacisniecie klawiszy Mod1+q

Interfejs tekstowy

Uruchomienie: wydanie polecenia math w linii komend
Obliczenia: wpisanie wyrazenia do obliczenia i nacisniecie klawisza Return
Wyjscie: Wpisanie polecenia Quit

Mozliwosci Mathematici

Mathematica jako kalkulator

6^20

6^200

(6^200)

Eigenvalues[(({{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}))]

Solve[(Sqrt[x])+a==2x,x]

∫(Sqrt[x])(Sqrt[a+x])\[DifferentialD]x

Plot[Sin[x]+Sin[1.6x],{x,0,40}]

Plot3D[Sin[x y],{x,-4,4},{y,-4,4}]

Plot3D[Sin[x+Sin[3 y]],{x,-3,3},{y,-3,3},PlotPoints->30]

Show[%,%%]

Ogromna moc obliczeniowa

ListPlot[Abs[Eigenvalues[m]]]

N[1000!]

N[π,500]

Factor[(x^99)+(y^99)]

Simplify[%]

Dostep do najnowszych osiagniec matematyki

FindRoot[Cos[x]==x+Log[x],{x,1}]

NIntegrate[Log[x+Sin[x]],{x,0,2}]

NSolve[x^5-6x^3+8x+1==0,x]

FactorInteger[2^105-1]

m=Table[2^i + x^j,{i,3},{j,4}]

MatrixForm[m]

NullSpace[m]

Mozliwosc rozwiazywania rownan rozniczkowych

wynik=NDSolve[{x''[t]+x[t]^3==Sin[t],x[0]==x'[0]==0},
									x,{t,0,50}]

Plot[x[t]/.wynik,{t,0,50}]

ParametricPlot[Evaluate[{x[t],x'[t]}/.wynik],{t,0,50}]

Mathematica sporo wie o matematyce

∫(Sqrt[x]) ArcTan[x]\[DifferentialD]x

(∫_0^∞)Log[x] Exp[-(x^3)]\[DifferentialD]x

(∫_0^∞)Sin[(x^2)] Exp[-x]\[DifferentialD]x

(∑_(k=1)^n)(1/(k^6))

DSolve[y''[x]+y'[x]+x y[x]==0,y[x],x]

Log[2]<Zeta[3]<(Sqrt[2])

TrigReduce[((Cos[x])^4)]

Prime[(10^9)]

Mathematica pozwala na przetwarzanie danych dostepnych w roznych formatach

ListDensityPlot[data,Mesh->False,FrameTicks->None]

ListDensityPlot[Exp[(Sqrt[data])],Mesh->False,FrameTicks->None,ColorFunction->Hue]

ListContourPlot[data,ContourShading->False,Contours->6,FrameTicks->None]

ListDensityPlot[Re[InverseFourier[MapIndexed[If[Max[#2]<60,#1,0]&,Fourier[data],{2}]]],Mesh->False,FrameTicks->None]

ListPlot[Sort[Flatten[data]]]

ListPlot3D[data,ColorFunction->Hue,Mesh->False,ViewPoint->{0.2`,-2,5}]

ListDensityPlot[Cos[2 Pi data/255],Mesh->False,FrameTicks->None,ColorFunction->RGBColor]

ListDensityPlot[Sin[16 Pi data/255],Mesh->False,FrameTicks->None,ColorFunction->RGBColor]

ListContourPlot[data,ContourShading->False,Contours->6,FrameTicks->None]

lena=ExampleData[{"TestImage","Lena"}]

data=ImageData[lena,Interleaving-> False,DataReversed->True][[2]];

ExampleData[{"AerialImage","Pentagon"}]

Mathematica pozwala na prace z roznego rodzaju danymi

Take[data,40]

Select[data,(#==StringReverse[#] && StringLength[#]>2)&]

Table[Count[wordLengths,i],{i,Max[wordLengths]}]

ListPlot[%,PlotStyle->PointSize[0.02`]]

Mathematica dostarcza efektywnych sposobow wizualizacji

ParametricPlot3D[{u Cos[u] (4+Cos[v+u]),u Sin[u] (4+Cos[v+u]),u Sin[v+u]},{u,0,4 π},{v,0,2 π},PlotPoints->{60,12}]

Show[%,PlotRange->{-10,0},FaceGrids->All,BoxRatios->{1,1,.5},FaceGrids->{{0,0,-1},{0,-1,0},{1,0,0}},ViewPoint->{-1,3,2},Ticks->None,AxesLabel->{(Subscript[α, 1]),(Subscript[β, 1]),(Subscript[γ, 1])}]

Take[%,5]

Show[Graphics3D[gr]]

Animate[Plot3D[Sin[2 x] Sin[2 y] Cos[t],{x,0,π},{y,0,π},PlotRange->{-1,1},BoxRatios->{1,1,1},Ticks->None],{t,0,π,(π/12)},AnimationRunning->False]

Manipulate[Plot[{Sin[a x],Cos[2 a x],Sin[x/a]},{x,0,2Pi}],{a,1,3}]

Play[Sin[((π t)/2)] (∑_(ν=0)^24)If[(ν/12)<t<(ν/12)+(1/4),(1/24) (E^(-(1/36) (((3+2 ν-24 t))^2))) ν Sin[1625 ν t-13000 t],0],{t,0,2},PlayRange->All]

Graphics[Mouseover[Disk[],{Red,Disk[]}]]

Framed[Graphics[Disk[Dynamic[MousePosition["Graphics",{0,0}]]],PlotRange->2]]

Jednolity sposob zapisu wyrazen w Mathematice

Wszystkie operacje w Mathematice to nic innego jak przeksztalcenia wyrazen symbolicznych w jednolity sposob

{a,b,c,d}/.b->1+x

{a+b,c+d,a+c}/.x_+y_->(x^2)+(y^2)

{a+b,c+d,a+c}/.a+x_->(x^3)

f[6]+f[a+b]+f[0]

Mathematica jako jezyk programowania

Programowanie proceduralne

z=a;
Do[Print[z*=z+i],{i,3}]

Programowanie symboliczne

1+(({a,b,c})^2)

Table[(i^j),{i,4},{j,i}]

Flatten[%]

Partition[%,2]

Programowanie funkcyjne

NestList[f,x,4]

NestList[(((1+#))^2) &,x,3]

Programowanie regulowe

p[a+b+c]

s[{1,2,3,4,5,6},4]

Programowanie obiektowe

h[a]+h[b]+f[h[r]]+h[h[x]]

Mathematica jako narzedzie w roznorodnych dziedzinach

Kombinatoryka

<<"Combinatorica`"

ShowGraph[LineGraph[LineGraph[CirculantGraph[5,Range[1,3]]]]]

Optyka

DrawSystem[{
	ConeOfRays[10,NumberOfRays->10],
	Move[PlanoConvexLens[100,50,10,{100,0,0}],
	Move[PlanoConvexCylindricalLens[100, {50, 50},10], {130,0,0}],
	Move[BeamSplitter[{50,50},{50,50},10], {180,0,45}],
	Boundary[{-100,-100,-100},{250,100,200}]}];

Geografia

<<"WorldPlot`"

WorldPlot[World,WorldProjection->N[{(1/2) #2 (Abs[Sin[((#1 °)/60)]]+1),#1}&],WorldBackground->Hue[0.5`]]

(* od 10.0 *)
GeoGraphics[GeoRange->"World",GeoProjection->"Robinson"]

GeoGraphics[GeoRange->"World",GeoProjection->"Mercator"]

With[{locations={GeoPosition[{51,17}],GeoPosition[{65,180}]}},GeoGraphics[{{Blue,GeoPath[locations,"Geodesic"]}},GeoRange->"World",GeoProjection->"Robinson"]]

?GeoGraphics

https://www.wolfram.com/language/gallery/plan-a-city-tour/

Inne

CountryData["Poland","Population"]

CountryData["Poland","GDP"]

DateListPlot[CountryData["Poland",{{"GDP"},{1970,2015}}]]

ListLogPlot[Reverse[Sort[CountryData[#,"Population"]&/@CountryData[]]]]

Import["./beethoven.gif"]

Import["./suspension.gif"]

(* Bifurkacja *)
logistic[n_Integer] :=
		Module[ {f, t, x},
			f = Compile[{x, t}, Evaluate[(3 +t/n) x (1 - x)]];
			FoldList[f, 0.223, Range[n]]
		]

ListPlot[logistic[8000]]

ListPlay[logistic[8000], SampleRate -> 2000]