Feladatok

  • Minden feladatot külön notebookba oldj meg!
  • A megoldásnotebook neve tartalmazza a feladat számát!
  • A megoldások kerüljenek a MEGOLDASOK mappába!
    Csak azok a feladatok kerülnek elbírálásra, amelyek a MEGOLDASOK mappában vannak!
  • A megoldás tartalmazza a megoldandó feladat szövegét a megoldásnotebook első markdown cellájában!
  • Kommentekkel, illetve markdown cellákkal magyarázd, hogy éppen mit csinál az adott kódrészlet!
    Magyarázat nélkül beküldött feladatok csak fél feladatnak számítanak!

01 - Mátrixszorzás

Az alábbi mátrixok közül

\begin{equation} M_1=\left(\begin{array}{ccc} 3 &6 &3\\ 9 &3 &9\\ 2 &0 &2 \end{array}\right)\,, M_2=\left(\begin{array}{ccc} 7 &9 &6\\ 9 &3 &0\\ 1 &2 &3 \end{array}\right)\,, M_3=\left(\begin{array}{ccc} 3 &2 &6\\ 6 &5 &9\\ 8 &5 &8 \end{array}\right)\,, M_4=\left(\begin{array}{ccc} 0 &2 &9\\ 6 &5 &4\\ 9 &9 &2\end{array}\right) \end{equation}

ha kettőt megfelelő sorrendben összeszorzunk, akkor eredményül az

\begin{equation} X=\left(\begin{array}{ccc} 36& 6& 36\\ 71& 51& 71\\ 112& 81& 112 \end{array}\right) \end{equation}

mátrixot kapjuk. Határozzuk meg, hogy melyik mátrixok azok, amelyek a szorzás tényezőit adják, illetve hogy milyen sorrendben kell a szorzást elvégezni!

02 - Invertálhatóság

  • Vizsgáljuk meg, hogy az előző feladatban definiált négy mátrix közül melyik invertálható.
  • Határozzuk meg azon mátrixok diagonális elemeinek összegét (spúrját), amelyek nem invertálhatóak!

03 - 3D forgatás

Az $x$ $y$ és $z$ tengely körüli forgatások mátrixai a következő alakot öltik: $$ R_x(\alpha)=\begin{pmatrix} 1 & 0 & 0 \\ 0&\cos(\alpha) & -\sin(\alpha) \\ 0&\sin(\alpha) & \cos(\alpha) \end{pmatrix},\quad R_y(\alpha)=\begin{pmatrix} \cos(\alpha) & 0 & -\sin(\alpha) \\ 0 & 1 & 0 \\ \sin(\alpha) & 0 & \cos(\alpha) \end{pmatrix}, R_z(\alpha)=\begin{pmatrix} \cos(\alpha) & -\sin(\alpha) & 0 \\ \sin(\alpha) & \cos(\alpha) & 0 \\ 0 & 0 & 1 \end{pmatrix}. $$

Melyik az az $u$ vektor, melyre igaz az, hogy $$ R_x(\pi/3)R_z(\pi/7)R_y(\pi/5)u= \begin{pmatrix} 137 \\ 42 \\ 36 \end{pmatrix}. $$ Határozzuk meg a keresett $u$-t a mintapéldában szereplő solve() függvény segítségével!

04 - Sajátértékek

  • Határozzuk meg az első feladatban szereplő mátrixok sajátértékeit!
  • Ellenőrizzük le, hogy a sajátértékek szorzata megegyezik a mátrixok determinánsával!

05-$\mathrm{CO}_2$ molekula rezgései

A CO$_2$ molekula atomjainak rezgését az alábbi három egyenlet írja le $$m_O \overset{..}{x}_1=k(x_1-x_2),\quad\quad\quad\quad\quad\quad$$

$$m_C \overset{..}{x}_2=k(x_2-x_1)+k(x_2-x_3),$$$$m_O \overset{..}{x}_3=k(x_3-x_2).\quad\quad\quad\quad\quad\quad$$

ahol az $x_1$, $x_2$ és $x_3$ rendre az egyik oxigén, a szénatom, illetve a másik oxigén koordinátái a térben.

Feltéve, hogy a rendszer harmonikus mozgást végez ($x_i=A_i\mathrm{e}^{\mathrm{i}\omega t}$), az alábbi egyenletrendszerre jutunk:

$$m_O \omega^2 A_1=k(A_1-A_2),\quad\quad\quad\quad\quad\quad$$$$m_C \omega^2 A_2=k(A_2-A_1)+k(A_2-A_3),$$$$m_O \omega^2 A_3=k(A_3-A_2).\quad\quad\quad\quad\quad\quad$$

Vizsgáljuk ezt az egyenletrendszert egy dimenzióban! Azaz mindhárom $A_i$-t tekintsük egyszerű számoknak! Legyen továbbá $k=1$, $m_O=16$ és $m_C=12$. Határozuk meg a numpy eig() rutinja segítségével az $\omega_i$ sajátfrekvenciákat (sajátértékeket), illetve a sajátfrekvenciákhoz tartozó rezgési módusokat (sajátvektorokat)!

06- Su$-$Schrieffer$-$Heeger-modell sávszerkezete ☠

A szilárdtestfizikában a Su$-$Schrieffer$-$Heeger-modell egy végtelen periodikus poliacetilén láncot ír le. A modell Hamilton-operátora az alábbi 2x2-es hermitikus mátrix: $$ H=\left( \begin{array}{cc} 0 & 1+w e^{-i k} \\ 1+w e^{i k} & 0 \\ \end{array} \right). $$ A fenti kifejezésben $k$ a hullámszámvektor, melynek értéke a $[-\pi,\pi]$ intervallumon változhat, $w$ pedig egy valós szám, melynek értéke $0.5$ és $1.5$ között változhat. Készítsünk egy interaktív ábrát, mely a Hamilton-operátor sajátértékeit ábrázolja $k$ függvényében, ahol egy csúszka segítségével $w$ értékét változtathatjuk!

07- PageRank ☠

A Google-keresés áttörő sikerét a PageRank-algoritmus indította el, melynek természetesen mára már a titkos és sokat finomított verzióját tartalmazza a keresőmotor. Az első PageRank-változat azonban egy nagyon szép és intuitív képre vezethető vissza, melynek segítségével végső soron a leghasznosabb honlapok megkeresése is a következő mátrix sajátérték-problémára egyszerűsödik:

$$\mathbf{V}=\mathbf{L}\mathbf{M^{-1}},$$

ahol

  • $n$ a csúcsok száma,
  • $\mathbf{L}$ az ún. összekötöttségi mátrix, azaz
    • $L_{ij}=1$, ha $i$ és $j$ között van él, és
    • $L_{ij}=0$, ha $i$ és $j$ között nincs él.
  • $\mathbf{M}$ pedig az az $n\times n$-es mátrix, melynek főátlójában a csúcsok fokszáma áll $$M_{ii}=\sum_{j=1}^n L_{ij}.$$

Ennek a mátrixnak az 1 sajátértékű sajátvektorában szereplő számok lesznek a PageRankek.

A Google által 2002-ben közzétett, az internet hálózatát feltérképező adatokból határozzuk meg, hogy melyik tíz honlap rangsorolódna a PageRank-algoritmus alapján legelőrébb az adatbázisban szereplő 875713 oldal közül (elég ha a honlapok sorszámát megállapítjuk).

A feladat megoldása során felmerülő nagy mátrixot a scipy modul ritkamátrixokért felelős függvényeivel dolgozzuk fel!