Feladatok

  • Minden feladatot a feladatszámnak megfelelő számú megoldásnotebookban oldj meg. Azaz az első feladatot az 1_feladat.html notebookban.
  • A halálfejes (☠) feladatokhoz, hozz létre a kötelező feladatokhoz hasonlóan egy új notebookot a MEGOLDÁSOK könyvtárban.
  • 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 a beküldött feladatok csak fél feladatnak számítanak!
  • Az elkészített ábrák minden esetben rendelkezzenek ábrafeliratokkal (cím, tengelyfeliratok és $-$ amennyiben indokolt $-$ jelmagyarázat)! Amennyiben a beadott ábrákon nincsenek feliratok, az adott feladat automatikusan csak fél feladatnak számít!

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!
  • Mely mátrixok invertálhatóak $M_1,\dots,M_4$ közül?

Segítségül listaformátumban a következő cellából kimásolhatók a mátrixok.

In [1]:
M1=[[3,6,3],[9,3,9],[2,0,2]]
M2=[[7,9,6],[9,3,0],[1,2,3]]
M3=[[3,2,6],[6,5,9],[8,5,8]]
M4=[[0,2,9],[6,5,4],[9,9,2]]
X=[[36,6,36],[71,51,71],[112,81,112]]

02 - 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}, \quad R_z(\alpha)=\begin{pmatrix} \cos\alpha & -\sin\alpha & 0 \\ \sin\alpha & \cos\alpha & 0 \\ 0 & 0 & 1 \end{pmatrix}. $$

A solve() függvény segítségével határozzuk meg, hogy 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} $$

03 - Ortogonális mátrixok

Döntsük el, hogy a következő mátrix lehet-e lehet-e ortonormált bázisok közti áttérés mátrixa, azaz ortogonális mátrix-e?

$$T=\left(\begin{array}{ccc}0.7288991255358142 & -0.4338837391175581 & -0.5295762133276873\\ -0.3335273011906018 & 0.4504844339512097 & -0.8281445007534446\\ 0.5978842732114963 & 0.7802619276224011 & 0.1836456374361667\\ \end{array}\right)$$

Végezzük el a bázistranszformációt az 1. feladatbeli $M_2$ mátrixon, és ellenőrizzük, hogy a spúrja és determinánsa megváltozott-e!

Segítségül a mátrixot listaformátumban megadtuk a következő cellában.

In [2]:
T=[[ 0.7288991255358142, -0.4338837391175581, -0.5295762133276873],
        [-0.3335273011906018,  0.4504844339512097, -0.8281445007534446],
        [ 0.5978842732114963,  0.7802619276224011,  0.1836456374361667]]

04 - A $\mathrm{CO}_2$ molekula longitudinális rezgései

A CO$_2$ molekula atomjai egyensúlyi helyzetükben egy egyenesen helyezkednek el. A molekula hosszirányú rezgéseit az alábbi egyenletrendszer írja le kis kitérések esetén:

\begin{align} m_\mathrm{O} \overset{..}{x}_1 &=& k\cdot(x_2-x_1),\\ m_\mathrm{C} \overset{..}{x}_2 &=& k\cdot(x_1-x_2)+k\cdot(x_3-x_2),\\ m_\mathrm{O} \overset{..}{x}_3 &=& k\cdot(x_2-x_3), \end{align}

ahol a $x_1$, $x_2$ és $x_3$ az atomok kitérései egyensúlyi helyzetükből, elhelyezkedésük sorrendjében számozva.

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

\begin{align} m_\mathrm{O} \omega^2 A_1 &=& k\cdot(A_1-A_2),\\ m_\mathrm{C} \omega^2 A_2 &=& k\cdot(A_2-A_1)+k\cdot(A_2-A_3),\\ m_\mathrm{O} \omega^2 A_3 &=& k\cdot(A_3-A_2). \end{align}

Legyen $k=1$, $m_\mathrm{O}=16$ és $m_\mathrm{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)!

05 - Ritka mátrixok

Állítsuk elő a következő $N\times N$-es mátrixot sűrű (numpy), illetve ritka (scipy) mátrixként a két könyvtár kron függvénye segítségével $N=100,200,\dots,1000$ esetén! Készítsük el az $N$ hosszú $b$ vektort is!

$$M=\left(\begin{array}{rrrrrrr} 2 & -4 & 0 & 0 & \dots & 0 & 0\\ -4 & 2 & 0 & 0 & \dots & 0 & 0\\ 0 & 0 & 2 & -4 & \dots & 0 & 0\\ 0 & 0 & -4 & 2 & \dots & 0 & 0\\ \vdots & & & & \ddots & & \vdots\\ 0 & 0 & 0 & 0 & \dots & 2 & -4\\ 0 & 0 & 0 & 0 & \dots & -4 & 2\end{array}\right)\qquad b=\left(\begin{array}{c} 1\\ 2\\ 1\\ 2\\ \vdots\\ 1\\ 2 \end{array}\right)$$

Minden méret esetén a ritka és a sűrű esetben is keressük meg azt az $u$ vektort, amelyre $M\cdot u = b$, mérjük meg a megoldás futási idejét, és ábrázoljuk azt két görbén a méret függvényében! Mit vehetünk észre?

A futási idő méréséhez keressünk rá a time modul time() függvényére!

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}.$$

A $V$ 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 fájl első 10000 sorából készítsük el az M mátrixot, dobjuk ki a csak 0-kat tartalmazó sorokat, és az ehhez tartozó oszlopokat is. Ezek után állapítsuk meg V-ből, melyik a 10 legnagyobb PageRankkel rendelkező oldal! Elegendő a mátrix átszámozás utáni sorindexeivel megadni a honlapokat.

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

