Základy práce se systémem Mathematica

Zdeněk Buk

Katedra počítačů, FEL, ČVUT v Praze
bukz1@fel.cvut.cz
http://cig.felk.cvut.cz

ELKAN, spol. s r.o.

Certifikovaný distributor produktů Wolfram Research Inc.
vzak@elkan.cz
http://www.mathematica.cz

Osnova   Jednotlivá témata

Opakování

Numerické výpočty

Symbolické výpočty

Definice vlastních funkcí

Vizualizace funkcí

Kreslení grafů

3D grafy

Nastavení grafů, vzhled

Manipulátory

Interaktivita a Manipulátory

Data

Import a export datových souborů

Zpracování

Vizualizace

Grafika   3D grafy

Plot[(x^2),{x,-1,1}]

Plot3D[(x^2),{x,-1,1},{y,-1,1}]

Plot3D[(x^2)+Sin[(x^2)+(y^2)],{x,-2,2},{y,-2,2}]

ContourPlot[(x^2)+Sin[(x^2)+(y^2)],{x,-2,2},{y,-2,2}]

ParametricPlot3D[{Sin[u],Cos[u],u/10},{u,0,20}]

[[]][[]][[]]

{a,b,c,d}[[3]]

{a,b,c,d}[[3]]

[[

N[Pi]

N[π]

N[Exp[1]]

N[E]

N[E]

2.71828[3]

Exp[x]

(E^x)

αβσΠΣ

ParametricPlot3D[{Sin[u]Sin[v],Cos[u]Sin[v],Cos[v]},{u,-π,π},{v,-π,π}]

Grafika   Nastavení zobrazení/grafů

f[x_]:=Sin[20x]*Sin[x]+Sin[2x]

Plot[f[x],{x,0,2π}]

->

->

Plot[f[x],{x,0,2π},PlotStyle->Thick]

Plot[f[x],{x,0,2π},PlotStyle->Thickness[0.015]]

Plot[f[x],{x,0,2π},PlotStyle->{Thick,Green}]

Plot[f[x],{x,0,2π},
PlotStyle->{
Thick,Green,Dashing[0.01]
}
]

Plot[f[x],{x,0,2π},PlotStyle->{Thick,Red,Dashing[{0.03,0.02}]}]

Ctrl+K

Plot[f[x],{x,0,2π},PlotStyle->Thick,AxesLabel->{"x","f(x)"}]

Plot[f[x],{x,0,2π},PlotStyle->Thick,
AxesLabel->{
Style["x",Red,Bold,Italic,25,FontFamily->"Arial"],
Style["f(x)",Bold,25]
}
]

Ticks

Plot[f[x],{x,-π,π},PlotStyle->Thick,
PlotLabel->Style["Popis grafu...",Italic,25,Red],
Ticks->{Automatic,{-1,0,0.5,1}},
AxesOrigin->{0,0},PlotRange->{{-5,5},{-2,2}}]

Plot[f[x],{x,-π,π},PlotStyle->Thick,AspectRatio->Automatic]

Plot[f[x],{x,-π,π},PlotStyle->Thick,AspectRatio->1]

Plot[f[x],{x,0,2π},PlotStyle->Thick,TicksStyle->Directive[Bold,Orange,16]]

Plot[f[x],{x,0,2π},PlotStyle->Thick,Filling->Axis]

Plot[{f[x],Sin[x],Cos[x]},{x,0,2π},PlotStyle->Thick,Filling->{1->{3},2->Axis}]

Plot[{f[x],Sin[x],Cos[x]},{x,0,2π},PlotStyle->Thick,Filling->{1->{3}}]

Expand[(x+y)^4]

f[x_,y_]:=(x^4)+4 (x^3) y+6 (x^2) (y^2)+4 x (y^3)+(y^4)

Plot3D[f[x,y],{x,-2,2},{y,-2,2},PlotRange->All]

Plot[{f[x],Sin[x]},{x,0,2π},PlotStyle->Thick,Filling->{1->{2},2->Axis}]

Plot[{f[x]},{x,0,2π},PlotStyle->Thick,Filling->Axis,FillingStyle->Orange]

Plot[{f[x]},{x,0,2π},PlotStyle->Thick,Filling->Axis,FillingStyle->Orange,GridLines->Automatic]

Plot[{f[x]},{x,0,2π},PlotStyle->Thick,GridLines->{{(π/2),π,(3/2)π,2π},Automatic},Frame->True]

Manipulátory   Interaktivita

Plot[Sin[x],{x,0,2π}]

Manipulate[Plot[Sin[a x],{x,0,2π}],{a,1,20}]

Manipulate[Plot[Sin[a x+b],{x,0,2π}],{a,1,10},{b,0,2π}]

Manipulate[Plot[Sin[a x+b],{x,0,2π}],
{{a,1,"Frekvence"},1,10},
{b,0,2π}
]

TabView[{Plot[Sin[x],{x,0,2π}],"Záložka 2","Záložka 3"}]

TabView[{Sin->Plot[Sin[x],{x,0,2π}],Cos->Plot[Cos[x],{x,0,2π}]}]

TabView[{
Sin->Manipulate[Plot[Sin[a x+b],{x,0,2π}],{{a,1,"Frekvence"},1,10},{{b,0,"Fáze"},0,2π}],

Cos->Plot[Cos[x],{x,0,2π}]
}]

MenuView[Table[Plot[Sin[n x],{x,0,10}],{n,5}]]

Manipulator[Dynamic[t]]
Dynamic[t]
ProgressIndicator[Dynamic[t]]

Slider2D[Dynamic[r]]
Dynamic[r]
ProgressIndicator[Dynamic[r[[1]]]]
ProgressIndicator[Dynamic[r[[2]]]]

Manipulate[list=Table[Sin[x]+Sin[a x]+RandomReal[]/4,{x,0,2π,0.1}];
listF=Abs[Fourier[list]];
Grid[{{ListPlot[{list},Joined->True,PlotRange->{{-1,70},{-2.5,2.5}}],ListPlot[{listF},Filling->Axis,PlotRange->{{-10,70},{0,5}}]}}],{a,1,20}]

Data   Import a export datových souborů

SetDirectory[NotebookDirectory[]<>"data"];

Ukázka - obrázky

image=Import["chicago.jpg"];Show[image,ImageSize->450]

rawdata=Import["chicago.jpg",{"JPEG","Data"}]

Dimensions[rawdata]

edgedetected=ListConvolve[(({{1, 1, 1}, {1, -8, 1}, {1, 1, 1}})),Map[Total,rawdata,{2}]];

edgey=ArrayPlot[Map[If[Abs[#]<200,0,1]&,edgedetected,{2}]]

GraphicsGrid[{{image, edgey}},ImageSize->500]

Ukázka - Excel

data=Import["data.xls"]

data[[1]]//MatrixForm

ListPlot[Transpose[data[[1]]],Joined->True,PlotStyle->Thick]

Show[

ListPlot[Transpose[data[[1]]],Joined->True,PlotStyle->Thick],

ListPlot[Transpose[data[[1]]],PlotStyle->PointSize[Large],Filling->Axis]

]

seznam=Transpose[data[[1]]][[2]]

obr1=ListPlot[seznam,Filling->Axis,PlotStyle->PointSize[Large]]

predpis=α (x^2)+β;

fit=FindFit[seznam,predpis,{α,β},x]

fce[x_]=predpis/.fit

obr2=Plot[fce[x],{x,0,10},PlotStyle->{Thick,Red}]

s=Table[fce[i],{i,1,10}]

seznam

Correlation[s,seznam]

Show[obr1,obr2]

MovingAverage[{a,b,c,d,e},2]

MovingAverage[{a,b,c,d,e},3]

seznam2=MovingAverage[seznam,2]

obr3=ListPlot[seznam2,Joined->True,PlotStyle->{Thick,Orange}]

Show[obr1,obr2,obr3]

Reference   Další zdroje

http : // www.wolfram.com/services/education/

http : // www.mathematica.cz

http : // demonstrations.wolfram.com/