Mathematica od zera

Paulina Suchanek, IFT Wrocław

1. Wprowadzenie

Start

Struktura notatnika

Notatnik edytujemy używając opcji z zakładki Format. Strukturę rozdziałów wprowadzamy wybierając opcje z  okienka Format/Style. W zależności od potrzeby określamy format danej komórki (domyślny Input możemy zaminić np. na tytuł lub tekst). 
Opcja Format/Stylesheet  pozwala wybrać gotowy szablon notatnika. Rozmiar, styl, kolor czcionki oraz tła ustalamy przy pomocy kolejnych opcji z zakładki Format.

Wywoływanie funkcji

3 reguły wywaływania funkcji :   CapitalLetters [ argument , {wanunki} ]  ->  (Shift+Enter)

Factor[(x^2)+2x+1]

Series[Log[1+x],{x,0,5}]

przykładowe funkcje

N[664/578]

Expand[(((3-x))^6)]

Simplify[% + (((3x+1))^4)]

(((((x^2)-1))^2)/(((5x+7))^5))- (((3x+1))^4)/. x-> 4

Solve[2x+6-(x^2)==5, x]

gdy nie znamy nazwy funkcji

1. okna pomocnicze do wprowadzania poleceń -> w zakładce Palettes, np. Classroom Assistant (klikamy na ikony)
2. w Help/ Find Selected Function wpisujemy szukaną funkcję (F1)
3. gdy nie pamiętamy składni: ?Funkcja

?Integrate

Integrate[(x^2)+6,x]

skróty klawiszowe: np. Ctrl + 2, 6 , / 
   Esc  coś Esc ->  np. grecka litera lub symbol (np.  g   ,  n   ,   int  )

4. Podpowiedzi w zakładce :  Edit/Complete Selection lub Make Template (po nazwie funkcji)

Integrate[f,x]
Series[f,{x,(Subscript[x, 0]),n}]

5. opcje funkcji: Options[ ]

Options[Plot]

wygląd komórki Output

W zakładce Edit/Preferences -> Evaluation, Fromat type of new output cells (trwała zmiana) lub Cell/Convert to - dotyczy wybranej komórki

Gamma[z]

Gamma[z]

Funkcja StandardForm lub TraditionalForm

TraditionalForm[Integrate[g[x], x]]

TraditionalForm[EllipticK[x]]

Listy i macierze

Lista oznaczona jest nawiasami klamrowymi :  {a, b, c}
Macierz - lista list, dostępne funkcje w helpie (MatrixOperations)

MatrixForm[{{a,b,f},{c,d,g}}]

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

MatrixForm[Inverse[{{a,b},{c,d}}]]

Definiowanie własnych funkcji

nazwaFunkcji [ x_ ] := ...

funkcja1[x_]:= x^2+8

funkcja1[1]

Do[Print[funkcja1[x]],{x,1,5}]

Clear[m]

m[a_,b_,c_,d_]:= {{a,b},{c,d}}

MatrixForm[Inverse[m[a,b,c,d]]]

Clear[inv]

inv[a_,b_,c_,d_]:=MatrixForm[ Inverse[m[a,b,c,d]]]

przypisywanie wartości stałej

d=4

inv[a,b,c,d]

zmienna dynamiczna

Dynamic[a]

InputField[Dynamic[a]]

linki do tutoriali:

http://www.wolfram.com/broadcast/screencasts/handsonstart/
http://www.wolfram.com/broadcast/screencasts/handsonstartpart2/
http://www.wolfram.com/broadcast/screencasts/mathematicabasics/

2. Wykresy

Funkcja Plot

Plot[Sin[2x],{x,-10,10}]

Plot[{Sin[x],Cos[x]},{x,-5,5}]

Plot[Tooltip[{Sin[x],Cos[x]}],{x,-5,5}]

Plot[{Tooltip[Sin[x],"sinus"],Tooltip[Cos[x],"zgadnij!"]},{x,-5,5}]

Options[Plot]

Plot[{Sin[x],Cos[x]},{x,-5,5},PlotStyle->{{Thick, Red},{Blue, Dashed}},Filling->Axis ,AxesLabel->{x,Null}, PlotRange-> All,Ticks->{Automatic},TicksStyle->{Directive[14],Directive[Orange,14]}]

Narzędzia do opisywania wykresów - w zakładce Graphics : Drawing Tools i Graphics Inspector

Funkcja dynamiczna

