2  Línuleg algebra

Línuleg algebra er undirgrein stærðfræði sem fjallar um vigra og fylki, vigurrúm, línulegar jöfnur og jöfnuhneppi, t.d. \(5x + 3y = 13, x - y = 1\), og línuleg föll (eða línulegar varpanir), t.d. \(f(x,y) = 2x + 3y\). Meðal fleiri grunnhugtaka línulegrar algebru sem hér verða kynnt eru línulega háð og óháð mengi vigra, grunnar, norm, horn milli vigra og tölfræðileg föll af vigrum.

Þessi kafli byrjar á að rifja upp efni sem fjallað er um í 10. og 11. kafla í Fyrirlestrarnótum um Python m.a. skilgreiningar á vigrum og fylkjum, innfeldi og margföldun fylkis og vigurs. Nokkrum atriðum er bætt við fyrri umfjöllun í þessari upprifjun sem er í greinum 2.1 til 2.3 en í grein 2.4 og framhaldinu kemur svo alveg nýtt efni.

2.1  Vigrar og fylki

Skilgreining: Vigur

Vigur (vector) er runa af endanlega mörgum tölum sem notuð er sem ein heild og oft gefið nafn sem er lítill bókstafur (t.d. \(a\), \(b\)…).

Vigur með tölunum 1, 2 og 4 er ritaður:

\[\begin{split}(1,2,4)\,\text{ eða }\,[1,2,4]\,\text{ eða }\,\begin{pmatrix}1\\2\\4\end{pmatrix}.\end{split}\]

Fjöldi talna í vigri er kölluð vídd (dimension, eða size) vigursins og tölurnar í honum eru kallaðar stök hans (elements) eða hnit (coordinates). Stakið í \(i\)-ta sæti í vigri \(a\) er táknað \(a_i\). Vigur með \(n\) stök er oft kallaður \(n\)-vigur, og mengi allra \(n\)-vigra er táknað \(\Bbb{R}^n\). Ef \(a \in \Bbb{R}^n\) gildir sem sé

\[a = (a_1, a_2, \ldots, a_n)\]

Athugið

Þegar hugtakið vídd er notað um tölvufræðilegt fylki (array), eins og rætt var í grein 10.1.2 í Fyrirlestrarnótum um Python merkir það fjölda vísa (indices) sem notaðir eru til að vísa í einstök stök (vigrar eru þannig einvíð fylki), en þegar hugtakið er notað um vigur (hvort sem er í tölvufræði eða stærðfræði) merkir það fjölda staka í honum. Í tölvufræði er reyndar algengt að nota lengd (length) um fjölda staka í lista eða vigri, en af því að það er líka notað um rúmfræðilega lengd vigurs höldum við okkur við orðið vídd.

Python

Í NumPy er fyrsta stak vigurs númerað 0, þannig að um vigur a með n stök gildir
a = np.array([a[0], a[1], ..., a[n-1]])

Skilgreining: Fylki

Fylki (matrix) er tafla með tölum sem notuð er sem ein heild og oft gefið nafn sem er stór bókstafur (t.d. \(A\), \(B\)…).

Taflan er ýmist sett innan sviga eða hornklofa:

\[\begin{split}A = \begin{pmatrix}1 & 2 & 3\\6 & 7 & 8\end{pmatrix} = \begin{bmatrix}1 & 2 & 3\\6 & 7 & 8\end{bmatrix}\qquad B = \begin{pmatrix}5 & -1 \\ -1 & 6\end{pmatrix}\end{split}\]

Fylki hafa tiltekinn fjölda af línum (eða röðum) og (dálkum) (rows og columns) og fylki með \(m\) línum og \(n\) dálkum er sagt hafa stærð (size) \(m \times n\): Fylkið \(A\) að ofan er \(2 \times 3\) fylki (lesið 2 sinnum 3 fylki, eða á ensku 2 by 3 matrix). Fylki með jafnmargar línur og dálka (t.d. fylkið \(B\)) er kallað ferningsfylki.

Einstakar tölur í fylki eru kölluð stök og staðsetning þeirra er sæti (position), þannig að talan 8 í fylkinu \(A\) er sögð vera í sæti \((2,3)\) (línan kemur á undan dálkinum). Stak í línu \(i\) og dálki \(j\) í fylki \(A\) er táknað \(a_{ij}\); fyrir \(A\)-ið að ofan gildir \(a_{23} = 8\).

Python

Um fylki í NumPy var fjallað í 11. kafla í Fyrirlestrarnótum um Python. Þar var meðal annars útskýrt hvernig hægt er að búa til fylki og ná í einstök stök. Fylkið A að ofan væri búið til með A = np.array([[1,2,3],[6,7,8]]) og stakið \(a_{23}\) fengist með A[1,2] (munum að Python byrjar tölusetningu í 0).

Sýnidæmi: Birgðastaða og blóðþrýstingur

  1. Birgðastöðu af vörum mætti tákna með fylki, t.d. gætum við látið \(b_{ij}\) tákna birgðir af vöru \(i\) á degi \(j\); þá væri \(B\) birgðafylki.

  2. Blóðþrýsting \(n\) einstaklinga mætti tákna með \(n \times 2\) fylki \(P\), þar sem fyrri dálkurinn gefur slagþrýsting (systolic) og sá seinni aðfallsþrýsing (diastolic).

Æfing: Blóðþrýstingur

Blóðþrýstingur þriggja einstaklinga mældist 120/80, 140/90 og 105/65.

  1. Hvert er blóðþrýstingsfylkið \(P\)?

  2. Hver er stærð þess?

  3. Hvað er \(p_{22}\)?

  4. Í hvaða sæti er 80?

Vigra er hægt að leggja saman og draga hvern frá öðrum og einnig má margfalda vigur með tölu. Þetta er gert með því að beita tilsvarandi aðgerðum á einstök stök.

Skilgreining: Einfaldar viguraðgerðir

Ef \(x\) og \(y\) eru vigrar og \(c\) er tala þá gildir:

\[\begin{split}u &= x + y\text{ er vigur með }u_i = x_i + y_i\\ v &= x - y\text{ er vigur með }v_i = x_i - y_i\\ w &= cx\text{ er vigur með }w_i = cx_i\text{ í }i\text{-ta sæti}\end{split}\]

Á sama hátt má leggja saman og draga frá fylki og margfalda þau með tölu:

Skilgreining: Einfaldar fylkjaaðgerðir

Ef \(A\) og \(B\) eru fylki og \(c\) er tala þá gildir:

\[\begin{split}U &= A + B\text{ er fylki með }u_{ij} = a_{ij} + b_{ij}\\ V &= A - B\text{ er fylki með }v_{ij} = a_{ij} - b_{ij}\\ W &= cA\text{ er fylki með }w_{ij} = ca_{ij}\end{split}\]

Um samlagningu og frádrátt vigra og fylkja gilda víxlregla og tengiregla einnig gildir dreifiregla um margföldun með tölu:

Reglur um vigur- og fylkjaaðgerðir

Ef \(x\), \(y\) og \(z\) eru vigrar, \(A\), \(B\) og \(C\) eru fylki og \(\alpha\) er tala þá gildir:

\[\begin{split}x + y &= y + x\\ A + B &= B + A\\ \alpha(x + y) &= \alpha x + \alpha y\\ \alpha(A + B) &= \alpha A + \alpha B\\ x + (y + z) &= (x + y) + z\\ A + (B + C) &= (A + B) + C\\\end{split}\]

og í stað \(+\) má setja \(-\) í dreifireglunum:

\[\begin{split}\alpha(x - y) &= \alpha x - \alpha y\\ \alpha(A - B) &= \alpha A - \alpha B\\\end{split}\]

2.2  Ýmis vigur- og fylkjahugtök

Eitt af grundvallarhugtökum í línulegri algebru er innfeldi eða skalarmargfeldi (dot product, scalar product, inner product). Þetta hugtak kemur víða við sögu, og er m.a. undirstaða í fylkjamargföldun og fræðum um línulegar varpanir og vigurrúm. Innfeldi felur í sér að tveir vigrar eru margfaldaðir saman til að fá út tölu.

Innfeldi

Skilgreining: Innfeldi

Innfeldi tveggja \(n\)-vigra \(x\) og \(y\) er skilgreint sem

\[x \cdot y = x_1 y_1 + \ldots + x_n y_n = \sum_{i=1}^n x_i y_i\]

Ef \(x = (3,2)\) og \(y = (4,5)\) fæst sem sé \(x \cdot y = 3 \cdot 4 + 2 \cdot 5 = 22\).

Hér er dæmi um reglu sem sýnir hvernig nýta má innfeldi.

Regla: Innfeldi og horn milli rúmvigra

Ef \(x\) og \(y\) eru 2 eða 3-víðir rúmvigrar, hvorugur núll, þá gildir:

\[\begin{split}&x \cdot y = 0 \text{ þá og því aðeins að } x \text{ sé hornréttur á } y\\ &x \cdot y > 0 \text{ þá og því aðeins að hornið á milli } x \text{ og } y \text{ sé hvasst }\end{split}\]
../_images/innfeldi.png

Mynd 2.1: Innfeldi vigra og horn milli þeirra

Sýnidæmi: Einkunnir og söluverð

  1. Lát

    \[\begin{split}v_i &= \text{vægi námskeiðs } i = \frac{\text{ECTS-einingar námskeiðs } i}{\text{heildareiningar}} \\ e_i &= \text{einkunn í námskeiði } i\end{split}\]

    Þá er vegin meðaleinkunn allra námskeiða gefin með innfeldinu \(v \cdot e\)

  2. Lát

    \[\begin{split}s_i &= \text{söluverð á einingu af vöru } i\\ m_i &= \text{selt magn af vöru } i\end{split}\]

    Þá er heildarsöluverð gefið með innfeldinu \(s \cdot m\)

Æfing: Meðaleinkunn

Einkunnir Jóns haustið 2019 voru sem hér segir

Námskeið

Ein.

Einkunn

Hagnýt stærðfræðigreining

8

6.5

Tölvunarfræði 1

6

9.0

Stærðfræðimynstur

8

7.0

Vefforritun

8

8.0

  1. Ákvarðið vægisvigur \(v\) og einkunnarvigur \(e\)

  2. Notið innfeldi til að finna meðaleinkunn Jóns

Um innfeldi gilda víxlregla, tengiregla fyrir margfeldi með tölu og dreifiregla:

Reglur um innfeldi

\[\begin{split}x\cdot y &= y\cdot x \\ a(x\cdot y) &= ax\cdot y \\ x\cdot(y \pm z) &= x\cdot y \pm x\cdot z\end{split}\]

hér eru \(x\), \(y\) og \(z\) vigrar og \(a\) er tala.

Python

Um reikning innfeldis með NumPy var talað 11. kafla í Fyrirlestrarnótum um Python. og útskýrt að það er hægt að reikna með virkjanum @, fallinu np.dot eða aðferðinni dot.

Hornalínur

Skilgreining: Hornalína fylkis

Hornalína (diagonal) fylkis liggur frá horninu efst t.v. og niður á ská til hægri.

Þannig inniheldur hornalína fylkisins

\[\begin{split}\begin{pmatrix}1 & 2 & 3\\4 & 5 & 6\\7 & 8 & 9\end{pmatrix}\end{split}\]

stökin 1, 5 og 9.

Bylting

Svokölluð bylting (transpose) fylkis fæst með því að spegla því um hornalínuna (þá speglast \(a_{ij}\) í \(a_{ji}\), línur speglast í dálka og öfugt). Bylting fylkis \(A\) er táknuð með \(A^\text{T}\), lesið „A bylt“:

\[\begin{split}\begin{pmatrix}1 & 2 \\ 3 & 4\end{pmatrix}^\text{T} = \begin{pmatrix}1 & 3 \\ 2 & 4\end{pmatrix}\end{split}\]

Python

Í NumPy fæst hornalína fylkis A með np.diag(A) og bylta fylkið með A.T.

