Mathematica: Tutorial 1

Mathematica jako kalkulator:

1. Dodawanie

In[]:= 2 + 2
Out[]= 4

2. Mnożenie

In[]:= 3*6
Out[]= 18

3. Odejmowanie

In[]:= 3 - 7
Out[]= -4

4. Dzielenie (Uwaga, tu jest kilka problemów)

In[]:= 3/7

102jm9s41ybct

Czyli dostaliśmy ułamek… (Pamiętajmy: obliczenia symboliczne!) Ale jak napiszemy tak:

In[]:= 3./7
Out[]= 0.428571

albo

In[]:= 3/7.
Out[]= 0.428571

To już dostajemy ułamek dziesiętny…

Inne obliczenia

Pierwiastek

In[]:= Sqrt[7]

0qftw4tue316e

Po pierwsze zwracam uwagę na nawiasy kwadratowe używane do wskazywania parametrów funkcji. Po drugie — przyjęto, że wszystkie nazwy funkcji zaczynają się od wielkiej litery. Po trzecie — znowu właściwie Mathematica nic nie zrobiła. To dodajmy kropkę po 7:

In[]:= Sqrt[7.]
Out[]= 2.64575

zadziałało… Inna metoda wymuszenie obliczeń polega na użyciu specjalnej funkcji o nazwie N[], na przykład:

In[]:= N[Sqrt[11]]
Out[]= 3.31662

Jeżeli chcemy dokonać obliczeń z określoną precyzją, możemy zrobić to tak:

In[]:= N[3/11, 19]
Out[]= 0.2727272727272727273

Można korzystać ze stałych, na przykład E albo Pi

In[]:= N[Pi, 50]
Out[]= 3.1415926535897932384626433832795028841971693993751
In[]:= N[E, 20]
Out[]= 2.7182818284590452354

Podczas obliczeń można korzystać ze zmiennych:

19viuc6muyl34

(Zwracam uwagę na średnik na końcu; użycie go wyłącza opcję potwierdzanie tego co Mathematica wylicza…)

In[]:= N[zz, 3]

1ptvenakyd7r0

Out[]= 0.*10^-53

Jeżeli pojawia się taki komunikat, oznacza to, że wynik obliczenia w przybliżeniu równa się zero

Dostępnych jest wiele funkcji — nie sposób wymienić tu wszystkich — odsyłam do Helpa…

Możliwe są również bardziej skomplikowane obliczenia:

In[]:= Sum[i, {i, 1, 10}]
Out[]= 55

Powyższe równoważne jest

In[]:= 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10
Out[]= 55

albo zapisowi uproszczonemu

In[]:= Sum[i, {i, 10}]
Out[]= 55

Mniej więcej wiadomo co to będzie:

In[]:= Sum[i*j, {i, 1, 10}, {j, 1, 10}]
Out[]= 3025

(podwójna suma…)

W podobny sposób działa polecenie Product, zatem nikogo nie dziwi wynik:

In[]:= 10! - Product[i, {i, 1, 10}]
Out[]= 0
In[]:= Sum[1/i, {i, 1, Infinity}]

03tq4iaswr8tf

1p4o012oq1hq1

Powyższe nie jest specjalnie dobrym przykładem ponieważ taka suma nie ma granicy, ale to:

In[]:= Sum[1/(i^2), {i, 1, Infinity}]

1ur3au8j1zu8z

tego to chyba kalkulator w komórce nie policzy, prawda?

Można też użyć Mathematici do rozwiązywania równań. Najprostszy wariant wygląda tak:

In[]:= Solve[3 x + 9 == 0, x]
Out[]= {{x -> -3}}

Nieco bardziej skomplikowane jest to

In[]:= Solve[(x - Pi) (x - 2) == 0, x]
Out[]= {{x -> 2}, {x -> Pi}}

Polecenie Solve rozwiązuje równanie dokładnie (przynajmniej stara się). Polecenie NSolve rozwiązuje równanie metodami numerycznymi:

In[]:= NSolve[(x - Pi) (x - 2) == 0, x]
Out[]= {{x -> 2.}, {x -> 3.14159}}

W przypadku użycia polecenia Solve możliwe jest rozwiązanie równania o postaci:

In[]:= Solve[(x - 3) (x - 2) == Pi]

0nt37u5scx5ly

albo o postaci

In[]:= Solve[(x - 3) (x - 2) == a, x]

0pvtei6vbznp7

In[]:= NSolve[(x - 3) (x - 2) == Pi]
Out[]= {{x -> 0.658372}, {x -> 4.34163}}

