// THEME SETUP #let dark-mode = sys.inputs.at("dark-mode", default: "true") == "true" // Catppuccin Farben Definition #let palette = if dark-mode { ( bg: rgb("#1e1e2e"), fg: rgb("#cdd6f4"), base: rgb("#181825"), blue: rgb("#89b4fa"), red: rgb("#f38ba8"), teal: rgb("#94e2d5"), subtext: rgb("#a6adc8"), surface: rgb("#313244"), line: rgb("#45475a") ) } else { ( bg: rgb("#FFFFFF"), fg: rgb("#232634"), base: rgb("#303446"), blue: rgb("#8caaee"), red: rgb("#e78284"), teal: rgb("#81c8be"), subtext: rgb("#b5bfe2"), surface: rgb("#414559"), line: rgb("#bcc0cc") ) } // SETUP & DESIGN #set page( paper: "a4", flipped: true, margin: (top: 1cm, left: 1cm, right: 1cm, bottom: 1.5cm), fill: palette.bg, footer: [ #set text(fill: palette.fg, size: 7pt) #block(width: 100%, inset: (top: 0.5em))[ #line(length: 100%, stroke: 0.5pt + palette.line) #v(0.2em) #grid( columns: (1fr, 2fr, 1fr), align: (left, center, right), [Nils Pukropp], [ #link("mailto:nils@narl.io") #h(1em) | #h(1em) #link("https://git.narl.io/nvrl/Mathe-II-Informatik-Merkblatt")[#underline[https://git.narl.io/nvrl/Mathe-II-Informatik-Merkblatt]] ], [Stand: WS2026] ) ] ], footer-descent: 0.3cm ) #set text( font: "FiraCode Nerd Font", size: 7pt, lang: "de", fill: palette.fg ) // Spalten-Layout #show: columns.with(3, gutter: 1.5em) #set heading(numbering: none) #show heading.where(level: 1): it => block( width: 100%, above: 1.5em, below: 0.8em, fill: palette.blue, inset: (x: 4pt, y: 3pt), radius: 2pt, text(fill: palette.bg, weight: "bold", 10pt, upper(it.body)) ) #show heading.where(level: 2): it => block( width: 100%, above: 1.2em, below: 0.6em, sticky: true, { text(fill: palette.red, weight: "bold", it.body) v(0.1em) line(length: 100%, stroke: 0.5pt + palette.line) } ) // HILFSFUNKTIONEN #let defbox(title, body) = block( width: 100%, fill: palette.teal.lighten(if dark-mode { 60% } else { 90% }), stroke: (left: 2pt + palette.teal), inset: 5pt, radius: (right: 2pt), above: 1em, below: 1em, breakable: false, [#text(fill: if dark-mode { palette.bg } else { palette.fg })[#strong(title): #body]] ) #let alertbox(body) = block( width: 100%, fill: palette.surface.lighten(if dark-mode { 10% } else { 50% }), stroke: 0.5pt + palette.line, inset: 5pt, radius: 3pt, above: 1em, below: 1em, breakable: false, [#text(fill: palette.fg)[#body]] ) // Operatoren & Symbole #let rang = math.op("Rang") #let ker = math.op("Kern") #let bild = math.op("Bild") #let span = math.op("span") #let dim = math.op("dim") #let spur = math.op("Spur") #let id = math.bb("1") #let grad = math.op("grad") #let div = math.op("div") #let rot = math.op("rot") #let Hess = math.op("Hess") #let ggT = math.op("ggT") // Zahlbereiche #let RR = math.bb("R") #let ZZ = math.bb("Z") #let NN = math.bb("N") #let QQ = math.bb("Q") #let CC = math.bb("C") #let FF = math.bb("F") // CONTENT = Analysis (Mehrdimensional) #defbox[Gradient & Hesse-Matrix][ Für $f: RR^n -> RR$: - *Gradient:* $nabla f(x) = (partial_1 f, ..., partial_n f)^T$ - *Hesse-Matrix:* $H_f (x) = ( (partial^2 f) / (partial x_i partial x_j) )_(i,j)$ (Symmetrisch nach Satz von Schwarz) ] == Stationäre Punkte & Extrema 1. *Notwendig:* Berechne $nabla f(x) = 0$. Löse LGS. 2. *Hinreichend:* Prüfe Definitheit von $H_f(x_0)$. #alertbox[ *Definitheit der Hesse-Matrix $H_f(x_0)$*: - *Positiv definit* ($>0$): *Lokales Minimum* - *Negativ definit* ($<0$): *Lokales Maximum* - *Indefinit:* *Sattelpunkt* ] == Hurwitz-Kriterium (Definitheit) Für symmetrische Matrix $A in RR^(n times n)$. Betrachte Hauptminoren $D_k$ (Det. der oberen linken $k times k$ Untermatrix). - *Pos. Def.:* Alle $D_k > 0$ ($D_1 > 0, D_2 > 0, ...$) - *Neg. Def.:* Vorzeichenwechsel beginnend mit Minus ($- + - + ...$), d.h. $D_1 < 0, D_2 > 0, D_3 < 0 ...$ - *Indefinit:* $det(A) != 0$, aber kein Muster oben passt. - *Semidefinit:* Wenn $det(A)=0$ (Eigenwerte prüfen!). *Spezialfall $2 times 2$:* $H_f = mat(f_(x x), f_(x y); f_(y x), f_(y y))$ - $det(H) > 0$ und $f_(x x) > 0 =>$ Minimum. - $det(H) > 0$ und $f_(x x) < 0 =>$ Maximum. - $det(H) < 0 =>$ Sattelpunkt. == Richtungsableitung Ableitung in Punkt $x$ in Richtung $v$ ($v$ muss normiert sein! $||v||=1$): $ (partial f) / (partial v) (x) = nabla f(x) dot v / ||v|| $ == Konvexität - $f$ konvex $<=> H_f(x)$ positiv (semi-)definit für alle $x$. - $f$ konkav $<=> H_f(x)$ negativ (semi-)definit für alle $x$. - $S$ konvex: Verbindungslinie zweier Punkte liegt in $S$. #colbreak() = Zahlentheorie == Modulo-Rechnung $\ZZ_n = \{0, ..., n-1\}$. Rechnen mit Rest. - *Einheiten* $\ZZ_n^*$: Elemente $a in \ZZ_n$ mit $ggT(a, n) = 1$. - *Euler $phi(n)$*: Anzahl der Einheiten. - $p$ prim: $phi(p) = p-1$. - $n = p dot q$: $phi(n) = (p-1)(q-1)$. - $n = p^k$: $phi(p^k) = p^k - p^(k-1)$. == Wichtige Sätze #alertbox[ *Kleiner Fermat:* $p$ prim, $a$ kein Vielfaches: $ a^(p-1) equiv 1 mod p $ *Satz von Euler:* $ggT(a, n) = 1$: $ a^phi(n) equiv 1 mod n $ ] - *Anwendung (Inverse):* In $\ZZ_n$ ist $a^(-1) = a^(phi(n)-1) mod n$. - *Schnelle Exponentiation:* Berechne $b^e mod m$. 1. Exponent $e$ binär schreiben. 2. Quadrieren und bei 1 multiplizieren (Square & Multiply). 3. Oder: $e$ reduzieren modulo $phi(m)$ (falls Basis $b$ teilerfremd zu $m$!). == Euklidischer Algorithmus (ggT) Zur Berechnung von $ggT(a, b)$ und $s, t$ mit $ggT(a,b) = s dot a + t dot b$. Beispiel $ggT(12, 7)$: $12 = 1 dot 7 + 5 => 5 = 12 - 1 dot 7$ $7 = 1 dot 5 + 2 => 2 = 7 - 1 dot 5 = 7 - (12-7) = 2 dot 7 - 1 dot 12$ $5 = 2 dot 2 + 1 => 1 = 5 - 2 dot 2 = (12-7) - 2(2 dot 7 - 12) = 3 dot 12 - 5 dot 7$ $=> 1 = 3 dot 12 + (-5) dot 7$. Inverse von 7 mod 12 ist -5 (=7). == Chinesischer Restsatz (CRT) Löse System: $x equiv a_i mod m_i$ (moduli $m_i$ paarweise teilerfremd). $M = product m_i, quad M_i = M / m_i$. Löse $M_i y_i equiv 1 mod m_i$ (Inverse von $M_i$). Lösung: $x = sum_(i) a_i M_i y_i mod M$. #colbreak() = Lineare Algebra: Matrizen == Matrizen & LGS $A in K^(m times n)$. LGS $A x = b$. *Gauß-Verfahren:* Auf Zeilenstufenform bringen. - Rang $r$: Anzahl der Stufen (Nicht-Null-Zeilen). - $r = n$: Eindeutige Lsg. (bei hom. nur 0). - $r < n$: Unendlich viele Lsg. ($n-r$ Parameter frei). - $r < m$: Lösbar nur wenn Nullzeilen rechts 0 sind. == Determinante (nur $n times n$) - $det(A) != 0 <=> A$ invertierbar $<=> rang(A)=n$. - $2 times 2$: $det mat(a, b; c, d) = a d - b c$. - $3 times 3$: Sarrus (Jägerzaun). - $n times n$: Laplace (Entwicklung nach Zeile/Spalte mit vielen 0). - Regeln: $det(A B) = det A det B$, $det(A^T) = det A$. - $det(lambda A) = lambda^n det A$. == Inverse Matrix $A^(-1)$ existiert nur wenn $det A != 0$. - $2 times 2$: $A^(-1) = 1/(det A) mat(d, -b; -c, a)$. - Allgemein: Gauß $(A | I_n) -> (I_n | A^(-1))$. = Lineare Abbildungen $phi: V -> W$ linear ($phi(v+w)=phi(v)+phi(w), phi(c v)=c phi(v)$). - *Bild:* Spaltenraum der Matrix $A$. $dim(bild) = rang(A)$. - *Kern:* Lösungsraum von $A x = 0$. #alertbox[ *Dimensionssatz:* $ dim(V) = dim(ker(phi)) + dim(bild(phi)) $ $ n = "Anzahl freie Parameter" + rang(A) $ ] - *Injektiv:* $ker(phi) = \{0\}$. - *Surjektiv:* $bild(phi) = W$ (Rang = Zeilenzahl). - *Bijektiv:* $n=m$ und Determinante $!= 0$. == Abbildungsmatrix $M_B^C(phi)$: Matrix bzgl. Basis $B$ (Start) und $C$ (Ziel). Spalten sind Bilder der Basisvektoren von $B$, dargestellt in $C$. $ "Spalte" j = phi(b_j)_C $ *Basiswechsel:* $M_B^C(id)$ transformiert von $B$ nach $C$. $A' = T^(-1) A T$ (wenn $T$ Transformationsmatrix). #colbreak() = Eigenwerte (EW) & Diagonalisierung 1. *Charakteristisches Polynom:* $P_A(lambda) = det(A - lambda I) = 0$. 2. Nullstellen sind EW $lambda_i$. - *Alg. Vielfachheit:* Potenz im Polynom. - *Geom. Vielfachheit:* $dim(ker(A - lambda_i I)) = n - rang(A - lambda_i I)$. 3. *Eigenraum:* $E_lambda = ker(A - lambda I)$ (LGS lösen). #alertbox[ *Diagonalisierbar gdw:* 1. $P_A$ zerfällt komplett in Linearfaktoren. 2. Für jeden EW gilt: *Alg. VFH = Geom. VFH*. Symmetrische Matrizen sind *immer* diagonalisierbar! ] Matrix $D = S^(-1) A S$ (Diagonalmatrix mit EW). $S$: Spalten sind die Eigenvektoren. == Spektralsatz (Symmetrische Matrizen) Ist $A = A^T$, dann: - Alle EW sind reell. - $A$ ist orthogonal diagonalisierbar: $D = Q^T A Q$ mit $Q^T = Q^(-1)$. - Eigenvektoren zu versch. EW sind *orthogonal*. = Euklidische Vektorräume == Skalarprodukt & Norm Standard $\RR^n$: $chevron.l u, v chevron.r = u^T v = sum u_i v_i$. - Norm: $||u|| = sqrt(chevron.l u\, u chevron.r)$. - Winkel: $cos alpha = chevron.l u, v chevron.r / (||u|| dot ||v||)$. - Orthogonal: $chevron.l u, v chevron.r = 0$. == Gram-Schmidt (ONB) Aus Basis $v_1, ..., v_n$ mache Orthonormalbasis $b_1, ..., b_n$. 1. $u_1 = v_1$, dann $b_1 = u_1 / ||u_1||$. 2. $u_2 = v_2 - chevron.l v_2, b_1 chevron.r b_1$, dann $b_2 = u_2 / ||u_2||$. 3. $u_k = v_k - sum_(j=1)^(k-1) chevron.l v_k, b_j chevron.r b_j$. 4. $b_k = u_k / ||u_k||$. == Orthogonale Matrizen $Q$ $Q^T Q = I$ ($Q^(-1) = Q^T$). Spalten bilden ONB. Längentreu ($||Q x|| = ||x||$) und winkeltreu. Determinante ist $\pm 1$. *Drehmatrix (2D):* $mat(cos alpha, -sin alpha; sin alpha, cos alpha)$. *Drehmatrix (3D):* Drehung um Achse $a$. Ein EW ist 1 (Achse). Spur ist $1 + 2 cos(alpha)$. #colbreak() = Kodierungstheorie Lineare Codes $C subset RR^n$ (meist $\FF_2, \FF_3, \FF_5$). Parameter $[n, k, d]$: Länge $n$, Dimension $k$, Minimaldistanz $d$. == Erzeugermatrix $G$ ($k times n$) Zeilen bilden Basis von $C$. $G$ in Stufenform bringen um Dimension zu sehen. Standardform: $G = (I_k | A)$. Codierung: $x -> x G$. == Prüfmatrix $H$ ($(n-k) times n$) Es gilt: $G H^T = 0$. Wenn $G = (I_k | A)$, dann $H = (-A^T | I_(n-k))$. (Im Binären ist $-A = A$, also $H = (A^T | I_(n-k))$). Code ist Kern von $H$: $c in C <=> H c^T = 0$. == Minimaldistanz & Fehler - *Hamming-Gewicht* $w(x)$: Anzahl Einträge $!= 0$. - *Minimaldistanz* $d_(min) = min \{w(c) | c in C, c != 0\}$. - $d_(min)$ ist auch das minimale Gewicht der Spalten von $H$, die linear abhängig sind (oft die kleinste Anzahl linear abh. Spalten). #alertbox[ *Erkennung:* $d-1$ Fehler erkennbar. *Korrektur:* $e = floor((d-1)/2)$ Fehler korrigierbar. ($d=3 => 1$ Fehler, $d=5 => 2$ Fehler) ] == Dekodierung (Syndrom) Empfangenes Wort $r = c + e$ (Code + Fehler). 1. Berechne *Syndrom* $S = H r^T$. 2. Wenn $S = 0 =>$ kein Fehler. 3. Wenn $S != 0$: Suche Spalte in $H$, die Vielfaches von $S$ ist. - Position der Spalte = Position des Fehlers. - Wert des Fehlers aus Faktor bestimmen. #colbreak() = Algebraische Strukturen #defbox[Gruppen $(G, dot)$][ Assoziativ, Neutrales $e$, Inverses $a^(-1)$. - *Abelsch:* + Kommutativ. - *Zyklisch:* Ein Erzeuger $g$ generiert ganze Gruppe ($g^k$). $\ZZ_n$ ist zyklisch (Erzeuger 1). - *Ordnung:* $|G|$ Anzahl Elemente. Satz von Lagrange: $|U|$ teilt $|G|$. ] *Untergruppen:* Teilmenge, abgeschlossen bzgl. Op. und Inverse. *Isomorphie:* $\ZZ_(n m) tilde.eq \ZZ_n times \ZZ_m$ gdw. $ggT(n,m)=1$. #defbox[Körper $(K, +, dot)$][ $(K, +)$ abelsche Grp, $(K without \{0\}, dot)$ abelsche Grp, Distributiv. Beispiele: $\RR, \QQ, \CC, \ZZ_p$ ($p$ prim). $\ZZ_n$ ist kein Körper wenn $n$ nicht prim (Nullteiler!). ] *Polynomring $K[x]$:* Division mit Rest möglich. = Diverses & Tipps - *LGS lösen:* Immer Gauß. Nie Cramer (zu langsam). - *Komplexe Zahlen:* $i^2 = -1$. $z = a+b i$. $overline{z} = a-b i$. $|z|^2 = z overline{z} = a^2+b^2$. Polarkoordinaten $r e^(i phi)$. - *Nilpotent:* $A^k = 0$. Einziger EW ist 0. Spur ist 0. Nicht invertierbar. - *Äquivalenzrelation:* Reflexiv ($x tilde x$), Symmetrisch ($x tilde y => y tilde x$), Transitiv ($x tilde y, y tilde z => x tilde z$). Äquivalenzklassen bilden Partition. - *Injektiv:* Kern = $\{0\}$. *Surjektiv:* Bild = Zielraum.