Sérstök fylki

Ýmsis fylki með stök sem uppfylla sérstök skilyrði hafa fengið sérstök nöfn.

  • Hornalínufylki (diagonal matrix) hefur öll stök utan hornalínunnar núll.

  • Efra þríhyrningsfylki (upper triangular matrix) hefur öll stök neðan hornalínu núll.

  • Neðra þríhyrningsfylki (lower triangular matrix) hefur öll stök ofan hornalínu núll.

  • Núllfylki (zero matrix) hefur öll stök núll.

  • Samhverft fylki (symmetric matrix) er fylki \(A\) með \(a_{ij} = a_{ji}\) fyrir öll \(i\) og \(j\), með öðrum orðum er \(A = A^\text{T}\).

\[\begin{split}\begin{gathered} \begin{pmatrix}\text{x} & & \\ & \text{x} & \\ & & \text{x} \end{pmatrix} \qquad \begin{pmatrix} \text{x} & \text{x} & \text {x} \\ & \text{x} & \text {x} \\ & & \text {x} \end{pmatrix} \qquad \begin{pmatrix} \text {x} & & \\ \text {x} & \text {x} & \\ \text{x} & \text {x} & \text {x} \end{pmatrix} \\[0.1cm] \text{Hornalínufylki, efra og neðra þríhyrningsfylki (núllin eru sýnd með eyðum)} \\[0.5cm] \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{pmatrix} \qquad \begin{pmatrix} 1 & 5 & 10 \\ 5 & 2 & 7 \\ 10 & 7 & 3 \end{pmatrix} \\[0.1cm] \text{Núllfylki og samhverft fylki} \end{gathered}\end{split}\]

Python:

Hornalínufylki með \(x_0, x_1,\ldots\) á hornalínunni fæst með np.diag(x). Efri þríhyrningur fylkis A fæst með np.triu(A) og sá neðri með np.tril(A), og \(n \times m\) núllfylki fæst með np.zeros(n,m).

2.3  Margföldun fylkis og vigurs

Ef \(A\) er \(m \times n\) fylki og \(x\) er \(n\)-vigur þá er margfeldi \(A\) og \(x\), táknað \(Ax\) eða \(A \cdot x\), \(m\)-vigur með \(i\)-ta stak jafnt og innfeldi \(i\)-tu línu \(A\) og \(x\). Nánar tiltekið gildir:

Skilgreining: Margfeldi fylkis og vigurs

\[\text{ef}\;y = Ax\;\text{þá er}\;y_i = \sum_{j=1}^n a_{ij}x_j\;\:(i=1,...,m)\]

Sýnidæmi: Margfeldi fylkis og vigurs

Margfeldi fylkisins \(\,A = \begin{pmatrix}1 & 2 & 3\\4 & 5 & 6\end{pmatrix}\,\) og vigursins \(\,x = (3, 1, -2)\,\) er

\[\begin{split}Ax = \begin{pmatrix} 1\cdot 3 + 2\cdot 1 - 3\cdot 2\\ 4\cdot 3 + 5\cdot 1 - 6\cdot 2\end{pmatrix} = \begin{pmatrix} 3 + 2 - 6\\ 12 + 5 - 12 \end{pmatrix} = \begin{pmatrix} -1\\ 5 \end{pmatrix}\end{split}\]

Athugið

Stundum er gerður greinarmunur á dálkvigri (column vector) og línuvigri (row vector), t.d. \(\begin{pmatrix}1\\2\end{pmatrix}\) og \((1, 2)\). Þegar \(x\) og \(y\) eru báðir dálkvigrar þá er innfeldið \(x \cdot y\) stundum táknað með \(x^\text{T}y\). Þá er nefnilega \(x^\text{T}\) línuvigur og ef við lítum á hann sem \(1 \times n\) fylki þá er margfeldi þess og vigursins \(y\) einmitt jafnt og innfeldið \(x\cdot y\).

Dreifireglur fyrir margfeldi fylkja og vigra

\[\begin{split}&A(x + y) = Ax + Ay\;\:\text{og}\\ &(A + B)x = Ax + Bx\end{split}\]

þar sem \(A\) og \(B\) eru fylki og \(x\) og \(y\) vigrar. Hér má setja \(-\) í stað \(+\).

Python

Ef A er NumPy fylki og x er NumPy vigur þá fæst b = margfeldi A og x með b = A @ x.

Æfing

Gefnir eru vigrarnir \(a = (2, 0, 3)\), \(b = (1, -1, 2)\) og \(c = (1, 2, 3)\) og fylkin

\[\begin{split}A = \begin{pmatrix}1 & 2\\3 & 3\\1 & 4\end{pmatrix}\;\text{og}\; B = \begin{pmatrix}2 & 3 & 0\\1 & 2 & 3\end{pmatrix}\end{split}\]

Reiknið:
1. \(a + b + c =\)
2. \(3a - 2b =\)
3. \(a\cdot b =\)
4. \(Bc =\)
5. \(A^\text{T}a =\)
6. \(2A + B^\text{T}\)

2.4  Línuleg föll og innfeldi

Í síðasta kafla var talað um tvívíð föll, sem eru föll frá planinu \(\Bbb{R}^2\) yfir í rauntölurnar \(\Bbb{R}\). Margvíð föll eru svo föll frá \(n\)-víðu rúmi \(\Bbb{R}^n\) yfir í rauntölurnar \(\Bbb{R}\). Varpmengið getur líka verið margvítt rúm. Ef það er \(m\)-vítt getum við ritað

\[f:\Bbb{R}^n \to \Bbb{R}^m.\]

Þegar varpmengið er margvítt er oft talað um \(f\) sem vörpun – hugtökin fall og vörpun (function og map) eru í raun samheiti, en það er algengt er að nota orðið fall þegar varpmengið er \(\Bbb{R}\) en vörpun ef það er \(\Bbb{R}^m\).

Síðar í kaflanum verður fjallað um hugtakið línuleg vörpun (linear map) sem er ákveðin tegund af vörpun sem varðveitir samlagningu og margföldun með tölu, og við munum komast að því að slíkar varpanir eru nátengdar fylkjum og margföldun með þeim.

Til að einfalda málið einskorðum við okkur til að byrja með við línuleg föll, sem varpa vigrum í tölur. Þessari skorðu verður svo aflétt í grein um línulegar varpanir síðar í þessum kafla.

Skilgreining: Línulegt fall

Fall \(f: \Bbb{R}^n \to \Bbb{R}\) nefnist línulegt ef það uppfyllir:

\[\begin{split}&f(x + y) = f(x) + f(y)\;\;\text{fyrir öll}\;x,y \in \Bbb{R}^n\;\;\text{og}\\ &f(ax) = af(x)\;\;\text{fyrir öll}\;a \in \Bbb{R}\;\text{og}\; x\in\Bbb{R}^n\end{split}\]

Það skiptir sem sé ekki máli hvort við leggjum saman vigra áður en við beitum fallinu, eða hvort við leggjum saman útkomurnar úr fallinu, og sama á við um margföldun með tölu.

Sýnidæmi: Sönnun á að fall sé línulegt

Fallið \(f:\Bbb{R}^2 \to \Bbb{R}\) sem skilgreint er með \(f(x) = x_1 + 2x_2\) er línulegt. Þetta má sjá með eftirfarandi útreikningum:

Lát \(x\) og \(y\) vera tvívíða vigra og \(z = x + y\). Þá fæst

\[\begin{split}&f(x + y) = f(z) = z_1 + 2z_2 = (x_1 + y_1) + 2(x_2 + y_2)\;\text{og}\\ &f(x) + f(y) = x_1 + 2x_2 + y_1 + 2y_2 = x_1 + y_1 + 2(x_2 + y_2)\end{split}\]

svo fyrra skilyrði skilgreiningarinnar er uppfyllt. Ennfremur fæst með \(u = ax\):

\[f(ax) = f(u) = u_1 + 2u_2 = ax_1 + 2ax_2 = a(x_1 + 2x_2) = af(x)\]

svo seinna skilyrðið er líka uppfyllt.

Fallið \(f:\Bbb{R}^2 \to \Bbb{R}\) sem sendir \(x\) í \(x\cdot x\) (innifeldi \(x\) með sjálfu sér) er hinsvegar ekki línulegt. Við sjáum til dæmis að ef \(x = (1,0)\) þá er \(f(2x) = (2,0) \cdot (2,0) = 4\) en \(2f(x) = 2\cdot (1,0)\cdot(1,0) = 2\) svo seinna skilyrðið er ekki uppfyllt.

Æfing

Hver eftirfarandi falla eru línuleg? Rökstyðjið svörin stuttlega ef þið getið.

  1. \(f(x) = \text{fyrsta stak } x\)

  2. \(f(x) = \text{meðaltal staka }x\)

  3. \(f(x) = \text{stærsta stak }x\)

  4. \(f(x) = \text{summa staka }x\)

  5. \(f(x) = x_2 - x_1\)

  6. \(f(x) = 0\) fyrir öll \(x\)

  7. \(f(x) = 1\) fyrir öll \(x\)

Dæmi um stuttan rökstuðning:
1. Línulegt, því að \(f(x+y)\) = fyrsta stak \((x + y)\) = \(x_1 + y_1\) = \(f(x) + f(y)\), og \(f(ax)\) = fyrsta stak \(ax\) = \(ax_1 = af(x)\)

Um línuleg föll gilda ýmsar reglur, sem við látum duga að setja fram, en sönnum ekki.

Regla: Línulegt fall af línulegri samantekt

Ef \(f\) er línulegt, \(a_1, a_2, \ldots, a_k\) eru tölur og \(x_1, x_2, \ldots, x_k\) eru vigrar, þá gildir:

\[f(a_1 x_1 + \ldots + a_k x_k) = a_1f(x_1) + \ldots + a_kf(x_k)\]

Skilyrðin í skilgreiningunni á línulegu falli, þar sem lagðir voru saman tveir vigrar, má sem sé útvíka í summu af fleiri vigrum, og sömuleiðis er hægt að sameina skilyrðin tvö í eitt skilyrði þar sem bæði er lagt saman og margfaldað með tölu.

Regla: Innfeldi gefur línulegt fall

Ef \(c\) er gefinn \(n\)-vigur og \(f\) er fall sem skilgreint er með \(f(x) = c\cdot x\) þá er \(f\) línulegt fall.

Regla: Línuleg föll eru innfeldi

Ef \(f\) er línulegt fall, \(f:\Bbb{R}^n \to \Bbb{R}\) þá er til \(n\)-vigur \(c\) þannig að \(f(x) = c\cdot x\) fyrir öll \(x\). Þetta er kallað innfeldisframsetning fallsins \(f\).

Innfeldi við fastan vigur gefur sem sé línulegt fall, og öll línuleg föll eru af þessu tagi.

Sýnidæmi: Innfeldisframsetning

Línulega fallið \(f(x) = x_1 + 2x_2\), hefur innfeldisframsetningu \(f(x) = (1,2) \cdot x\).

Æfing: Innfeldisframsetning

Hver er innfeldisframsetning fallsins \(f(x) = 3x_3 - 2x_2 - x_1\)?

Sýnidæmi: Sig brúar

Mörg föll sem koma við sögu í raunvísindum og verkfræði má nálga með línulegum föllum. Hér skoðum við eitt slíkt dæmi. Á brú verka kraftar \(w_1, w_2\) og \(w_3\) (þyngdir bíla í tonnum) á þremur gefnum stöðum. Þeir valda því að brúinn sígur um \(s\) millimetra í miðjunni. Samband \(s\) og \(w\) er gefið með línulegu falli:

\[s = c_1 w_1 + c_2 w_2 + c_3 w_3\]

Með aðferðum burðarþolsfræði er hægt að ákvarða stuðlana \(c_i\) útfrá nákvæmum upplýsingum um hönnun brúarinnar, en það er líka hægt að setja bíl af gefinni þyngd á staðina þrjá og mæla \(s\) fyrir hvern stað og ákvarða þannig \(c_i\).