08 - Általános forgatások ☠

Állítsuk elő a 2. feladatban szereplő forgatásmátrixok segítségével egy ferde tengely körüli térbeli forgatás mátrixát! A tengely legyen koordinátarendszerünk origóján átmenő egyenes!

  • A tengely iránya olyan, hogy ha egyik felét kiválasztjuk, annak a vízszintes $x$-$y$ síkra vett vetülete $\varphi=\pi/3$ szöget zár be az $x$ tengely pozitív ágával, pozitív szögelfordulás irányában mérve.
  • Ugyanakkor a tengely előbb kiválasztott fele $\theta=\pi/4$ szöget zár be a vízszintes síkkal felfelé mérve (azaz az $x,y,z$ tengelyek pozitív ága közti térrészben helyezkedik el a tengelynek ez a félegyenese).
  • A forgatás szöge legyen $\alpha=\pi/6$ a ferdén felfelé mutató ága irányából nézve!

Segítség: Határozzuk meg mátrixunkat a következő transzformációk egymásutánjából! Először forgassuk el két forgatással a tér pontjait úgy, hogy a kiválasztott forgástengely átmenjen az $x$ tengely egyenesébe! Utána forgassunk az $x$ tengely körül $\alpha$ szöggel! Végül csináljuk vissza a kezdeti forgatásokat, hogy a kiválasztott forgástengely az $x$ tengelyből visszakerüljön a helyére! Így a végeredményt tekintve nyilván ennek a tengelynek a pontjai a helyükön maradnak.

Ellenőrzésül számoljuk ki a mátrix sajátértékeit! Azt kaptuk-e, amit kell?

09 - Szinguláris egyenletrendszerek ☠

Két egyforma ellenállásokból álló csillagkapcsolást rombusz alakban összekapcsolunk. Az így kapott áramkör négy kimenetén folyó áram a kimenetekre kapcsolt elektromos potenciál függvényében a következő egyenletekkel számolható ki:

\begin{align} I_1 &=& -\frac{2}{R}U_1 +\frac{1}{R}U_2 +\frac{1}{R}U_4 \\ I_2 &=& \frac{1}{R}U_1 -\frac{4}{R}U_2 +\frac{1}{R}U_3 +\frac{2}{R}U_4 \\ I_3 &=& \frac{1}{R}U_2 -\frac{2}{R}U_3 +\frac{1}{R}U_4 \\ I_4 &=& \frac{1}{R}U_1 +\frac{2}{R}U_2 +\frac{1}{R}U_3 -\frac{4}{R}U_4 \end{align}

Számoljuk ki a potenciálokat, ha megmértük, hogy $I_1=4, I_2=4, I_3=0, I_4=-8$ [Amper] és $R=1$ [Ohm]!

Keressük meg az egyenletrendszer mátrixának sajátértékeit! Ha van nulla sajátérték, tegyük el a hozzá tartozó sajátvektort $v$-be, és számoljuk ki $A\cdot(U + c v)$ értékét, ahol $U$ a megoldásként kapott $U_i$ értékekből alkotott vektor! Mit figyelhetünk meg, és mivel magyarázhatjuk? Hány megoldása van az egyenletrendszernek?

Előállítható-e az egyenletrendszer valamely szempont szerint kiszemelt megoldása az $I_i$ értékekből alkotott $I$ vektor függvényében $M\cdot I$ alakban, és mi $M$ ekkor?

10 - Rugólánc ☠

Kössünk össze képzeletben rugókkal $N$ db $m_1$ és $N$ db $m_2$ tömegű tömegpontot egy egyenes mentén láncban, felváltva $k_1$ és $k_2$ direkciós erejű rugókkal a képen vázoltak szerint (A szaggatott vonallal jelölt egység a rendszer egy elemi cellája). Figyelem a szélső tömegpontokat mind a két oldalon $k_2$ direkciós erejű rugó rögzíti a falhoz.

Vizsgáljuk a rendszer hosszirányú rezgéseit !

Jelölje $x_{n,1/2}, n=0\ldots N$ a kék/piros tömegpontok egyensúlytól való kitérését! Némi algebrával a tömeg pontok mozgásegyenletei az alábbi egyenlet rendszer

\begin{eqnarray} m_1\ddot{x}_{n,1}=k_1(x_{n,2}-x_{n,1})+k_2(x_{n-1,2}-x_{n,1}) \\ m_2\ddot{x}_{n,2}=k_1(x_{n,1}-x_{n,2})+k_2(x_{n+1,1}-x_{n,2}) \end{eqnarray}

Írjuk át az egyenletrendszert az $x$ vektorra vonatkozó $m \ddot x = A\cdot x$ alakba, és keressük a megoldást $a\cdot e^{i\omega t}$ alakban!

Ebből összefüggést kapunk a körfrekvenciák és a sajátértékek közt.

  • Határozzuk meg a rezgési sajátfrekvenciákat és a saját módusokat!
  • Készítsünk egy interaktív ábrát mely segítségével adott paraméter értékeknél a spektrumot és egy kiszemelt rezgési módust jelenítjük meg!

Milyen kvalitatív különbségeket veszünk észre a spektrumban az alábbi négy paramétertartományban:

  • A tömegek egyenlőek és $ k_1 < k_2 $
  • A tömegek egyenlőek és $ k_1 > k_2 $
  • A rugók megeggyeznek és $ m_1 < m_2 $
  • A rugók megeggyeznek és $ m_1 > m_2 $