Informatika1-2015/OsszefoglaloZH3
(→Függvények hattatása) |
(→Wolfram Mathematica) |
||
151. sor: | 151. sor: | ||
Cos /@ Range[0,Pi,Pi/6] | Cos /@ Range[0,Pi,Pi/6] | ||
Cos[Range[0,Pi,Pi/6]] | Cos[Range[0,Pi,Pi/6]] | ||
+ | |||
+ | === Függvények megadása === | ||
+ | Az alábbiakban ugyanazt a függvényt definiálom: | ||
+ | f[x_] := Sin[x] | ||
+ | f = Sin[#]& | ||
+ | f = Sin | ||
+ | f = Function[x,Sin[x]] | ||
+ | Ezek bármelyikével: | ||
+ | In[1]:= f'[x] | ||
+ | Out[1]= Cos[x] |
A lap 2015. december 7., 21:53-kori változata
Tartalomjegyzék |
Octave
Alapvető műveletek és függvények
2-3 2*3 2/3 floor(2/3) mod(2,3) 2^3 sqrt(2) log(2) exp(1) pi cos(pi/2)
Octave-ban egy szám mindaddig valós (lebegőpontosan ábrázolva), amíg komplexnek nem bizonyul:
sqrt(2) sqrt(-2)
Mátrixok
Sorvektor:
[1, 2, 3, 4] [1 2 3 4]
Oszlopvektor:
[1;2;3;4]
Mátrix:
[1 2; 3 4] [1, 2; 3, 4]
Speciális mátrixok:
- zeros: csupa 0
- ones: csupa 1
- eye: diagonálisban 1, máshol 0
- diag: négyzetes diagonális mátrix, megadott főátlóval
zeros(2,3) eye(2,3) ones(3,1) diag([1,2,3,4])
Tartományokat adhatunk meg gyorsan, pl, 1, 2, 3, 4, 5:
1:5
Vagy más lépésközzel (akár negatívval), pl 1, 1.2, 1.4, 1.6, 1.8, 2:
1:0.2:2
Ezeket lehet használni mátrixok létrehozásakor, pl:
diag(1:4)
Vehetjük mátrixok transzponáltját:
[1 2; 3 4]'
összegét:
eye(2,2)+ones(2,2)
szorzatát:
[1 2; 3 4]*[1 2; 3 4]
hatványát:
[1 2; 3 4]^2
Ezek a műveletek mátrixokon hatnak. De végezhetjük a műveleteket tagonként is:
[1 2; 3 4].^2
A legtöbb művelet elé, ha pontot rakunk akkor tagonként hat.
Lekérhetünk és módosíthatjuk egy adott mátrix valamelyik elemét:
M = [1 2; 5 4] M(2,1) = 3
Ez így a második sor első elemét módosítja.
Változók
Változókban tárolhatunk adatokat, például:
a = 5
de akár mátrixokat is tárolhatunk:
M = [1 2; 3 4]
Változók értéke felülírható, és változók használhatók értékadásnál is, például:
M = [1; 1] a = 4 M = [a 2; 4 a]
Függvények
Függvényt írhatunk Octave-ban:
function fx = f(x) fx=1/(x^2+1); endfunction
Majd így hívhatjuk meg:
f(3)
ennek az eredménye pl 0.1 lesz.
Sage
Wolfram Mathematica
Listák
Listákat kapcsos zárójellel adunk meg
{1,2,3,4}
Mátrixokat listák listájaként:
{{1,2}, {3,4}}
De listában bármi lehet:
{1,x,{E,Pi}, Function[x,x^x]}
Hasznos parancsok
- Range
In[1]:= Range[5] Out[1]= {1,2,3,4,5} In[2]:= Range[2,6] Out[2]= {2,3,4,5,6} In[3]:= Range[2, 5, 0.5] Out[3]= {2., 2.5, 3., 3.5, 4., 4.5, 5.}
- Table
Range-hez hasonlóan
In[1]:= Table[i,{i,1,5}] Out[1]= {1,2,3,4,5}
A Table hasába bármilyen kifejezést írhatunk
In[1]:= Table[x^i,{i,1,5}] Out[1]= {x,x^2,x^3,x^4,x^5}
Az elemek explicit felsorolásával
In[1]:= Table[f'[x],{f,{Sin, Cos, Log}}] Out[1]= {Cos[x], -Sin[x], 1/x}
Több dimenziós Table, például modulo három szorzótábla:
Table[Mod[i j, 3], {i, 0, 2}, {j, 0, 2}] // MatrixForm
Függvények hattatása
- A függvényhívás jele a szögletes zárójel! Sin[x]
- Postfix jelöléssel: x//Sin. Azt mondhatjuk: x-re hattatom a szinuszt
- Prefix jelöléssel: Sin@x. Más szóval: szinuszt hattatom x-re
- A dupla hattatás argumentumául veszi a lista elemeit:
f @@ {x,y,z} === f[x,y,z]
Más mint az alábbi:
f @ {x,y,z}
ami
f[{x,y,z}]
Például vegyük a Sin függvényt, ekkor az alábbiak megegyeznek:
Sin[Pi] Pi // Sin Sin @ Pi Sin @@ {Pi}
Az összeadásra:
x+y Plus[x,y] Plus @@ {x,y} {x,y} // Total Total[{x,y}]
Listára elemenként hattathatunk függvényt a Map függvénnyel vagy a /@ szimbólummal.
f/@{x,y,z} === {f[x],f[y],g[z]}
Példák
Table[Cos[x], {x,0,Pi,Pi/6}] Cos /@ Table[x, {x,0,Pi,Pi/6}] Cos /@ Range[0,Pi,Pi/6] Cos[Range[0,Pi,Pi/6]]
Függvények megadása
Az alábbiakban ugyanazt a függvényt definiálom:
f[x_] := Sin[x] f = Sin[#]& f = Sin f = Function[x,Sin[x]]
Ezek bármelyikével:
In[1]:= f'[x] Out[1]= Cos[x]