../_images/bru.png

Brú sígur þegar bílar keyra yfir hana

Æfing: Bílar á brú

  1. Tveggja tonna bíll á stöðunum þremur sem merktir eru með \(w_1\), \(w_2\) og \(w_3\) á myndinni að ofan veldur sigi sem er 0.24 mm, 0.31 mm og 0.26 mm. Ákvarðið stuðana \(c_i, i=1,2,3\)

  2. Nú eru þrír bílar settir á staðina, 1.5 tonn, 0.8 tonn og 1.2 tonn. Hve mikið sígur brúin í miðjunni?

2.5  Taylor-nálgun

Rifjum upp úr grein 1.10 að stigull af \(n\)-víðu falli \(f\) er skilgreindur með:

\[\begin{split}\nabla f(x) = \begin{pmatrix} \dfrac{\partial f(x)}{\partial x_1}\\ \vdots\\ \dfrac{\partial f(x)}{\partial x_n} \end{pmatrix}\end{split}\]

Hér táknar \(\dfrac{\partial f(x)}{\partial x_i}\) hlutafleiðuna af \(f\) með tilliti til \(x_i\) (\(i\)-ta staks \(x\)). Stundum er hlutafleiða \(f\) í \(x\) m.t.t. \(x_i\) táknuð með \(f_i(x)\). Ef \(x\) vigur settur saman úr talnabreytum t.d. \(x = (u, v, w)\) eru hlutafleiðurnar líka stundum ritaðar með því að láta breytu vera lágvísi, t.d. \(f_u\), í stað \(\dfrac{\partial f}{\partial u}\). Enn einn rithátturinn fyrir afleiðu \(f\) m.t.t. \(x\) er \(D_x f(x,...)\).

Sýnidæmi: Stigull

Lát

\[f(x,y,z) = xy^3 + (2x^2 - z)^2\]

Þá er

\[\begin{split}\nabla f(x,y,z) = \begin{pmatrix} y^3 + 2(2x^2 - z) 4x\\ 3xy^2 + 0\\ 0 + 2(2x^2 - z)(-1) \end{pmatrix} = \begin{pmatrix} y^3 + 8x(2x^2 - z)\\ 3xy^2\\ -4x^2 + 2z \end{pmatrix}\end{split}\]

