Informatika1-2015/OsszefoglaloZH3

A MathWikiből
A lap korábbi változatát látod, amilyen Gaebor (vitalap | szerkesztései) 2015. december 7., 20:50-kor történt szerkesztése után volt.

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