Dynamic[Plot[f,{x,0,5}]]

InputField[Dynamic[f]]

funkcje MousePosition i Grid

Grid[{{Plot[Sin[x],{x,-5,5}, ImageSize->Large]},{Dynamic[MousePosition["Graphics","Mouse not in graphics!"]]}}]

Funkcja Plot3D

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

Grid[{{SphericalPlot3D[Re[SphericalHarmonicY[2,0,θ,ϕ]],{θ,0,Pi},{ϕ,0,2Pi}]}, 
{SphericalPlot3D[Re[SphericalHarmonicY[2,1,θ,ϕ]],{θ,0,Pi},{ϕ,0,2Pi}]},{SphericalPlot3D[Re[SphericalHarmonicY[2,2,θ,ϕ]],{θ,0,Pi},{ϕ,0,2Pi}]}}]

Warto też zobaczyć funkcje Graphics, Graphics3D, ContourPlot

3. Interaktywne modele

Funkcja Manipulate

Manipulate[Integrate[x^n,x],{n,1,5,1}]

Manipulate[Plot[Sin[ω x],{x,-5,5}], {ω,0.5,4}]

Manipulate[Plot[A Sin[ω x],{x,-5,5}, PlotRange -> {-3,3}, PlotLabel-> "A sinus(ωx)" ], {ω,0.5,4}, {A,0.2,3}]

video tutoriale : 
 http://www.wolfram.com/broadcast/screencasts/makingmodels/
http://www.wolfram.com/broadcast/screencasts/howtocreateadynamicinterface/
http://www.wolfram.com/broadcast/screencasts/creatinganappinmathematica/   (o falach)

  help : tutorial/AdvancedManipulateFunctionality

4. Importowanie i eksportowanie

Funkcja Export

Export["test.gif",Plot[Sin[x],{x,0,10}]]

składnia LateXa

video - tutorial : 
http : // www.wolfram.com/broadcast/screencasts/howtogeneratetexwithmathematica/

TeXForm[(x/(Sqrt[5]))]

Funkcja Import

?Import

ChemicalData["Caffeine", "MoleculePlot"]

5. Więcej przykładowych funkcji

Obliczenia numeryczne

Funkcje NMinimize, NIntegrate, NDSolve, Timing

Przerywanie obliczeń : zakładka Evaluation/Abort Evaluation 
Zadanie wyliczenia wszystkich komórek w notatniku : zakładka Evaluation/Evaluate Notebook

Funkcje If, While, Do, == testowanie równości, Module (zmienne tymczasowe) 
video-tutorial: http://www.wolfram.com/broadcast/screencasts/elementaryprogramming/

zapisywanie komórki z kodem: Format/Style/Code
w innym pliku wywołujemy kod funkcją Get["nazwa pliku z kodem"]

6. Generowanie prezentacji z notatnika

Jeśli chcemy zrobić z naszego notatnika prezentację w formie slajdów, to  zakładce Palettes/Slideshow  klikamy Convert Notebook. 
Wybieramy odpowiadające nam kryterium podziału notatnika na slajdy (wg rozdziałów lub podrozdziałow itp.)  Aby obejrzeć prezentację klikamy  Slide Show.

video - tutorial :
   http : // www.wolfram.com/broadcast/screencasts/presentingnotebooks/

7. Wolfram demonstration project

http : // demonstrations.wolfram.com/
  - to strona, na której można znaleźć mnóstwo tematycznych pojektów. Są to interaktywne modele, które można sobie obejrzeć, zapisać (dostępny kod!), oraz zmodyfikować wedle potrzeb.
    (np. http://demonstrations.wolfram.com/CirclesPackedInACircle/)
  
  Jeśli stworzy się swój własny projekt, to odtworzyć go można w darmowym programie Free Mathematica Player (dla tych, którzy nie mają Mathematici)

video-tutorial:  http : // www.wolfram.com/broadcast/screencasts/creatinganappinmathematica/

8. Gdzie szukać informacji

W zakładce Help/Documentation Center znajdziemy przewodnik po funkcjach programu Mathematica.
Online dostępne są przystępne video-tutoriale: 

http://www.wolfram.com/broadcast/

np. godzinny filmik:   http://www.wolfram.com/broadcast/screencasts/commercialpresentation/

Seminaria, tutoriale itp. można znaleźć na stronie www.wolfram.com 
w zakładce Support / Learning Center