Æfing: Afleiður og stiglar

  1. Finnið \(f'(x)\), \(g'(x)\) og \(h'(x)\) ef:

    \[\begin{split}f(x) &= 2x^3 + 5 \\ g(x) &= 2ax^3 + b \\ h(x) &= \frac{(2x-1)^3}{3}\end{split}\]
  2. Lát

    \[f(x,y,z) = xyz + x^2y^2 - (z-x)^2\]

    Ákvarðið \(\nabla f(x,y,z)\)

  3. Lát \(f(x) = \dfrac{\sin x_1}{x_2}\). Ákvarðið \(\nabla f(x)\)

  4. Finnið \(D_z \dfrac{\exp(xyz)}{xyz}\) (munið að \(D\dfrac{u}{v} = \dfrac{u'v-v'u}{v^2}\))

Ef \(f\) er eitthvert gefið fall þá er ein leið til að nálga það með línulegu falli sú að nota setningu Taylors. Einvíðu útgáfuna af henni þekkja margir nemendur, en fyrir nálgun með beinni línu hljóðar hún svona:

Regla: Einvíð Taylor-setning

Ef \(a\) er gefin tala og \(f\) er diffranlegt fall þá gildir fyrir \(x\) nálægt \(a\)

\[f(x) \approx f(a) + f'(a)(x-a) \;\;\; \text{(einvíð Taylor-setning)}\]

Ef \(f\) er margvítt fall, \(f: \Bbb{R}^n \to \Bbb{R}\), og \(x\) er vigur nálægt vigrinum \(a\) þá má líka nálga \(f(x)\) línulega, en nú kemur stigull í stað afleiðu, og innfeldi í stað margföldunar:

Regla: Margvíð Taylor-setning

\[f(x) \approx f(a) + \nabla f(a) \cdot (x-a) \;\;\; \text{(margvíð Taylor-setning)}\]

Skilgreining: Taylor-nálgun

Fallið \(\hat{f}(x) = f(a) + \nabla f(a) \cdot (x-a)\) er nefnt línuleg Taylor-nálgun við \(f\) í \(a\).

../_images/taylor1.png

Mynd 2.2: Einvítt fall og línuleg Taylor-nálgun þess í \(a\)

Athugið að þegar \(f\) er einvítt fall þá er Taylor-nálgunin jafna beinnar línu sem snertir ferilinn sem táknar graf fallsins í \((a,f(a))\) (sbr. Mynd 2.2:), og að þegar \(f\) er tvívítt þá er hún jafna plans sem snertir yfirborðið sem táknar graf fallsins í \((a,f(a))\) (Mynd 2.3:).

../_images/snertiplan.png

Mynd 2.3: Flötur (graf tvíðvíðs falls) og snertiplan við hann.

Sýnidæmi: Taylor nálgun

Látum \(f(x) = x_1 + \exp(x_2 - x_1)\) og skoðum línulega Taylor-nálgun þess í \(a = (1,2)\). Við fáum:

\[f(a) = a_1 + \exp(a_2 - a_1) = 1 + \exp(1) = 3.718\]

ef reiknað er með þremur aukastöfum. Diffrun gefur svo:

\[\begin{split}\nabla f(x) &= \begin{pmatrix} 1 - \exp(x_2 - x_1)\\ \exp(x_2 - x_1) \end{pmatrix} \\ \nabla f(a) &= \begin{pmatrix} 1 - \exp(2-1)\\ \exp(2-1) \end{pmatrix}\\ &= (1 - \exp(1), \exp(1)) \\ &= (-1.718, 2.718)\end{split}\]

Ef þetta er sett inn í margvíðu Taylor-setninguna fæst:

\[\begin{split}\hat{f}(x) &= f(a) + \nabla f(a) \cdot (x - a) \\ &= 3.718 + (-1.718, 2.718) \cdot (x_1 - 1, x_2 - 2) \\ &= 3.718 - 1.718(x_1 - 1) + 2.718(x_2 - 2) \\ &= -1.718x_1 + 2.718x_2\end{split}\]

Eftirfarandi tafla sýnir \(f(x)\) og \(\hat{f}(x)\) fyrir nokkur gildi á \(x\) í grennd við \(a\)

\(x\)

\(f(x)\)

\(\hat{f}(x)\)

\((1,2)\)

3.7183

3.7183

\((0.96, 1.98)\)

3.7332

3.7326

\((0.85, 2.05)\)

4.17

4.11

\((1.25, 1.41)\)

4.44

4.40

Við sjáum að nálgunin er bara ágæt.

Æfing: Línuleg Taylor nálgun

  1. Ákvarðið \(\hat{f}(x)\), línulega Taylor-nálgun fallsins \(f(x) = 2\ln(x)+1\), í punktinum \(a=1\). Gerið töflu yfir \(f(x)\) og \(\hat{f}(x)\) fyrir \(x = 1, 1.1\) og \(1.2\)

  2. Finnið línulega Taylor-nálgun við tvívíða fallið \(f(x) = x_1^2 + x_1 x_2 + x_2^2\) í punktinum \(a = (1,2)\). Ákvarðið gildi \(f(x)\) og nálgunarinnar í punktinum \(x = (1.1, 2.1)\).

  3. Finnið Taylor-nálgun við þrívíða fallið \(f(x,y,z) = xyz + x\) í punktinum \((1,1,0)\) [þetta er æfing í því tilviki að viðfang þrívíðs falls sé ritað sem vigur \((x,y,z)\)].

2.6  Norm, fjarlægðir og horn

Í þessum kafla verður fjallað um norm, sem er mælikvarði á stærð vigurs, og skyld hugtök, fjarlægðir og horn milli vigra.

Norm

Eins og áður hefur verið bent á er hægt að túlka tvívíða og þrívíða vigra sem færslu í plani eða rúmi, eða ör sem hefur stefnu og lengd.

../_images/vigrar.png

Mynd 2.4: Tvívíðir vigrar sýndir sem örvar (eða færslur)

Það liggur beint við að leggja mælikvarða á stærð slíkra vigra með því að mæla lengd þeirra í rúminu. Þessa lengd má líka reikna með Pýþagórasarreglu útfrá hnitum vigranna og þá fæst:

\[\text{Lengd } x = \sqrt{x_1^2 + x_2^2}\]

Fyrir vigra í þrívíðu rúmi er hægt að beita Pýþagórasarreglu tvisvar til að reikna lengdina og fá:

\[\text{Lengd } x = \sqrt{x_1^2 + x_2^2 + x_3^2}\]

Nú liggur beint við hvernig hægt er að útvíkka þessar formúlur fyrir almenna \(n\)-víða vigra. Hugtakið sem fæst er nefnt Evklíðskt norm (Euclidean norm) eða 2-norm, og táknað með \(\|x\|\), eða stundum \(\|x\|_2\) til að aðgreina það frá öðrum aðferðum til að skilgreina norm sem verða reyndar ekki á dagskrá hér:

Skilgreining: Norm

Evklíðskt norm af \(n\)-vigri \(x\) er

\[\|x\| = \sqrt{x_1^2 + \ldots + x_n^2}\]

Normið er kennt við gríska stærðfræðingnn Evklíð sem skrifaði mikil verk og sannaði margar setningar um rúmfræði.

Python

Í NumPy má reikna norm vigurs x með fallinu norm í pakkanum numpy.linalg, sem sé t.d. import numpy.linalg as la og svo la.norm(x).

Athugið

Í Stærfræðiorðasafninu er norm þýtt með staðall eða lengd, en í þessum fyrirlestrarnótum er aðeins slakað á hreintungustefnunni.

Æfing: Norm

  1. Reiknið \(\|(3, 4)\|\)

  2. Reiknið \(\|(2, -4, -5, 6)\|\)

  3. Sýnið að fyrir öll horn \(\theta\) gildir að \(\|(\sin \theta, \cos\theta)\| = 1\)

Hægt er að leiða út fjölmargar reglur um norm, en hér verða örfáar látnar duga. Í eftirfarandi reglum eru \(x\) og \(y\) einhverjir \(n\)-vigrar og \(\alpha\) einhver rauntala:

Reglur um norm

\[\begin{split}&\|\alpha x\| = |\alpha|\cdot \|x\| \\ &\|x + y\| \leq \|x\| + \|y\| \text{ (þríhyrningsójafnan)} \\ &\|x\| \geq 0 \\ &\|x\| = 0 \text{ þ.þ.a.a } x = 0\end{split}\]

(þ.þ.a.a. er skammstöfun á „þá og því aðeins að“).

Æfing: Sönnun tveggja normreglna

  1. Sannið fyrstu regluna.

  2. Sannið þríhyrningsójöfnuna fyrir tvívíða vigra með því að teikna viðeigandi þríhyrning, og notfæra ykkur að stysta leið milli tveggja punkta er bein lína.

Fjarlægðir

Snúum okkur þá að fjarlægðum í n-víðu rúmi. Oft eru orðin vigur og punktur notuð sem samheiti, og það á við um okkar umfjöllun, þannig að það er hægt að tala um hvort sem er fjarlægð milli vigra eða fjarlægð milli punkta.

Ef \(a\) og \(b\) eru tveir punktar í plani eða þrívíðu rúmi þá er vigur frá \(a\) til \(b\) gefinn með \(b - a\):

../_images/fjarlægð.png

og þess vegna er fjarlægðin milli \(a\) og \(b\) gefin með \(\|b-a\|\), eða \(\|a-b\|\) sem er jafngilt. Því liggur beint við að skilgreina fjarlægð milli almennra vigra á sama hátt.

Skilgreining: Fjarlægð milli vigra

Ef \(a\) og \(b\) eru \(n\)-vigrar þá er fjarlægðin milli \(a\) og \(b\) gefin með:

\[\|a-b\|\]

Ekki er erfitt að sjá að ef lítill munur er á tilsvarandi stökum tveggja vigra þá verður fjarlægðin á milli þeirra lítil tala.

Sýnidæmi: Fjarlægð milli vigra

Fjarlægðin á milli vigranna \(x = (2,3,5,5)\) og \(y = (1,1,1,-5)\) er

\[\begin{split}\|x-y\| &= \|(1,2,4,10)\| \\ &= \sqrt{1^2 + 2^2 + 4^2 + 10^2} &= \sqrt{121} &= 11\end{split}\]

Fjarlægðir milli vigra koma við sögu í ýmsum verkefnum í reiknifræði, og ýmsum reikniritum, t.d. hinu velþekkta k-means reikniriti sem fjallað verður um síðar í þessum fyrirlestrarnótum, og sömuleiðis í verkefnum í máltækni t.d. í samanburði tveggja texta, eins og við skoðum nú.

Orðtíðni og fjarlægð milli vigra

Orðtíðnivigur fyrir skjal (eða vefsíðu) er gerður þannig að hvert orð í skjalinu er fært yfir á staðalsnið (t.d. nefnifall eintölu fyrir nafnorð), orðunum er raðað í stafrófsröð, og svo er talið hve oft hvert orð kemur fyrir. Oft er algengum orðum (t.d. og, er, á, í) sleppt og líka sjaldgæfum. Tökum sem dæmi vísupartinn:

Ástin er eins og sinueldur.
Ástin er segulstál.
Af litlum neista verður oft mikið bál.
Ástin er eins og hvítigaldur,
gagntekur líkama’ og sál.

Orðtíðnirit fyrir hana gæti verið:

ást

3

0.30

bál

1

0.10

eins

2

0.20

líkami

1

0.10

lítill

1

0.10

mikið

1

0.10

neisti

1

0.10

og miðdálkurinn gefur orðtíðnivigur. Ef bera á saman tvö eða fleiri skjöl er búinn til sameiginlegur orðalisti fyrir þau öll áður en orðin eru talin, og ef skjölin eru mislöng þá er sennilega betra að reikna orðtíðnina hlutfallslega, eins og í aftasta dálkinum í töflunni að ofan. Tvö skjöl sem fjalla um sama eða svipuð efni eru líklegri til að hafa stutt á milli orðtíðnivigra sinna heldur en skjöl um ólík efni.

Sýnidæmi: Fjarlægðir milli Wikipedíugreina

Búnir voru til orðtíðnivigrar fyrir þrjár greinar á Wikipediu, um Óskarsverðlaunin, Golden-globe-verðlaunin, og ofurskálina, og fjarlægðirnar á milli þeirra reiknaðar. Niðurstaðan var:

Óskarsverðlaun

Golden-globe

Ofurskál

Óskarsverðlaun

0

0.11

0.17

Golden-globe

0.11

0

0.18

Ofurskál

0.17

0.18

0

Hér sést að fjarlægðin milli greinanna um verðlaunin er minni en fjarlægðin frá þeim yfir í ofurskálargreinina.

Horn milli n-vigra

Í tvívíðu og þrívíðu rúmi er hægt að reikna horn milli tveggja vigra rúmfræðilega útfrá innfeldi og normum vigranna. Formúlan sem hægt er að sanna fyrir \(n = 2\) og \(n = 3\), er sú sem gefin er í eftirfarandi skilgreininingu, sem útvíkkar sem sé hugtakið horn þegar \(n > 3\):

Skilgreining: Horn milli vigra

Ef \(x\) og \(y\) eru \(n\)-vigrar þá er hornið milli þeirra gefið með

\[\theta = \arccos \frac{x \cdot y}{\|x\|\, \|y\|}\]

Python:

Í Python má nota fallið math.acos til að reikna arccos, @ til að reikna innfeldi og la.norm til að reikna norm. Ef mæla skal \(\theta\) í gráðum þarf auk þess að kalla á math.degrees í lokin. Ef x og y eru NumPy vigrar fæst hornið á milli þeirra með:

theta = math.degrees(math.acos(x@y/(la.norm(x)*la.norm(y)))

Í framhaldi af síðustu skilgreiningu og reglunni um innfeldi og horn milli rúmvigra í kafla 2.2 liggur sú næsta beint við að skilgreina hvenær almennir n-vigrar teljast hornréttir hvor á annan svo:

Skilgreining: Hornréttir vigrar

Vigrarnir \(x\) og \(y\), hvorugur núllvigur, eru sagðir hornréttir (perpendicular) hvor á annan, ritað \(x \perp y\), ef hornið á milli þeirra er 90°, þ.e.a.s. ef \(x \cdot y\) = 0.

Horn og líkindi með vigrum.

Í staðinn fyrir að mæla fjarlægð milli orðtíðnivigra er hægt að nota hornið á milli þeirra til að meta líkindi með tveimur skjölum eða vefsíðum.

Sýnidæmi: Horn milli Wikipedíugreina

Í eftirfarandi töflu hafa hornin milli orðtíðnivigra Wikipedíuskjalanna úr síðasta sýnidæmi verið reiknuð.

Óskarsverðlaun

Golden-globe

Ofurskál

Óskarsverðlaun

59°

87°

Golden-globe

59°

86°

Ofurskál

87°

86°

Við sjáum að eins og í sýnidæminu þar sem við notuðum fjarlægðir eru verðlaunagreinarnar mun nær hvor annarri en ofurskálargreininni samkvæmt hornmælikvarðanum. Öfugt við fjarlægðarkvarðann þá er óþarfi að reikna hlutfallslega orðtíðni því sömu horn fást með því að nota orðtíðnina beint (t.d. miðdálkinn í töflunni um tíðni orða í kvæðinu um ástina.

Æfing: Horn milli vigra

  1. Reiknið hornið á milli vigranna \((4,3)\) og \((1,0)\).

  2. Notið regluna um kósínus af mismun,

    \[\cos(a - b) = \cos a\cos b + \sin a \sin b\]

    til að sýna að skilgreiningin á horni milli \(x\) og \(y\) að framan gefur rúmfræðilega hornið þegar vigrarnir eru tvívíðir.

    Leiðbeining: Hornið á milli vigranna er mismunur stefnuhorna þeirra. Í pólhnitum verða hnit \(x\) og \(y\):

    \[\begin{split}x_1 &= r\cos a \qquad y_1 &= R \cos b\\ x_2 &= r \sin a \qquad y_2 &= R \sin b\end{split}\]

    þar sem \(r = \|x\|\), \(R = \|y\|\), \(a = {}\) stefnuhorn \(x\) og \(b = {}\) stefnuhorn \(y\).

[efni í vinnslu]

2.7  Tölfræðileg föll af vigrum

Meðaltal, dreifni og staðalfrávik

Meðaltal (mean eða average), dreifni (variance) og staðalfrávik (standard deviation). eru hugtök í tölfræði sem eru samt nátengd vigrum og línulegri algebru.

Skilgreining: Meðaltal

Meðaltal \(n\)-vigurs \(x\) er gefið með

\[\newcommand{\Var}{\operatorname{Var}}\newcommand{\std}{\operatorname{std}} \overline{x} = \frac{1}{n}\sum_{i=1}^n x_i\]

Skilgreining: Dreifni

Dreifni \(n\)-vigurs \(x\) er gefin með

\[\Var{x} = \frac{1}{n}\sum_{i=1}^n (x_i - \overline{x})^2\]

Skilgreining: Staðalfrávik

Staðaðfrávik \(n\)-vigurs \(x\) er gefið með

\[\std{x} = \sqrt{\Var{x}} = \sqrt{\frac{1}{n}\sum_{i=1}^n (x_i - \overline{x})^2}\]

Dreifni og staðalfrávik eru mælikvarði á það hve langt frá meðaltalinu einstök stök vigursins eru að jafnaði. Í staðinn fyrir að leggja saman önnur veldi af fráviki frá meðaltali væri mögulegt að leggja í saðinn saman tölugildi frávikanna, \(\frac{1}{n}\sum_{i=1}^n |x_i - \overline{x}|\), en ýmsar ástæður, bæði tölfræðilegar og reiknitæknilegar, mæla gegn því.

Athugið

Í tölfræði er algengt að skilgreina dreifni gagnasafns með formúlu þar sem deilt er með \(n-1\) en ekki \(n\):

\[\textrm{Dreifni gagnasafns} = \frac{1}{n-1}\sum_{i=1}^n (x_i - \overline{x})^2\]

(og tilsvarandi fyrir staðalfrávik). Þá verður dreifnin óbjöguð (unbiased) eins og það er kallað. Í línulegri algebru er (líklega) algengara að deila með \(n\).

Reglur um staðalfrávik

Ef \(x\) er \(n\)-vigur og \(a\) er rauntala þá gilda eftirfarandi reglur um staðalfrávik:

\[\begin{split}&{\bf 1.}\;\,\text{Ef } y_i = x_i + a \text{ fyrir öll } i \text{ þá er } \std(y) = \std(x)\\ &{\bf 2.}\;\std(ax) = |a|\std(x)\end{split}\]

Það breytir sem sagt ekki staðalfráviki að leggja fasta við öll stök vigurs, og ef vigur er margfaldaður með tölu, þá margfaldast staðalfrávikið með tölugildinu af tölunni.

Python

Með NumPy má reikna meðaltal, dreifni og staðalfrávik x með np.mean(x), np.var(x) og np.std(x), eða með x.mean(), x.var() og x.std().

Stundum hentar að staðla (standardize) gögn, en þá er meðaltal þeirra dregið frá og deilt með staðalfrávikinu, og þannig fæst útgáfa af gögnunum sem hefur meðaltal 0 og staðalfrávik 1. Stöðluð útgáfa vigurs \(x\) er stundum gefið nafnið \(z\) og/eða kölluð z-stig (z-score), sérstaklega ef \(x\) er vigur af normaldreifðum gögnum.

Skilgreining: Stöðlun

Stöðlun (standardization) vigurs \(x\) hefur \(i\)-ta stak

\[z_i = \frac{x_i - \overline{x}}{\std(x)}\]

Hægt er að hugsa sér að \(z_i\) mæli hve mörgum staðalfrávikum fyrir ofan eða neðan meðaltalið \(x_i\) er. Skylt þessu er þegar búnir eru til mælikvarðar með meðaltal og staðalfrávik sem eru rúnnaðar tölur, t.d. greindarvísitala sem skv. skilgreiningu hefur meðaltal 100 og staðalfrávik 15.

Æfing: Staðalfrávik og stöðlun

  1. Ákvarðið meðaltal, dreifni og staðalfrávik vigursins \(x = (0, 2, 3, 4, 6)\)

  2. Ákvarðið í framhaldi staðlaða útgáfu af \(x\)

  3. Notið lið 1 og reglur um staðalfrávik til að reikna staðalfrávik vigranna \(y = (2,4,5,6,8)\) og \(z = -3x\)

  4. Skoðið ensku Wikipedíugreinina um greindarvísitölur, sér í lagi línurit og töflur í henni.

Fylgnistuðull eða fylgni (correlation (coefficient)) er líka tölfræðilegt hugtak tengt línulegri algebru og vigrum. Reyndar eru til nokkrar leiðir til að reikna fylgni, en sú langalgengasta er að nota fylgnistuðul Pearsons og það er gert hér. Um hann má lesa nánar t.d. á Wikipedíu. Fylgni mælir samband tveggja vigra, hann er á bilinu \([-1,1]\) og hann er \(-1\) eða \(1\) ef skatterplot af vigrunum liggur á beinni línu, og \(0\) ef jafna bestu línu fyrir slíkt plot er lárétt.

Skilgreining: Fylgni

Fylgnistuðull tveggja \(n\)-vigra \(x\) og \(y\) er gefinn með:

\[r_{xy} = \frac{\sum_{i=1}^n (x_i - \overline{x})(y_i - \overline{y})}{\std(x) \std(y)}\]

Python

Til að reikna fylgni í Python má nota tölfræðipakkann í Scipy, t.d.:

import scipy.stats as st
x = np.array([1, 2, 3])
y = np.array([2, 3, 4])
r,p = st.pearsonr(x,y)

Hér skilar r fylgnistuðlinum, og p marktæknistigi hans eða \(p\)-gildi, sem í grófum dráttum eru líkurnar á að fá fylgni sem er \(r\) eða meiri að tölugildi fyrir tilviljun, ef vigrarnir tveir væru slembivigrar úr óháðum normaldreifingum.

Æfing

Eftirfarandi forritsbútur skilgreinir fall til að búa til tvo vigra sem hafa fylgni u.þ.b. r. Afritið forritsbútinn yfir í Júpíter og keyrið hann.

import numpy as np, matplotlib.pyplot as plt, numpy.random as rnd
np.set_printoptions(precision=2, floatmode='fixed', suppress=True)

def tvinormal(r,n):
    """skilar tveimur n-vigrum með meðaltal 0, dreifni 1,
       og fylgni r (um það bil)"""
    mu = np.array([0,0])
    Sig = np.array([[1,r],[r,1]])
    (x,y) = rnd.multivariate_normal(mu,Sig,n).T
    return x,y
  1. Bætið við forritið hér á undan skipunum sem búa til tvo tíu staka vigra með fylgni u.þ.b. 0.9 og reikna og prenta út raunverulega fylgni þeirra. Prentið líka út vigrana hlið við hlið (t.d. með print(np.c_[x,y])). Keyrið nokkrum sinnum. Prófið líka 100-staka vigra. Takið eftir að ef x[i] er stórt þá er y[i] oftast stórt líka og öfugt.

  2. Búið líka til reit til að búa til 500-staka vigra með fylgni u.þ.b. 0.9 og teiknið þá með plt.scatter (sbr. 9. kafla í Python-fyrirlestrarnótum). Hæfilegt er að nota punktastærð 5. Endurtakið fyrir nokkur mismunandi gildi á r (t.d. -0.99, 0, 0.4, 0.99).

2.8  Línulega háðir og óháðir vigrar

Skilgreining: Línuleg samantekt

Ef \(x_1\),…, \(x_k\) eru vigrar og \(c_1\),…, \(c_k\) eru tölur þá er vigurinn

\[y = c_1 x_1 + \ldots + c_k x_k\]

kallaður línuleg samantekt (linear combination) af vigrunum \(x_1\),…, \(x_k\)

Mengi allra línulegra samantekta af vigrum \(x_1\),…, \(x_k\) er sagt vera spannað (spanned) af vigrunum.

Sýnidæmi: Spann vigra

Ef \(u = (1,1,0)\) og \(v = (0,0,1)\) þá er \(y = 3u + 2v\) línuleg samantekt af \(u\) og \(v\). Mengið sem \(u\) og \(v\) spanna er lóðrétta planið í gegn um línuna \(y = x\). Þetta mengi má rita:

\[\{w \in \Bbb{R}^3 |\; w = au + bv \text{ fyrir einhver } a,b \in \Bbb{R}\}\]

Hér er mynd sem sýnir þessa vigra og tilheyrandi spannplan:

../_images/plotspan.png

Skilgreinum nú línulega háða (linearly dependent) vigra.

Skilgreining: Línulega háðir vigrar

Vigrar \(x_1\),…, \(x_k\) eru sagðir línulega háðir ef hægt er að rita einhvern þeirra sem línulega samantekt af hinum, þ.e.a.s. ef fyrir eitthvert \(j\) eru til tölur \(c_i\) þannig að:

\[\begin{split}x_j = \sum_{i=1\\i \neq j}^k c_i x_i\end{split}\]

Rauðu vigrarnir þrír á myndinni í sýnidæminu hér á undan eru sem sé línulega háðir, því \(3u + 2v\) er línuleg samantekt af \(u\) og \(v\). Það er ekki mjög erfitt að sjá að þrír vigrar í þrívíðu rúmi sem allir liggja í sama plani hljóta að vera línulega háðir. Um tvo samsíða vigra (sem liggja þar með á sömu línu), hvort sem er í tvívíðu eða þrívíðu rúmi, gildir líka að þeir eru línulega háðir.

Ef \(A\) er mengi af vigrum er talað um að það sé línulega háð ef vigrarnir í því eru línulega háðir. Stundum er skilyrðið í skilgreiningunni orðað öðruvísi, sbr. eftirfarandi setningu.

Setning: Skilyrði fyrir að vigrar séu línulega háðir

\(x_1\),…, \(x_k\) eru línulega háðir þ.þ.a.a. til séu tölur \(c_1,\ldots, c_k\) sem eru ekki allar \(0\) þannig að \(c_1 x_1 + \ldots + c_k x_k = 0\)

Vigrar eru sem sé línulega háðir þ.þ.a.a. til sé línuleg samantekt af þeim sem er núllvigurinn, með samantektarstuðlum sem eru ekki allir 0.

Eitt í viðbót sem rétt er að benda á: Ef \(A = \{x_1, \ldots, x_k\}\) er mengi af línulega háðum vigrum og \(y \notin A\) þá er \(A \cup \{y\}\) líka línulega háð. Skv. síðustu setningu höfum við \(c_1 x_1 + \ldots + c_k x_k = 0\) og við summuna má svo bæta \(0y\), og hún er ennþá jöfn \(0\).

Skilgreining: Línulega óháðir vigrar

Vigrar \(x_1\),…, \(x_k\) eru sagðir línulega óháðir (lindearly independent) ef þeir eru ekki línulega háðir.

Skv. setningunni að framan gildir sem sé að ef eina leiðin til að búa til línulega samantekt af vigrum sem er núll er sú að velja alla samantektarstuðlana sama sem núll þá eru vigrarnir línulega óháðir, en annars ekki. Þetta gefur okkur aðferð til að sanna að mengi vigra sé línulega óháð: Við byrjum á að rita:

\[c_1 x_1 + \ldots + c_k x_k = 0\]

og sýnum að það leiði til \(c_1 = c_2 = \ldots = c_k = 0\)

Sýnidæmi: Sönnun á að vigrar séu línulega óháðir

Sýnum að \(u=(1,2,3)\), \(v=(1,0,3)\) og \(w=(0,1,1)\) séu línulega óháðir. Gerum ráð fyrir að \(c_1u + c_2v + c_3w = 0\) sem sé

\[\begin{split}c_1\begin{pmatrix}1\\2\\3\end{pmatrix} + c_2\begin{pmatrix}1\\0\\3\end{pmatrix} + c_3\begin{pmatrix}0\\1\\1\end{pmatrix} = \begin{pmatrix}0\\0\\0\end{pmatrix}\end{split}\]

Þetta gefur

\[\begin{split}&(1)\quad c_1 + c_2 = 0,\\ &(2)\quad 2c_1 + c_3 = 0 \text{ og}\\ &(3)\quad 3c_1 + 3c_2 + c_3 = 0.\end{split}\]

Af \((3) - 3\cdot(1)\) fæst \(c_3=0\), svo \((2)\) gefur \(c_1=0\) sem með \((1)\) gefur að lokum \(c_2=0\). Þetta sýnir að \(u\), \(v\) og \(w\) eru línulega óháðir.

Tveir vigrar eru sagðir samsíða ef annar er margfeldi af hinum, og eins og að framan segir er par af ekki-núll vigrum línulega háð ef þeir eru samsíða, en annars er parið línulega óháð (þetta er bein afleiðing af skilgreiningu á línulega háðum vigrum).

Æfing: Línuleg samantekt og vigrapör

  1. Skrifið vigurinn \((8,3)\) sem línulega samantekt af \((4,1)\) og \((0,1)\) (Leiðbeining: Notið skilgreiningu á línulegri samantekt og leysið jöfnurnar sem hún gefur).

  2. Eru eftirfarandi pör vigra línulega óháð?

    \[\begin{split}&(1,2,3) \text{ og } (2,4,6) \\ &(0,2,1) \text{ og } (1,4,2) \\ &(0,-1,0) \text{ og } (0,4,0) \\ &(1,2,3) \text{ og } (2,3,4) \\ &(1,1,1) \text{ og } (7,7,7)\end{split}\]

Hér er að lokum setning sem segir að ekki sé hægt að skrifa gefinn vigur sem línulega samantekt óháðra vigra á fleiri en einn veg. Við breytum aðeins útaf venjunni, að sleppa sönnunum, og látum sönnun á þessari fylgja.

Setning: Einkvæmni línulegra samantekta

Ef \(x_1\),…, \(x_k\) eru línulega óháðir og

\[\begin{split}y &= c_1 x_1 + \ldots + c_k x_k \\ &= d_1 x_1 + \ldots + d_k x_k \\\end{split}\]

þá er \(c_i = d_i\) fyrir öll \(i\).

Sönnun setningar

Gerum ráð fyrir að \(y = c_1 x_1 + \ldots + c_k x_k = d_1 x_1 + \ldots + d_k x_k\). Það má færa alla \(d\)-liðina fram fyrir seinna jafnaðarmerkið og það gefur \(c_1 x_1 - d_1 x_1 + \ldots + c_k x_k - d_k x_k = 0\) þ.e.a.s. \((c_1 - d_1) x_1 + \ldots + (c_k - d_k) x_k = 0\). Þar sem \(x_i\)-in eru línulega óháð þýðir þetta að allir samantektarstuðlarnir hljóta að vera 0, sem sé \(c_1 - d_1 = c_2 - d_2 = \ldots = c_k - d_k = 0\) sem gefur \(c_i = d_i\) fyrir öll \(i\).

2.9  Grunnar og liðun

Grunnur (basis, fleirtala bases) er grunnhugtak í línulegri algebru.

Skilgreining: Grunnur

Grunnur í \(n\)-víðu rúmi er mengi af \(n\) vigrum í rúminu, \(\{a_1, \ldots, a_n\}\), sem er línulega óháð.

Rúmið í skilgreiningunni getur verið \(\Bbb{R}^n\) en það getur líka verið svokallað hlutrúm, t.d. bein lína í gegn um \((0,0)\) í \(\Bbb{R}^2\) (sem er einvítt hlutrúm, \(n=1\)) eða plan í gegn um \((0,0,0)\) í \(\Bbb{R}^3\), eins og t.d. planið á myndinni í grein 2.8 (tvívítt hlutrúm, \(n=2\)).

Áður en við útskýrum mikilvægi hugtaksins grunnur setjum við fram setningu um hámarksstærð línulega óháðra mengja, nefnilega:

Setning: Hámarksstærð grunns

Ef \(a_1, a_2, \ldots, a_k\) eru línulega óháðir vigrar \(n\)-víðu rúmi þá er \(k \leq n\).

Línulega óháð mengi \(n\)-vigra hefur sem sé í mesta lagi \(n\) stök. Setningin er bein afleiðing af velþekktri setningu í línulegri algebru sem nefnist mynd- og núllvíddarsetningin (rank-nullity theorem), en það er líka hægt að sanna hana beint með þrepun á \(n\), sem samt verður ekki gert hér.

Setningin segir til dæmis að þrír vigrar í plani hljóti að vera línulega háðir, og sömuleiðis fjórir vigrar þrívíðu rúmi. Eftirfarandi mynd sýnir þrjá vigra í \(\Bbb{R}^2\), \(x\), \(y\) og \(z\), engir tveir samsíða.

../_images/mynd-og-núllvídd.png

Mynd 2.5: Línulega háðir vigrar

Á myndinni sést hvernig hægt er að skrifa einn vigurinn (nefnilega \(y\)) sem línulega samantekt af hinum tveimur, svo vigrarnir þrír eru línulega háðir. Byrjað er á að teikna \(x\) og \(z\) út frá endunum á \(y\) og svo eru þeir framlengdir þar til þeir skerast. Það gildir greinilega að \(ax = y + bz\) svo \(y = ax - bz\). Ef einhverjir tveir vigranna væru samsíða þá væru þeir, og þar með allir þrír, línulega háðir.

Snúum okkur þá aftur að grunnum, og einni aðalsetningunni um þá, sem segir að hægt sé að skrifa hvern vektor á einkvæman hátt sem línulega samantekt af grunnvigrum. Sönnunin er auðveld og við látum hana fylgja.

Regla: Einkvæmni grunnsamantektar

Sérhvern vigur \(b\) í \(n\)-víðu rúmi má rita sem línulega samantekt af grunni \(a_1, \ldots, a_n\) fyrir rúmið á nákvæmlega einn veg.

Sönnun:

Skv. síðustu setningu er mengið \(\{a_1, \ldots, a_n, b\}\) línulega háð svo til eru tölur \(c_i\) og \(c\) sem eru ekki allar núll, þannig að

\[c_1 a_1 + \ldots + c_n a_n + c b = 0\]

\(c\) getur ekki verið \(0\) því þá væru einhver af \(c_i\)-unum ekki 0 og með því væri komin línuleg samantekt af \(a_i\)-unum sem er 0 með samantektarstuðlum sem eru ekki allir 0, í mótsögn við að \(a_i\)-in séu grunnur. Því má deila í gegn um jöfnuna með \(c\) og það gefur:

\[b = -\frac{c_1}{c}a_1 - \ldots - \frac{c_n}{c}a_n\]

sem er línulega samantektin sem átti að búa til. Skv. setningunni aftast í grein 2.8 eru engar fleiri leiðir til að rita þessa samantekt.

Þegar vigur \(b\) er skrifaður sem línuleg samantekt af grunnvigrum,

\[b = c_1 a_1 + \ldots + c_n a_n\]

er talað um liðun (expansion) \(b\) eða að \(b\) hafi verið liðaður (expanded) með grunnvigrunum.

Sýnidæmi: Sönnun á að vigramengi sé grunnur

\(G = \{(1,1), (1,0)\}\) er línulega óháð og hefur tvö stök og er þar með grunnur fyrir \(\Bbb{R}^2\) því að ef

\[\begin{split}c_1 \begin{pmatrix} 1\\1 \end{pmatrix} + c_2 \begin{pmatrix} 1\\0 \end{pmatrix} = \begin{pmatrix} 0\\0 \end{pmatrix}\end{split}\]

þá er \(c_1 + c_2 = 0\) og \(c_1 = 0\) sem gefur \(c_1 = c_2 = 0\).

Sýnidæmi: Liðun vigra

Liðum tvo vigra með \(G\) og notum smávegis mismunandi rithátt:

  1. \(\begin{pmatrix} 3\\2 \end{pmatrix} = c_1\begin{pmatrix} 1\\1 \end{pmatrix} + c_2\begin{pmatrix} 1\\0 \end{pmatrix}\) gefur \(3 = c_1 + c_2\) og \(2 = c_1\), þ.e.a.s. \(c_1 = 2\) og \(c_2 = 1\).

  2. \((-3,5) = \alpha(1,1) + \beta(1,0)\) gefur \(\alpha = 5\) og \(\beta = -8\), sem sé \((-3,5) = 5(1,1) - 8(1,0)\).

Æfing: Liðun vigra og sönnun á að mengi sé grunnur

  1. Liðið \((5,4)\) með grunnvigrunum \((1,2)\) og \((2,1)\).

  2. Mynda vigrarnir \((1,0,0)\), \((0,1,0)\) og \((1,1,0)\) grunn fyrir \(\Bbb{R}^3\)? Rökstyðjið svarið.

  3. Hvað með \((1,1,0)\) og \((1,2,0)\)?

  4. En \((1,0,0)\), \((1,1,0)\) og \((1,1,1)\)?

2.10  Venjulegir einingavigrar og grunnar þeirra

Vigur með lengdina 1 er kallaður einingavigur (unit vector). Í planinu \(\Bbb{R}^2\) eru vigrarnir \((1,0)\) og \((0,1)\), sem stefna út eftir \(x\)-ás og \(y\)-ás kallaðir venjulegu einingavigrarnir (standard unit vectors) eða bara einingavigrarnir ef ekki er hætta á misskilningi. Algengt er að tákna þessa vigra með \(e_1\) og \(e_2\) og það verður gert hér (sjá Mynd 2.6: hér rétt fyrir neðan). Eftirfarandi skilgreining útvíkkar þetta svo yfir í \(n\)-vítt rúm.

Skilgreining: Einingavigur

Vigur í \(\Bbb{R}^n\) með \(i\)-ta stak jafnt og \(1\) og öll hin stökin \(0\) er kallaður (venjulegur) einingavigur og táknaður \(e_i\).

Sýnidæmi: Einingavigrar í \(\Bbb{R}^3\)

Í \(\Bbb{R}^3\) eru þrír einingavigrar, nefnilega \(e_1 = (1,0,0)\), \(e_2 = (0,1,0)\) og \(e_3 = (0,0,1)\).

Í \(\Bbb{R}^n\) eru \(n\) einingavigrar og það er ekki erfittð sanna að þeir mynda grunn, \(G = \{e_1, \ldots, e_n\}\) sem er kallaður venjulegi einingagrunnurinn eða bara einingagrunnurinn. Það er sérstaklega auðvelt að liða vigur með einingagrunnvigrunum. Ef \(x = (x_1, x_2, \ldots, x_n) \in \Bbb{R}^n\) þá gildir nefnilega:

\[\begin{split}x &= \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{pmatrix} = x_1 \begin{pmatrix} 1 \\ 0 \\ \vdots \\ 0 \end{pmatrix} + x_2 \begin{pmatrix} 0 \\ 1 \\ 0 \\ \vdots \\ 0 \end{pmatrix} + \ldots + x_n \begin{pmatrix} 0 \\ \vdots \\ 0 \\ 1 \end{pmatrix} \\ &= x_1 e_1 + x_2 e_2 + \ldots + x_n e_n\end{split}\]
../_images/ein-vigrar.png

Mynd 2.6: Venjulegu einingavigrarnir í \(\Bbb{R}^2\) og liðun \(u = (2,3)\) með þeim

Æfing: Einingavigrar \(\Bbb{R}^4\)

  1. Hver er venjulegi einingagrunnurinn fyrir \(\Bbb{R}^4\)?

  2. Liðið \((3,5,-1,2)\) með honum.

2.11  Þverstaðlaðir grunnar

Ef allir vigrar grunns eru hornréttir hver á annan er grunnurinn kallaður hornréttur (orthogonal). Venjulegi einingagrunnurinn er hornréttur, og auk þess eru allir vigrar hans með einingalengd því augljóslega gildir \(\|e_i\| = 1\) fyrir öll \(i\). Fleiri grunnar hafa þann eiginleika að vera hornréttir og með vigra af einingalengd.

Skilgreining:

Grunnur \(\{a_1, \ldots, a_n \}\) sem uppfyllir \(a_i \perp a_j\) fyrir öll \(i \neq j\) og \(\|a_i\| = 1\) fyrir öll \(i\) er kallaður þverstaðlaður (orthonormal) (stundum er notað orðið einingaréttur).

../_images/ein.réttir-vigrar.png

Mynd 2.7: Þverstaðlaður grunnur fyrir \(\Bbb{R}^2\) og vigur sem hægt er að liða með honum.

Almennt er ekki auðvelt að finna liðun vigurs með tilteknum grunni, en í síðustu grein sáum við að fyrir venjulega einingagrunninn er það fyrirhafnarlaust. Með þverstöðluðum grunnum er það líka fremur einfalt eins og eftirfarandi regla sýnir:

Regla: Liðun með þverstöðluðum grunni

Ef \(\{a_1, \ldots, a_n\}\) er þverstaðlaður grunnur og \(u\) er \(n\)-vigur þá gildir

\[u = (a_1 \cdot u)a_1 + \ldots + (a_n \cdot u)a_n\]

Það er sem sé hægt að liða \(u\) með grunnvigrunum \(a_1, \ldots, a_n\) með liðunarstuðlum sem gefnir eru með innfeldi þeirra og \(u\).

Sýnidæmi: Þverstöðluð liðun

Liðum vigurinn \(u = (2,3)\) á Mynd 2.7: með \(a_1 = (\frac{\sqrt{3}}{2}, \frac{1}{2})\) og \(a_2 = (-\frac{1}{2}, \frac{\sqrt{3}}{2})\). Við reiknum

\[\begin{split}c_1 &= a_1 \cdot u = \frac{\sqrt{3}}{2} \cdot 2 + \frac{1}{2} \cdot 3 = \sqrt{3} + \frac{3}{2} \approx 3.232 \\ c_2 &= a_2 \cdot u = -\frac{1}{2}\cdot 2 + \frac{\sqrt{3}}{2} \cdot 3 = -1 + \frac{3}{2}\sqrt{3} \approx 1.598\end{split}\]

og þá gildir sem sé \(u = c_1 a_1 + c_2 a_2 \approx 3.232 a_1 + 1.598 a_2\)

Æfing: Sönnun á að mengi vigra sé þverstaðlaður grunnur

  1. Sýnið að vigrarnir \(a_1\) og \(a_2\) á Mynd 2.7: séu þverstaðlaður grunnur. Það þarf að sanna þrennt: (i) Að þeir séu grunnur, (ii) að þeir hafi einingalengd, og (iii) að þeir séu innbyrðis hornréttir.

  2. Sýnið að vigrarnir \(a_1 = (0.6, 0.8, 0)\), \(a_2 = (-0.8, 0.6, 0)\) og \(a_3 = (0, 0, 1)\) gefi þverstaðlaðan grunn fyrir \(\Bbb{R}^3\).

  3. Liðið vigurinn \((1,2,3)\) með vigrunum í lið 2.

Reglan hér á undan gildir líka um þverstaðlaða vigra sem ekki spanna allt rúmið í örlítið breyttri mynd.

Regla: Liðun með mengi þverstaðlaðra vigra

Ef \(a_1, \ldots, a_k\) eru þverstaðlaðir \(n\)-vigrar með \(k < n\) og \(u\) er gefinn \(n\)-vigur þá er hægt að skrifa \(u\) sem línulega samantekt af \(a_1,\ldots, a_k\) þ.þ.a.a.

\[(*)\qquad\qquad u = (a_1 \cdot u)a_1 + \ldots + (a_k \cdot u)a_k \qquad\qquad{ }\]

Þessi regla gefur okkur sem sé aðferð til að kanna hvort tiltekinn vigur sé í rúminu sem gefnir þverstaðlaðir vigrar spanna. Við tökum eftir að þá-hluti setningarinnar er augljós, sem sé að ef \((*)\) gildir þá sé \(u\) línuleg samantekt af \(a_i\)-unum, en hin áttin (því-aðeins-parturinn) mundi þurfa smá sönnun.

Sýnidæmi: Er punktur í gefnu plani?

Vigrarnir \(a = (0.48, 0.64, 0.60)\) og \(b = (0.8, -0.6, 0)\) eru þverstaðlaðir (Æfing: Sýnið það) og skilgreina plan í \(\Bbb{R}^3\):

\[P = \{x = s a + t b \, \| \, s,t \in \Bbb{R} \}\]
  1. Könnum hvort punkturinn \(A = (4, 2, 3)\) sé í planinu með síðustu reglu. Við reiknum \(c_1 = A\cdot a = 4\cdot 0.48 + 2\cdot 0.64 + 3 \cdot 0.6 = 5\) og \(c_2 = A\cdot b = 4\cdot 0.8 - 2\cdot 0.6 = 2\) og í framhaldi \(5a + 2b = (2.4, 3.2, 3) + (1.6, -1.2, 0) = (4, 2, 3)\). Þar sem útkoman er \(A\) er niðurstaðan sú að \(A\) er í planinu.

  2. Könnum með sama hætti punktinn \(B = (6, 3, 2)\). Við reiknum \(c_1 = 6\), \(c_2 = 3\) og \(6a + 3b = (5.28, 2.04, 3.6)\). Útkoman er ekki \(B\) svo \(B\) er ekki í planinu.

Þverstaðlaðir grunnar eru náskyldir svonefndum hornréttum fylkjum og QR-þáttun, sem vonandi kemst á dagskrá síðar í þessum fyrirlestranótum. Slík þáttun nýtist í fjölbreyttum verkefnum í reiknifræði, t.d.:

lausn línulegra jöfnuhneppa (solution of linear equations)
minnstu kvaðrata verkefnum (ordinary least squares problems)
eigingildisverkefnum (eigenvalue problems) og
kvaðratískri bestun (quadratic programming)

en lausn slíkra reiknifræðilegu verkefna nýtist aftur í fjölbreyttum verkefnum í gagnavísindum, verkfræði og raunvísindum.

2.12  Línulegar samantektir, jöfnuhneppi og tilvist lausna

Áður en lengra er haldið ætti lesandi að skoða kafla 11.3 í Fyrirlestrarnótum um Python, sem fjallar um lausn jöfnuhneppa.

Smá umhugsun leiðir í ljós að margföldun fylkis og vigurs jafngildir því að taka línulega samantekt af dálkum fylkisins með samantektarstuðlum sem eru stök vigursins. Hér er talnadæmi, en reglan gildir greinilega almennt:

\[\begin{split}\begin{pmatrix} 2 & 3 & 4 \\ 1 & 0 & 2 \end{pmatrix} \begin{pmatrix} 5 \\ 6 \\ 7 \end{pmatrix} &= 5 \begin{pmatrix} 2 \\ 1 \end{pmatrix} + 6 \begin{pmatrix} 3 \\ 0 \end{pmatrix} + 7 \begin{pmatrix} 4 \\ 2 \end{pmatrix}\\ &= \begin{pmatrix} 10 \\ 5 \end{pmatrix} + \begin{pmatrix} 18 \\ 0 \end{pmatrix} + \begin{pmatrix} 28 \\ 14 \end{pmatrix} = \begin{pmatrix} 56 \\ 19 \end{pmatrix}\end{split}\]

Af þessu leiðir að það að leysa jöfnuhneppið \(Ax = b\) jafngildir því að finna stuðla þar sem \(b\) er skrifað sem línuleg samantekt af dálkum \(A\). Við höfum séð að þetta er hægt á nákvæmlega einn veg ef dálkar fylkisins eru línulega óháðir og mynda grunn fyrir \(\Bbb{R}^n\). Ef dálkarnir eru línulega háðir þá er oftast engin lausn, en ef hún er til þá eru til óendanlega margar lausnir.

Setning: Jöfnuhneppi með einkvæma lausn

\(n \times n\) jöfnuhneppi \(Ax = b\) hefur nákvæmlega eina lausn þ.þ.a.a. dálkar fylkisins séu grunnur fyrir \(\Bbb{R}^n\). Annars er annaðhvort engin eða óendanlega margar lausnir.

Skoðum dæmi, nefnilega lausn á jöfnuhneppinu

\[\begin{split}x + 2y &= 3 \\ 2y + z &= 2 \\ x - z &= 0\end{split}\]

Hér er auðvelt að sjá, með því að draga jöfnu 2 frá jöfnu 1, að \(x - z = 1\), en hó, síðasta jafnan segir að \(x - z = 0\) svo eitthvað verður erfitt að leysa þetta hneppi, augljóst er að það hefur enga lausn. Fylki jöfnuhneppisins er

\[\begin{split}\begin{pmatrix} 1 & 2 & 0 \\ 0 & 2 & 1 \\ 1 & 0 & -1 \end{pmatrix}\end{split}\]

og fyrsti dálkurinn er hálfur miðdálkurinn mínus sá aftasti, \((1, 0, 1)\) = \(\frac{1}{2}(2, 2, 0) - (0, 1, -1)\), svo dálkarnir eru línulega háðir. Ef við breytum síðustu jöfnunni í \(x - z = 1\) þá er fylkið óbreytt og nú bregður svo við að það er til lausn, nefnilega \(x = 1, y = 1, z = 0\). En það eru til fleiri lausnir, t.d. \(x = 2, y = \frac{1}{2}, z = 1\) og \(x = 3, y = 0, z = 2\), og samkvæmt setningunni að framan eru þær óendanlega margar.

Ferningsfylki með línulega háða dálka er kallað sérstætt (singular) en ef dálkarnir eru línulega óháðir er fylkið kallað andhverfanlegt (non-singular).

Hér er svo setning sem sem segir að við getum alveg eins skoðað línur fylkis eins og dálka þess til að finna út hve margar lausnir jöfnuhneppi hefur:

Setning: Dálkar, línur og grunnar

Línur ferningsfylkis eru grunnur þ.þ.a.a. dálkar fylkisins séu grunnur

Æfing: Jöfnuhneppi og grunnar

  1. Leysið jöfnuhneppið

    \[\begin{split}&x + y\;+ &z\;&= 6 \\ 2&x + y + 2&z\;&= 10 \\ 3&x + y\;+ &z\;&= 8\end{split}\]

    með því að byrja á að draga fyrstu jöfnuna tvöfalda frá annarri jöfnunni og þrefalda frá þeirri þriðju. Eru vigrarnir \((1,1,1)\), \((2,1,2)\) og \((3,1,1)\) grunnur? Rökstyðjið.

  2. Sýnið að vigrarnir \((1, 2, 3)\), \((1, 1, 1)\) og \((3, 4, 5)\) séu línulega háðir (með því að skrifa einn þeirra sem línulega samantekt af hinum tveimur).

  3. Búið til jöfnuhneppi úr vigrunum í lið 2 sem hefur enga lausn.

  4. Búið til jöfnuhneppi úr sömu vigrum sem hefur óendanlega margar lausnir.

Python:

Þó að jöfnuhneppi hafi enga stærðfræðilega lausn getur það gerst að NumPy finni lausn sem er með mjög stórum tölum, en stundum gefur það villumeldingu og segir LinAlgError: Singular matrix.

Æfing: Sérstætt jöfnuhneppi

Prófið að nota NumPy til að leysa jöfnuhneppi \(Ax = \begin{pmatrix}1\\1\end{pmatrix}\) með \(A = \begin{pmatrix}1&2\\5&10\end{pmatrix}\) annarsvegar og \(A = \begin{pmatrix}1&2\\2&4\end{pmatrix}\) hinsvegar.

Þegar NumPy þykist geta leyst jöfnu sem hefur enga lausn er það vegna tölulegrar ónákvæmni í reikningum: NumPy reiknar ekki með óendanlega mörgum aukastöfum.

Python:

Til að sjá hvort fylki sé tölulega sérstætt er hægt að nota fallið la.matrix_rank, en það skilar myndvídd (rank) fylkisins, sem er vídd rúmsins sem dálkar þess spanna, að teknu tilliti til tölulegrar óvissu. Ef dálkar \(n\)-dálka fylkis eru u.þ.b. línulega háðir skilar matrix_rank tölu sem er minni en \(n\).

Æfing: Myndvídd

Reiknið myndvídd fylkisins \(\begin{pmatrix}1&2\\5&10\end{pmatrix}\) með NumPy. Prófið líka að reikna myndvíddina ef stakinu 5 er breytt í 5 + 1e-15, 5 + 1e-14 og 5 + 1e-13.

2.13  Fylkjaalgebra

Hér að framan og í 11. kafla í Python fyrirlestrarnótunum höfum við séð ýmsar aðgerðir og reglur tengdar vigrum og fylkjum sem minna á sambærilegar aðgerðir og reglur fyrir tölur: samlagningu vigra, innfeldi, margföldun fylkis og vigurs, víxlreglur, tengireglur og dreifireglur.

Umfjöllun um aðgerðir og reglur af slíku tagi tilheyrir undirgrein stærðfræði sem kölluð er algebra. Stundum koma við sögu hugtök eins og samlagningarandhverfa (additive inverse), margföldunarandhverfa (multiplicative inverse), núllstak (null element) og einingarstak (identity element), og um sum þessara hugtaka var talað í fyrrnefndum 11. kafla. Hér verður umfjöllunin þar dýpkuð dálítið, þó án þess að farið verði út í nákvæma stærðfræðilega umfjöllun.

Smávegis skoðun á fylkjaalgebru getur samt hjálpað til við að skilja fylki betur og við byrjum á að rifja upp nokkur atriði úr köflum 11.1, 11.2 og 11.5 í Fyrirlestrarnótum um Python.

Skilgreining: Fylkjamargföldun

Margfeldi \(m \times p\) fylkis \(A\) og \(p \times n\) fylkis \(B\) er \(m \times n\) fylkið \(C = AB\) sem hefur \((i,j)\)-stak

\[c_{ij} = \sum_{k=1}^p a_{ik} b_{kj}\]

Sýnidæmi: Margfeldi fylkja

Reiknum margfeldi tveggja \(2 \times 2\) fylkja \(A\) og \(B\):

\[\begin{split}\begin{pmatrix}1 & 2 \\ 3 & 4 \end{pmatrix} \begin{pmatrix}5 & 6 \\ 0 & -2 \end{pmatrix}\end{split}\]

og fáum \(c_{11} = 1 \cdot 5 + 2 \cdot 0 = 5\), \(c_{12} = 1 \cdot 6 - 2 \cdot 2 = 2\), \(c_{21} = 3 \cdot 5 + 4 \cdot 0 = 15\) og \(c_{22} = 3 \cdot 6 - 4 \cdot 2 = 10\), sem sé

\[\begin{split}C = \begin{pmatrix}5 & 2 \\ 15 & 10 \end{pmatrix}\end{split}\]

Skoðun á skilgreiningunni að framan sýnir að \(j\)-ti dálkur \(C\) fæst með því að margfalda saman \(A\) og \(j\)-ta dálk \(B\), og það er líka hægt að segja að \(c_{ij}\) sé innfeldi af \(i\)-tu línu \(A\) og \(j\)-ta dálki \(B\).

Sýnidæmi: Dálkar margfaldaðir hver fyrir sig

(framhald af síðasta sýnidæmi) Margföldun A og fyrri dálks B gefur

\[\begin{split}\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} \begin{pmatrix} 5\\0 \end{pmatrix} = \begin{pmatrix} 5\\15 \end{pmatrix}\end{split}\]

og innfeldi neðri línu \(A\) og seinni dálks \(B\) er

\[\begin{pmatrix} 3, 4 \end{pmatrix} \cdot \begin{pmatrix} 6, -2 \end{pmatrix} = 10\]

Python:

Í NumPy fæst margfeldi A og B með A @ B.

Skilgreining: Núllfylki og einingafylki

Núllfylki (zero matrix) hefur öll stök = 0 og einingafylki (identity matrix) hefur hornalínustökin = 1 og öll önnur stök = 0.

Einingafylki er oftast táknað með \(I\) og stærð þess ræðst yfirleitt af samhenginu. Núllfylki eru stundum táknuð með \(0\) eða \(O\) (núll eða bókstafurinn O), og stærðin ræðst líka af samhenginu.

DÆMI.   Hér eru \(2 \times 2\) og \(3 \times 3\) einingafylki og \(2 \times 3\) núllfylki:

\[\begin{split}\begin{pmatrix}1 & 0 \\ 0 & 1 \end{pmatrix} \quad \begin{pmatrix}1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} \quad \begin{pmatrix}0 & 0 & 0 \\ 0 & 0 & 0 \end{pmatrix}\end{split}\]

Python:

Í NumPy má búa til \(m \times n\) núllfylki með np.zeros((m,n)) og \(n \times n\) einingafylki með np.identity(n) eða np.eye(n) (eye er borið fram eins og I ).

Ef \(A\) og \(B\) eru jafn stór er hægt að leggja þau saman og ef dálkar \(A\) eru jafnmargir og línur \(B\) er hægt að reikna margfeldið \(AB\). Við segjum þá að fylkin hafa samræmdar (compatible) víddir. Eftirfarandi reglur gilda um fylki með samræmdar víddir:

Reglur um fylkjasamlagningu og -margföldun

\[\begin{split}&A + B = B + A &\text{(víxlregla samlagningar)} \\ &A+(B+C) = (A+B)+C &\text{(tengiregla samlagningar)} \\ &A(BC) = (AB)C &\text{(tengiregla margföldunar)} \\ &A(B + C) = AB + AC &\text{(dreifiregla)} \\ &A + O = O + A = A &\text{(regla um samlagningarhlutleysu)} \\ &OA = AO = O &\text{(regla um margföldun með núllfylki)} \\ &IA = AI = A &\text{(regla um margföldunarhlutleysu)}\end{split}\]

Síðustu tvær reglurnar gilda líka um vigra: \(Ox = 0\) (núllvigurinn) og \(Ix = x\) fyrir alla \(n\)-vigra \(x\).

Allar reglurnar gilda líka um tölur, með margföldunarhlutleysu 1 og samlagningarhlutleysu 0. Eina venjulega talnareglan sem ekki gildir um fylkjamargföldun er víxlreglan: Almennt er \(AB \neq BA\). Prófum til dæmis að margfalda saman fylkin í sýnidæminu fremst í þessum kafla í öfugri röð miðað við þar:

\[\begin{split}\begin{pmatrix}5 & 6 \\ 0 & -2 \end{pmatrix} \begin{pmatrix}1 & 2 \\ 3 & 4 \end{pmatrix} = \begin{pmatrix}23 & 34 \\ -6 & -8 \end{pmatrix},\end{split}\]

sem sé allt annað fylki en \(C\)-ið sem þar fékkst.

Æfing: Fylkjareikningur í Python

Búið til þrjú \(2 \times 2\) handahófsfylki í NumPy með eftirfarandi skipunum:

import numpy as np, numpy.random as npr
A = npr.rand(2,2)
B = npr.rand(2,2)
C = npr.rand(2,2)

Bætið svo við skipunum til að búa til núll- og einingafylki, og sannreynið nokkrar af reglunum hér að ofan.

Í algebru gegna andhverfur mikilvægu hlutverki. Samlagningarandhverfa fylkis \(A\) er fylkið \(-A\) sem fæst með því að snúa við formerkjum allra staka \(A\). Um hana gildir að ef hún er lögð við A fæst samlagningarhlutleysan:

Regla um samlagningarandhverfu

\[\begin{split}A + (-A) &= O \\ (-A) + A &= O\end{split}\]

Margföldunarandhverfa fylkis er mikilvægara hugtak og oftast kallað einfaldlega andhverfa þess. Hér aðeins framar skilgreindum við andhverfanleg og sérstæð (= ekki andhverfanleg) fylki. Andhverfanlegt fylki á sér andhverfu sem gefur einingafylkið (margföldunarhlutleysuna) þegar upphaflega fylkið er margfaldað með henni:

Regla um (margföldunar)andhverfu fylkis

Ef A er andhverfanlegt (ekki sérstætt) þá er til fylki táknað \(A^{-1}\) þannig að:

\[AA^{-1} = A^{-1}A = I\]

Eins og útskýrt er í kafla 11.5 í Python fyrirlestrarnótunum er hægt að leysa jöfnuhneppi

\[Ax = b\]

með því að margfalda í gegn með \(A^{-1}\):

\[\begin{split}A^{-1}Ax &= A^{-1}b\\ Ix &= A^{-1}b\\ x &= A^{-1}b\end{split}\]

Þar er líka lögð áhersla á að í praktískum reikningum í tölvu eigi frekar að kalla á föll sem leysa jöfnuhneppi en að finna andhverfur og margfalda með þeim.

Python:

Ef maður vill engu að síður reikna andhverfu fylkis A í NumPy má nota inv(A).

Þrjár gagnlegar og skemmtilegar reglur gilda um byltingu og andhverfu margfeldis tveggja fylkja:

Reglur um byltingu og andhverfu

\[\begin{split}(AB)^\text{T} &= B^\text{T}A^\text{T}\\ (AB)^{-1} &= B^{-1}A^{-1}\\ (A^\text{T})^{-1} &= (A^{-1})^\text{T}\end{split}\]

Fyrri tvær reglurnar segja að ef svigarnir eru teknir burtu víxlast röð \(A\) og \(B\), og það gildir sem sé bæði um byltingu og andhverfu. Síðasta reglan segir svo að andhverfa af byltu fylki sé jöfn byltri andhverfu, og fyrir vikið er niðurstaðan stundum táknuð \(A^{-\text{T}}\). Hér verða ekki gefin mörg dæmi um notkun þessara reglna, en þeir sem lesa meira um línulega algebru og tengd fræði munu rekast á notkun þeirra aftur og aftur.

Æfing: Andhverfur og bylting

Sannreynið þessar reglur með NumPy (bylt fylki A fæst með A.T).

Í kafla 1.8 var rætt um ákveður (determinants) fylkja og hér er að lokum setning sem tengir þær við andhverfanleika.

Setning: Sérstæð fylki og ákveður

Fylki er sérstættt þá og því aðeins að ákveða þess sé núll.

2.14  Línulegar varpanir og fylkjamargföldun

Rifjum upp úr grein 2.4 að línulegt fall er fall frá \(\Bbb{R}^n \to \Bbb{R}\) sem varðveitir samlagningu og margföldun með tölu. Hér skoðum við hinsvegar varpanir sem senda vigra yfir í aðra vigra, en eins og sagt var í fremst í kafla 2.4 þá er oft talað um vörpun (map) frekar en fall (function) þegar varpmengið er \(\Bbb{R}^m\) en ekki \(\Bbb{R}\).

Skilgreining: Línuleg vörpun

Vörpun \(f: \Bbb{R}^n \to \Bbb{R}^m\) kallast línuleg ef

\[\begin{split}&f(x + y) = f(x) + f(y)\;\;\text{fyrir öll}\;x,y \in \Bbb{R}^n\;\;\text{og}\\ &f(ax) = af(x)\;\;\text{fyrir öll}\;a \in \Bbb{R}\;\text{og}\; x\in\Bbb{R}^n\end{split}\]

Við sjáum að skilgreiningin er samhljóða skilgreiningu á línulegu falli. Hægt er að líta á línulega vörpun sem safn af \(m\) línulegum föllum. Næsta sýnidæmi sýnir þetta vel. Í síðasta sýnidæminu í grein 2.4 var búið til fall fyrir sig brúar í miðjunni. Ef sigið er skoðað í mörgum punktum verður fallið að vörpun.

Sýnidæmi: Sig brúar á mörgum stöðum

Á brú verkar kraftar \(w_1, w_2\) og \(w_3\) (þyngdir bíla í tonnum) á þremur gefnum stöðum. Þeir valda því að brúinn sígur um \(s_1, s_2, s_3\) og \(s_4\) millimetra á öðrum fjórum gefnum stöðum.

../_images/bru3.png

Samband \(s\) og \(w\) er gefið með línulegri vörpun \(s = \operatorname{sig}(w)\) sem rita mætti:

\[\begin{split}s_1 &= c_{11} w_1 + c_{12} w_2 + c_{13} w_3\\ s_2 &= c_{21} w_1 + c_{22} w_2 + c_{23} w_3\\ s_3 &= c_{31} w_1 + c_{32} w_2 + c_{33} w_3\\ s_4 &= c_{41} w_1 + c_{42} w_2 + c_{43} w_3\end{split}\]

Sambandið má líka setja fram með fylkjamargföldun:

\[s = Cw\]

Eins og í sýnidæminu í kafla 2.4 mætti ákvarða stuðlana \(c_{ij}\) annaðhvort með burðarþolsfræðireikningum eða með mælingum.

Í sýnidæminu hér á undan var hægt að rita línulegu vörpunina sem margföldun með fylki og það gildir raunar um allar línulegar varpanir. Sömuleiðis gildir að margföldun fylkis og vigurs gefur alltaf línulega vörpun:

Setning: Línuleg vörpun er margföldun með fylki

Ef \(f\) er línuleg vörpun, \(f:\Bbb{R}^n \to \Bbb{R}^m\) þá er til \(m \times n\) fylki \(C\) þannig að \(f(x) = Cx\) fyrir öll \(x\). \(C\) er kallað fylki vörpunarinnar \(f\).

Setning: Fylki sinnum vigur gefur línulega vörpun

Ef \(C\) er \(m \times n\) fylki og \(f\) er vörpun sem skilgreind er með \(f(x) = Cx\) þá er \(f\) línuleg.

Æfing: Línulegar varpanir og fylki

  1. Hvert er fylki vörpunarinnar \(f(x) = (3x_1 - 2x_2, x_1 - x_2)\)?

  2. Línuleg vörpun hefur fylki

    \[\begin{split}\begin{pmatrix}2 & 3\\ 1 & 1\end{pmatrix}\end{split}\]

    Reiknið \(f([2,4])\).

  3. Lýsið mælingum sem mætti gera til að ákvarða fylkið \(C\) í sýnidæminu um brúna.

Hægt er að setja saman línulegar varpanir á sama hátt og önnur föll.

Skilgreining: Samsett línuleg vörpun

Ef \(g\) er línuleg vörpun frá \(\Bbb{R}^n\) yfir í \(\Bbb{R}^p\) og \(f\) er línuleg vörpun frá \(\Bbb{R}^p\) yfir í \(\Bbb{R}^m\):

\[\Bbb{R}^n \underset{\large{g}} \longrightarrow \Bbb{R}^p \underset{\large{f}} \longrightarrow \Bbb{R}^m,\]

þá er samsetta vörpunin \(f \circ g\) skilgreind með:

\[h(x) = (f \circ g)(x) = f(g(x)) \quad \text{fyrir öll }x \in \Bbb{R}^n\]

Auðvelt er að sjá að \(h\) er línuleg vörpun frá \(\Bbb{R}^n\) til \(\Bbb{R}^m\). Ekki er heldur mjög erfitt að sýna að fylki samsettrar línulegrar vörpunar fæst með því að margfalda saman fylki varpananna hvorrar fyrir sig:

Setning: Fylki samsettrar vörpunar

Ef \(f\) er vörpun með fylki \(A\) og \(g\) er vörpun með fylki \(B\) þá er fylki \(f \circ g\) gefið með \(C = AB\).

Sýnidæmi: Sig brúar í þriðja sinn

../_images/bru3.png

Lítum aftur á brúna úr fyrri dæmum. Togið í vírunum fjórum sem halda henni uppi er mjög líklega línulega háð sigi brúarinnar á stöðunum sem merktir eru \(s_1, s_2, s_3\) og \(s_4\), \(t = \operatorname{tog}(s)\), t.d. með fylki \(T\):

\[t = \operatorname{tog}(s) = Ts\]

Svo væri hægt að reikna togið beint út frá þyngdum bílanna, \(w\), með samsettu vörpuninni \(\operatorname{tog} \circ \operatorname{sig}\), með fylki \(S = TC\):

\[\begin{split}t = \begin{pmatrix} t_1 \\ t_2 \\ t_3 \\ t_4 \end{pmatrix} = Sw = TCw = TC \begin{pmatrix} w_1 \\ w_2 \\ w_3 \end{pmatrix}\end{split}\]

Æfing: Stærð brúarfylkis og togfylkis

Hve stór eru fylkin \(C\), \(T\) og \(S\) í sýnidæminu hér á undan?

Athugasemd:

Myndavarpanirnar sem fjallað er um í kafla 12.1 í Fyrirlestrarnótum um Python eru dæmi um línulegar varpanir. Kaflinn talar líka um að fylkjamargföldun svari til samsetningar varpana, og gefur ágæt dæmi um hagnýtingu þeirrar staðreyndar.