Informatika1-2015/OsszefoglaloZH3

A MathWikiből
(Változatok közti eltérés)
(Wolfram Mathematica)
(Függvények hattatása)
124. sor: 124. sor:
  
 
=== Függvények hattatása ===
 
=== Függvények hattatása ===
Vegyük a <tt>Sin</tt> függvényt, ekkor ezek ugyan azok:
+
* A függvényhívás jele a '''szögletes zárójel'''! <tt>Sin[x]</tt>
 +
* Postfix jelöléssel: <tt>x//Sin</tt> ''x-re hattatom a szinuszt''
 +
* Prefix jelöléssel: <tt>Sin@x</tt> ''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} === f[{x,y,z}]
 +
Például vegyük a <tt>Sin</tt> függvényt, ekkor az alábbiak megegyeznek:
 
  Sin[Pi]
 
  Sin[Pi]
 
  Pi//Sin
 
  Pi//Sin

A lap 2015. december 7., 20:47-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 x-re hattatom a szinuszt
* Prefix jelöléssel: Sin@x 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} === 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:

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]]
Személyes eszközök