Nejprve si ukážeme použití SW Mathematica jako kalkulátoru náhrady tabulek řad, integrálů nebo dif. rovnic

Jde o krátký úvod, více naleznete v odkazech na webové stránce semináře

Kalkulátor

Pozn.: Vykonání příkazů v dané buňce dosáhnete klávesmi <shift><enter>

1+2*3

1+2 3

12!

1001^1000>1000^1001

Kalkulátor se zlomky

1+(1/2)+(1/3)+(1/4)+(1/5)+(1/6)

N[%]

(* a odmocninami *)
(Sqrt[2])
N[%,90]

Kalkulátor s odmocninami

Sqrt[3+2Sqrt[2]]

Simplify[%]

FullSimplify[%%]

(* více viz wikpedia: Nested_radical *)

Kalkulátor s desetinnými čísly

1.0001^10000

Kalkulátor s písmenky

(Subscript[E, k])=(Subscript[m, 0])c^2/Sqrt[1-v^2/c^2]-(Subscript[m, 0]) c^2

c=299792458
v = 1
(Subscript[m, 0])=3

(Subscript[E, k])

N[(Subscript[E, k])]

N[(Subscript[E, k]),19]

Kalkulátor s písmenky a jednotkami

c=299792458m/s
v = 1 m/s
(Subscript[m, 0])=3 kg

N[ (Subscript[m, 0]) c^2/Sqrt[1-v^2/c^2]-(Subscript[m, 0]) c^2, 20]

N[%]

(1/(1+(e^x)))

g = Exp[-x] Sin[x]

Plot[g,{x,0,10}]

Integrate[ g ,x ]
Integrate[ g ,{x,0,Infinity} ]

N[%]

f = Sin[x]^5
Integrate[ f ,x ]
Integrate[ f ,{x,0,Pi} ]

Pozor, u vícenásobných integrálů záleží na pořadí (pro někoho to je “obráceně”)

HoldForm[ Integrate[   1,{x,-1,1} ,{y,-Sqrt[1-x^2],Sqrt[1-x^2]}] ]