Najprostsze obliczenia symboliczne

Najciekawsze jednak możliwości zaczynają się, gdy zechcemy dokonywać obliczeń symbolicznych. Polecenie Expand „wylicza" sumy, iloczyny i dodatnie potęgi w wyrażeniu:

In[]:= Expand[(a + b)^3]
Out[]= a^3 + 3 a^2 b + 3 a b^2 + b^3

Polecenie Factor faktoryzuje1 (upraszcza?) złożone formuły — wielomiany

In[]:= Factor[x^5 + x^4 + x + 1]
Out[]= (1 + x) (1 + x^4)

Polecenie Simplify upraszcza skomplikowane wyrażenia…

In[]:= Simplify[x^2 + 2 x + 1]
Out[]= (1 + x)^2

ale też:

In[]:= Factor[x^2 + 2 x + 1]
Out[]= (1 + x)^2

za to

In[]:= Simplify[1 - x^2]
Out[]= 1 - x^2

nie robi nic, ale za to

In[]:= Factor[1 - x^2]
Out[]= -((-1 + x) (1 + x))

tak, że nie jest to całkiem proste. Inny przykład

006nx8ipuv4fl

Out[]= True

Specjalne polecenie /. pozwala zastąpić zmienną przez wyrażenie, na przykład:

In[]:= x + 2 /. x -> a
Out[]= 2 + a
In[]:= x + 2 /. x -> b - 1
Out[]= 1 + b

Całki, pochodne…

In[]:= Dt[Sin[x], x]
Out[]= Cos[x]

proste, prawda? A druga pochodna to będzie jakoś tak…

In[]:= Dt[Sin[x], {x, 2}]
Out[]= -Sin[x]

Sprawdźmy…

In[]:= Dt[%%, x]
Out[]= -Sin[x]

Zwracam uwagę, na znaki %%. Mathematica przyjmuje taką konwencję, że pojedynczy znak % oznacza wynik poprzedniego działania, podwójny — tego przedostatniego, kolejne znaki % pozwalają odwołać się do jeszcze wcześniejszych wyrażeń…

In[]:= Dt[Cos[x], x]
Out[]= -Sin[x]

Gdy chcemy liczyć pochodne cząstkowe używamy polecenia D; czasami trudno jest zauważyć różnicę:

In[]:= D[Sin[x], x]
Out[]= Cos[x]

Całka to Integrate

In[]:= Integrate[Sin[x], x]
Out[]= -Cos[x]

To była całka nieoznaczona, całka oznaczona to coś takiego:

In[]:= Integrate[x, {x, a, b}]

1b8co28o0frje

In[]:= Integrate[x, {x, 0, t}]

1dnauntepz5f9

Może być zapisane także inaczej

0ad528njh7i09

0oua849r959fo

w tym celu można posłużyć się „klawiaturą" wyświetlaną z boku przez Mathematice… albo innymi magicznymi zaklęciami. Całka to \ [Integral] (pisane BEZ odstępów!. Aby uzyskać π wystarczy napisać \ [Pi] ∑ to \ [Sum]

Wykresy

Możliwość tworzenia wykresów to kolejna mocna strona Mathematici. Najprostszy wykres tworzymy pisząc coś takiego:

In[]:= Plot[Sin[x], {x, -10, 10}]

0tycmvwlf2ijl

Gdy chcemy wyrysować dwie funkcje (lub więcej) postępujemy tak:

In[]:= Plot[{Sin[x], Sin[x]^2}, {x, 0, 10}]

09gwppe46i0z8

Jeżeli chcemy modyfikować wygląd wykresu, musimy zmieniać parametry (opcje). Niektóre funkcje mają ich całkiem sporo

In[]:= Plot[{Sin[x], Sin[x]^2}, {x, 0, 10}, Axes -> False, Background -> RGBColor[1, 1, 0], GridLines -> Automatic]

0lwtugs9yqxup

Jeżeli chcemy uzyskać listę dostępnych opcji polecenia możemy napisać Options[Plot]

In[]:= Options[Plot]

0k49lvdycbmd3

Dopuszczalne wartości opcji znajdziemy w Helpie…

Wykresy funkcji dwu zmiennych uzyskujemy za pomocą polecenia Plot3D

In[]:= Plot3D[Sin[x y], {x, -4, 4}, {y, -4, 4}, Mesh -> False, ViewPoint -> {1.675`, 1.796`, 3.238`}, PlotPoints -> 50]

1iga28haskja5


  1. Rozkłada na czynniki pierwsze. ↩︎

Następny