(*{Circle[{0,0}],Line[{{3/5,-4/5},{3/5,4/5}}]}//Graphics*)

Print[ InputForm[%] ]
%%==ReleaseHold[%%]

Vždy to můžeme zapsat jako dva integrály

Integrate[
Integrate[    1,{y,-Sqrt[a^2-x^2],Sqrt[a^2-x^2]}],
  {x,-a,a} 
]

Urychlit výpočet a zpřehlednit výsledek lze (příp. je nutno) s pomocí Assumptions->

Integrate[ Exp[-a x^2],{x,-Infinity,Infinity},Assumptions->a>0]

Potěší, že lze nalézt i součet všelijakých řad, podobně jako u integrace často za použití velmi speciálních funkcí

Sum[a[k],k] (*zridka*)
%/. Sum[a_,i_]:> Sum[a,{i,0,n}] (* hezky priklad na delay rule *)

Sum[ 1/(2k+1)^x,{k,1,Infinity}]

Sum[i,{i,1,Infinity}]

Priklad: -(1/12)

With[{n=10},
(*Plot[ Exp[-(i/n)],{i,0,30},PlotRange->{0,1}]*)
Plot[ 1/(1+(i/n)^6),{i,0,30},PlotRange->{0,1}]
]

Sum[i /(1+(i/n)^6),{i,0,Infinity}]
Series[ %, {n, Infinity,3}]//Simplify

Derivace

Takto vypadá obyčejná funkce

f[x]

Potřebujeme to vědět, protože jinak by ji D chápalo jako konstantu

D[f[x],x]
D[f,x]

Podobně druhá derivace

D[f[x],{x,2}]

Také můžeme k označení derivace použít apostrof

Print[ f''[x]//InputForm ]
Print[ f''[x]//InputForm ]
f''[x]

Rozvoje

Series[ Sin[x],{x,0,10} ]
(*Normal[%]*)
Normal[%]
Plot[{ %,Sin[x]}, {x,0,5}]

Series[ Log[(x-a)/(x+a)] , {a,0,6}]

Rozvíjet lze i okolo nekonečna

Series[ Log[(x-a)/(x+a)] , {x,Infinity,6}]

Krátký příklad, jak takové rozvoje pak i namalovat

mojeF =Sin[x]

Table[ Series[ mojeF,{x,0,n}], {n,1,20,4}];
rozvoje = %//Normal

vsechnyFunkce = Join[ {mojeF},rozvoje]; (*středník abychom se schovali výsledek*)

Plot[vsechnyFunkce,{x,-3Pi,3Pi},Frame->True,GridLines->Automatic,PlotRange->{-2,2},PlotStyle->{{Thick},{Dashed,Red},{Dashed,Blue},{Dashed,Green},{Dashed,Orange},{Dashed,Magenta}}]

Důležitý detail, jako znak rovnosti se používá dvojité rovnítko == , jednoduché = (a to i uprostřed výrazů) znamená přiřazení
Když se spleteme, je většinou potřeba přiřazení odstranit :

Solve[ y=2x,y]

Třeba takto

y=.

Rovnice lze často řešit jak symbolicky, tak numericky
(s detaily se obeznámíme postupně, nové chování ve verzi 12)

Solve[ x^13 - 3 x -1==0,x]
N[%,20](* vypocitej na 50 mist *)
Chop[%] (* odstraň pravděpodobně nulové smetí *)

Preview: Koreny v komplexní rovině

NSolve[ x^13 - 3 x -1==0,x]

NSolve[ x^23 - 3 x^13 -1==0,x];
Point[{Re[x],Im[x]}]/.%;
Graphics[%,ImageSize->Small]

Manipulate[
Graphics[Point[{Re[x],Im[x]}]/.NSolve[ x^6 -  x^4 +a x^3+10==0,x]  ,ImageSize->Small]
,{a,-10,10}]

Manipulate[
Block[{p1,p2},(* lokalní symboly uvnitr Block *)
p1=NSolve[ x^3 - a  x +b==0,x] ;
p2=Point[{Re[x],Im[x]}]/.p1 ;
Graphics[{
Text["a="<>ToString[a],{3,3.3}],
Text["b="<>ToString[b],{3,2.7}],
Red,PointSize[0.05],p2},ImageSize->Small,PlotRange->{{-4,4},{-4,4}},GridLines->Automatic,GridLinesStyle->Dashed]
]
,{a,-4,4},{b,-4,4}]

Komplexní čísla

{Sqrt[-1],I,I}

2+3I
1/%

Solve[ Sin[x] -a==0,x]
%/.C[1]->0

Speciální funkce

Solve[ x Exp[x] -a==0,x]

Solve[ x Exp[x] -a==0,x]/.a->-0.2

Plot[ x Exp[x],{x,-3,1},PlotTheme->"Scientific",
Epilog->({Point[{ProductLog[a],a}],Point[{ProductLog[-1,a],a}]}/.a->-0.2)]

Show[
Plot[ x Exp[x],{x,-3,1},PlotTheme->"Scientific"],
Graphics[{Point[{ProductLog[a],a}]}/.a->-0.2]
]

Některé rovnice nemají řešení v podobě nějakého výrazu ( co s tím ... někdy příště )

Solve[ x Sin[x] -a==0,x]

Takto se řeší obyč. dif. rovnice

reseni = DSolve[ f''[x]==- a x ^2 f[x] && f[0]==1 && f'[0]==0,f[x],x][[1]]

f[x]/.reseni/.a->1
(*Plot[{Re[%],Im[%]},{x,-1,1}]*)
Plot[%,{x,-1,1}]

Přidat můžeme počáteční podmínky

DSolve[ f'[x]==f[x] && f[0]==1,f[x],x]

Nebo dokonce podmínky okrajové

Simplify[ DSolve[ f''[x]==-f[x] && f[-1]==1 && f[1]==1,f[x],x] ]

Další, co se dříve hledalo v tabulkách jsou rozvoje

Ještě k derivování

D[ m a[t] b[t]^2, t]

D[ m a b^2 , t, NonConstants->{a,b}]
Dt[ m a b^2 , t, Constants->m]

Takto počítáme gradient:

D[ Sin[ x y], {{x,y}}]

Takto Jakocobián

poSouradnice = { R Cos[ϕ], R Sin[ϕ ]}

mujJacobian = D[ poSouradnice, {{R,ϕ}} ]
MatrixForm[%]

A něco k integrování

Někdy to trvá dlouho, než vzdá symbolickou integraci....

oi = Integrate[  Cos[x] Exp[-1/(1-x^2)], {x,-1,1} ]

N[oi,32]

Někdy je výsledek nečitelný, ale (jako zde) dovoluje další počítání

osni = Integrate[ 1/(1+x+a x^3) ,x]

Plot[ Table[osni,{a,1,4}], {x,-1,2}]

Co to jsou ty # ?

Vlastně jde o zápis funkce, (ta se zde musí vyhodnotit, aby se zjistilo, kolik je výsledek)

mf1[x_] = x Sin[1/x]   (*Neni ve skutecnosti tak uplne funkce*)
mf2=Function[x,x Sin[1/x]]
mf3=# Sin[1/#]&

Plot[ mf3[s],{s,0,1/2},PlotTheme->"Scientific"]