added eintor liste
All checks were successful
Build Typst PDFs (Docker) / build-typst (push) Successful in 19s

This commit is contained in:
levi
2026-02-02 12:47:10 +01:00
8 changed files with 758 additions and 131 deletions

View File

@@ -1,9 +1,7 @@
#import "../lib/common_rewrite.typ" : *
#import "@preview/mannot:0.3.1"
#show math.integral: it => math.limits(math.integral)
#show math.sum: it => math.limits(math.sum)
#let lim = $limits("lim")$
#import "../lib/common_rewrite.typ" : *
#import "../lib/mathExpressions.typ" : *
#set text(7.5pt)
@@ -106,9 +104,8 @@
// Complex Zahlen
#bgBlock(fill: colorAllgemein)[
#subHeading(fill: colorAllgemein)[Complexe Zahlen]
$z = r dot e^(phi i) = r (cos(phi) + i sin(phi))$
$z^n = r^n dot e^(phi i dot n) = r^n (cos(n phi) + i sin(n phi))$
#ComplexNumbersSection()
#grid(
columns: (1fr, 1fr),

View File

@@ -1,8 +1,10 @@
#import "../lib/common_rewrite.typ" : *
#import "@preview/mannot:0.3.1"
#import "@preview/cetz:0.4.2"
#import "@preview/zap:0.5.0"
#import "../lib/common_rewrite.typ" : *
#import "../lib/truthtable.typ" : *
#import "../lib/fetModel.typ" : *
#show math.integral: it => math.limits(math.integral)
#show math.sum: it => math.limits(math.sum)
@@ -565,10 +567,7 @@
(cycle_start,signal_hight), (cycle_time*(t_setup + 2), signal_hight),
(cycle_time*(t_setup + 2) + switch_offset, 0), (cycle_end + switch_offset, 0), stroke: signal_storke
)
})
]

View File

@@ -1,7 +1,11 @@
#import "@preview/biceps:0.0.1" : *
#import "@preview/mannot:0.3.1"
#import "@preview/fletcher:0.5.8"
#import "@preview/cetz:0.4.2"
#import "../lib/styles.typ" : *
#import "../lib/common_rewrite.typ" : *
#import "../lib/mathExpressions.typ" : *
#set page(
paper: "a4",
@@ -23,8 +27,9 @@
))
#let colorAllgemein = color.hsl(105.13deg, 92.13%, 75.1%)
#let colorMatrixVerfahren = color.hsl(330.19deg, 100%, 68.43%)
#let colorMatrix = color.hsl(202.05deg, 92.13%, 75.1%)
#let colorReihen = color.hsl(280deg, 92.13%, 75.1%)
#let colorVR = color.hsl(280deg, 92.13%, 75.1%)
#let colorAbbildungen = color.hsl(356.92deg, 92.13%, 75.1%)
#let colorGruppen = color.hsl(34.87deg, 92.13%, 75.1%)
@@ -35,9 +40,11 @@
}
#columns(4, gutter: 2mm)[
#bgBlock(fill: colorAllgemein)[
#subHeading(fill: colorAllgemein)[Notation]
#subHeading(fill: colorAllgemein)[Komplexe Zahlen]
#ComplexNumbersSection()
#sinTable
]
#bgBlock(fill: colorGruppen)[
@@ -75,8 +82,6 @@
- $(R, dot)$ Halbgruppe
- $(a + b) dot c = (a dot c) + (a dot b) space$ (Distributiv Gesetz)
#colbreak()
*Körper:* Menge $K$ mit:
- $(K, +), (K without {0} , dot)$ kommutativ Gruppe \
($0$ ist Neutrales Element von $+$)
@@ -84,8 +89,8 @@
_Beweiß durch Überprüfung der Eigneschaften_
]
#bgBlock(fill: colorReihen)[
#subHeading(fill: colorReihen)[Vektorräume (VR)]
#bgBlock(fill: colorVR)[
#subHeading(fill: colorVR)[Vektorräume (VR)]
$(V, plus.o, dot.o)$ ist ein über Körper $K$
- $+: V times V -> V, (v,w) -> v + w$
- $dot: K times V -> V, (lambda,v) -> lambda v$
@@ -102,8 +107,8 @@
- $(U inter W) subset V$
]
#bgBlock(fill: colorReihen)[
#subHeading(fill: colorReihen)[Basis und Dim]
#bgBlock(fill: colorVR)[
#subHeading(fill: colorVR)[Basis und Dim]
*Linear Abbildung:* $Phi: V -> V$
- $Phi(0) = 0$
- $Phi(lambda v + w) = lambda Phi(v) + Phi(w)$
@@ -154,6 +159,7 @@
*Vektorraum-Homomorphismus:* linear Abbildung zwischen VR
]
// Spann und Bild, Kern
#bgBlock(fill: colorAbbildungen)[
#subHeading(fill: colorAbbildungen)[Spann und Bild]
*Spann:*
@@ -173,131 +179,258 @@
*Rang*
$op("Rang") f := dim op("Bild") f$
*Dimensionssatz:* Sei $A$ lineare Abbildung \
$dim(V) = dim(kern(A)) + dim(Bild(A))$ \
$dim(V) = dim(kern(A)) + Rang(A)$ \
$dim(V) = dim(Bild(A)) "oder" dim(kern(A)) = 0 \ <=> A "bijektiv" <=> "invertierbar"$
]
#bgBlock(fill: colorAbbildungen)[
#subHeading(fill: colorAbbildungen)[Determinate und Bilinearform]
]
#bgBlock(fill: colorVR)[
#subHeading(fill: colorVR)[Eukldische Vektorräume]
]
#bgBlock(fill: colorVR)[
#subHeading(fill: colorVR)[Unitair Vektorräume ]
]
// Matrix Typem
#bgBlock(fill: colorMatrix)[
#let colred(x) = text(fill: red, $#x$)
#let colblue(x) = text(fill: blue, $#x$)
#subHeading(fill: colorMatrix)[Matrix Typen]
#align(center, scale($colred(m "Zeilen") colblue(n "Splate")\ A in KK^(colred(m) times colblue(n))$, 120%)) #grid(columns: (1fr, 1fr),
$quad mat(
a_11, a_12, ..., a_(1n);
a_21, a_22, ..., a_(2n);
dots.v, dots.v, dots.down, dots.v;
a_(m 1), a_(m 2), ..., a_(m n)
)
$,
*Einheits Matrix* $I,E$
cetz.canvas({
import cetz.draw : *
*Diagonalmatrix*
rect((0, 0), (1, 1), fill: rgb("#9292926b"))
*Symetrisch* $S$: \
$A A^T$ ist symetrisch
set-style(mark: (end: (symbol: "straight")))
line((0, -0.2), (1, -0.2), stroke: (paint: blue, thickness: 0.3mm))
line((-0.2, 1), (-0.2, 0), stroke: (paint: red, thickness: 0.3mm))
*Orthogonal* $O$:
content((-0.45, 0.5), $colred(bold(m))$)
content((0.5, -0.35), $colblue(bold(n))$)
content((0.5, 0.5), $A$)
})
)
*Unitair:*
#table(
columns: (auto, 1fr),
inset: 2mm,
fill: (x, y) => if (calc.rem(y, 2) == 0) { tableFillLow } else { tableFillHigh },
[*Einheits Matrix*\ $I,E$], [],
[*Diagonalmatrix* \ $Sigma,D$], [
Nur Einträger auf Hauptdiagonalen \
$det(D) = d_00 dot d_11 dot d_22 dot ...$
],
[*Symetrisch*\ $S$], [
$S = S^T$, $S in KK^(n times n)$\
$A A^T$, $A^T A$ ist symetrisch \
$S$ immer diagonaliserbar \
EW immer $in RR$, EV orthogonal
],
[*Invertierbar*], [
$exists A^(-1) : A A^(-1) = A^(-1) A = E$ \
*postiv-semi-definit* \
$forall$ Eigenwerte $>= 0$
*Invertierbar wenn:* \
$A$ bijektiv, $det(A) = 0$ \
$"Spalten Vekoren lin. unabhänig"$ \
$det(A) = 0$ \
*Nicht Invertierbar wenn:*\
$exists$ EW $!= 0 => not "invertierbar"$
Keine Qudratische Matrix
],
[*Orthogonal*\ $O$], [
$O^T = O^(-1)$ \
$ip(O v, O w) = ip(v, w)$
],
[*Unitair*], [
$V^* )$
],
[*Diagonaliserbar*], [
$exists A = B D B^(-1)$, $D$ diagonal,
$B$: Splaten sind EV von $A$
- Selbst-Adujunkte diagonalisierbar
- Symetrisch Matrix
- $A in KK^(n times n) "AND" alg(lambda) = geo(lambda)$
],
[*postiv-semi-definit*], [
$forall$ EW $>= 0$
],
)
]
#colbreak()
#bgBlock(fill: colorMatrixVerfahren)[
#bgBlock(fill: colorMatrix)[
#subHeading(fill: colorMatrix)[Eigenwert und Eigenvektoren ]
#subHeading(fill: colorMatrixVerfahren)[Eigenwert und Eigenvektoren ]
$A in CC^(n times n):$ $n$ Complexe Eigenwerte \
$A in RR^(n times n)$
*Eigentwete bestimmen*
*1. Eigentwete bestimmen*
$A v = lambda v$
$A v = lambda v => det(A-E lambda) = 0$
Lösen: $0 = det mat(#mannot.markhl($x_11 - lambda_1$, color: red), x_12, ..., x_(1n);
$0 = det mat(#mannot.markhl($x_11 - lambda_1$, color: red), x_12, ..., x_(1n);
x_21, #mannot.markhl($x_22 - lambda_2$, color: red), ..., x_(2n);
dots.v, dots.v, dots.down, dots.v;
x_(n 1), x_(n 2), ..., #mannot.markhl($x_(n n) -lambda_n$, color: red)
)$
Charakteristisches Polynom: $chi_(A)$
$--> chi_A = (lambda_0 - lambda)^(n_0) dot (lambda_1 - lambda)^(n_1) ... $
*Eigenvektor bestimmen*
Eigentwerte einsetzen: $lambda in {lambda_1, lambda_2, ... lambda}$
$lambda_0, lambda_1, ... = $ Nst von $chi_A$
*Algebrasche Vielfacheit:* \
$sum$ Häufikeit der Nsts von $chi_A$
*2. Eigenvektor bestimmen*
*Geometrische Vielfacheit:*\
$dim(op("spann")(v_lambda_1, v_lambda_2 ..., v_lambda_n))$ \
$Eig(lambda_k) = kern(A - lambda_k E)$
Anzahl der linearunabhänige $v_lambda_i$
$mat(#mannot.markhl($x_11 - lambda_k$, color: red), x_12, ..., x_(1n);
x_21, #mannot.markhl($x_22 - lambda_k$, color: red), ..., x_(2n);
dots.v, dots.v, dots.down, dots.v;
x_(n 1), x_(n 2), ..., #mannot.markhl($x_(n n) -lambda_k$, color: red)
) vec(v_1, v_2, dots.v, v_n) = vec(0, 0, dots.v, 0)$
$"Geometrische" <= "Algebrasche"$
*Algebrasche Vielfacheit:* $alg(lambda) = n_0 + n_1 + ...$ \
*Geometrische Vielfacheit:* $geo(lambda) = dim("Eig"_A (lambda))$ \
$1 <= geo(lambda) <= alg(lambda)$
]
#bgBlock(fill: colorMatrix)[
#subHeading(fill: colorMatrix)[Diagonalisierung]
#bgBlock(fill: colorMatrixVerfahren)[
#subHeading(fill: colorMatrixVerfahren)[Gram-Schmit ONB]
$A = R D R^T$
$D$: Diagonalmatrix
]
#bgBlock(fill: colorMatrix)[
#subHeading(fill: colorMatrix)[Schur-Zerlegung]
#bgBlock(fill: colorMatrixVerfahren)[
#subHeading(fill: colorMatrixVerfahren)[Diagonalisierung]
$A = R D R^(-1)$
#grid(
columns: (1fr, 1fr),
$D = mat(
lambda_1, 0, 0,...;
0, lambda_1, 0, ...;
0, 0, lambda_2, ...;
dots.v, dots.v, dots.v, dots.down
)$,
$D^n = mat(
lambda_1^n, 0, 0,...;
0, lambda_1^n, 0, ...;
0, 0, lambda_2^n, ...;
dots.v, dots.v, dots.v, dots.down
)$
) \
*Rezept Diagonalisierung*
1. *EW* bestimmen
2. $chi_A$ bestimmen und in $(lambda_0 - lambda)^(n_0) dot (lambda_1 - lambda)^(n_1) ...$ Form bringen \
$chi_A$ nicht vollstandig zerfällt (in $RR$), $=>$ NICHT diagonalisierbar
3. *EV* bestimmen
4. $R = mat( bar, bar, ..; v_(lambda 0), v_(lambda 1), ...; bar, bar, ...)$
5. $R^(-1)$ bestimmen
]
#bgBlock(fill: colorMatrixVerfahren)[
#subHeading(fill: colorMatrixVerfahren)[Schur-Zerlegung]
immer anwendbar;
$A in RR^(n times n)\/CC^(n times n)$ zerlegbar in $O^T R O$
Orthogonal $O,O^T$, Dreiecksmatrix $R$
$R = mat(lambda_1, *, *,..., *;
0, lambda_2, *, ..., *;
0, 0, lambda_3, ..., *;
dots.v, dots.v, dots.v, dots.down, dots.v;
0, 0, 0, ..., lambda_n;
)$
1. Eigenwerte bestimmen $lambda_1, lambda_2, ... lambda_n$
2. Eigenvektor $v_lambda_1, v_lambda_2 ..., v_lambda_n$
3.
]
#colbreak()
#bgBlock(fill: colorMatrixVerfahren)[
#subHeading(fill: colorMatrixVerfahren)[SVD]
$A in RR^(m times n)$ zerlegbar in $A = U Sigma V^T$ \
$U in RR^(m times m)$ Orthogonal \
$Sigma in RR^(m times n)$ Diagonal \
$V in RR^(n times n)$ Orthogonal
1. $A^T A$ berechnen $A^T A in RR^(k times k), k = min(n, m)$
2. Eigenwerte bestimmen $det(A^T A - E lambda) = 0$ \
$lambda_0, lambda_1 ... lambda_k$ nach Größe sortieren \
Singulärewerte: $sigma_i = sqrt(lambda_i)$
3. Eigenvekoren von $A^T A$ bestimmen und *Normalisieren*
$v_(lambda 0), v_(lambda 1), ... v_(lambda k)$
4. $V = mat( |, |, ..., |; v_0, v_1, ..., v_n; |, |, ..., |) --> V^T$ \
(Evt. zu ONB ergenze mit Gram-Schmit/Kreuzprodukt)
5. $u_i = 1/sigma_i A v_(lambda i) quad quad L = mat( |, |, ..., |; u_0, u_1, ..., u_m; |, |, ..., |)$ \
(Evt. zu ONB ergenze mit Gram-Schmit/Kreuzprodukt)
6. $S in RR^(n times m)$ (wie $A$):
$S = mat(sigma_0, 0; 0, sigma_1; dots.v, dots.v; 0, 0) quad quad quad S = mat(sigma_0, 0, dots, 0; 0, sigma_1, ..., 0)$
]
#bgBlock(fill: colorMatrix)[
#subHeading(fill: colorMatrix)[SVD]
#subHeading(fill: colorMatrix)[Matrix Normen]
$A in RR^(n times m)$ zerlegbar in $A = L S R^T$ \
$L$ Orthogonal, $S$ Diagonalmatrix, $R$ Orthogonal \
$A^T = R S^T L^T$
$|| dot ||_M$ Matrix Norm, $|| dot ||_V$ Vektornorm
Generisch Vektor Norm: $|| v ||_p = root(p, sum_(k=1)^n (x_k)^p)$
*1. $A A^T$ berechnen* $A A^T in RR^(n times n) $
- submultiplikativ: $||A B||_"M" <= ||A||||B||$
- verträglich mit einer Vektornorm: $||A v||_"V" <= ||A||_"M" ||v||_"V"$
*2. Eigenwerte von $A A^T$ bestimmen* $lambda_1, lambda_2, ... lambda_n$
*Frobenius-Norm* $||A||_"M" = sqrt(sum_(i=1)^m sum_(j=1)^n a_(m n)^2)$
*3. $S$ aufstellen* ($S$ hat gleiche Form wie $A$)
*Induzierte Norm* $||A||_"M" = sup_(v in V without {0}) (||A v||_V)/(||v||_V)$\
$ = sup_(||v|| = 1) (||A v||_V)/(||v||_V)$
- submultiplikativ
- verträglich mit einer Vektornorm $||dot||_V$
$sigma_i = sqrt(lambda_i) = S in RR^(n x m) =\ mat(
sigma_1, 0, 0, ..., 0, 0, ..., 0;
0, sigma_2, 0, ..., 0, 0, ..., 0;
0, 0, sigma_3, ..., 0, 0, ..., 0;
dots.v, dots.v, dots.v, dots.down, dots.v, dots.v, dots.down, dots.v;
0, 0, 0, ..., sigma_m, 0, ... , 0
)$
*4. $R$ bestimmen*
$op("Eig")(lambda_i) = op("kern")(A A^T - lambda_i) ->$
$A A^T - lambda_i = 0$ (Gaußverfahren)
$R = 1/sqrt(lambda_i)$
*5. $L$ bestimmen*
$L = 1/sqrt(lambda_i) $
*maximale Spaltensumme* $||A||_r = max_(1<= i <= n) sum_(j=1)^n |a_(j)|$
]
#bgBlock(fill: colorMatrix)[
#subHeading(fill: colorMatrix)[Rekursive Folgen]
E.g: $a_1 x_(n-1) + a_2 x_(n) = x_(n+1)$
1. Als Matrix Schreiben $F: vec(x_(n-1), x_(n)) = vec(x_n, x_(n+1))$ \
$F s_(n-1) = s_(n)$
2. Diagonaliseren: $F = R D R^(-1) $ \
3. Wiederholte Anwendung: $F^n = R D^n R^(-1)$
]
#bgBlock(fill: colorMatrix)[
#subHeading(fill: colorMatrix)[Differenzialgleichungen]
]
]

View File

@@ -1,10 +1,13 @@
#import "../lib/common_rewrite.typ" : *
#import "@preview/mannot:0.3.1"
#import "@preview/zap:0.5.0"
#import "@preview/cetz:0.4.2" :*
#import "@preview/cetz-plot:0.1.3"
#import "../lib/circuit.typ" : *
#import "@preview/unify:0.7.1": num,qty,unit
#import "@preview/cetz-plot:0.1.3"
#import "../lib/common_rewrite.typ" : *
#import "../lib/circuit.typ" : *
#set math.mat(delim: "[")
#show math.equation.where(block: true): it => math.inline(it)
@@ -109,7 +112,70 @@
#bgBlock(fill: colorAllgemein)[
#subHeading(fill: colorAllgemein)[Verschaltung]
$1/x_"ges" = 1/x_1 + 1/x_2 + 1/x_3 + ...$
$x_1 parallel x_2 = 1/(1/x_1 + 1/x_2) = (x_1 x_2)/(x_1 + x_2)$
$x_1 parallel x_2 parallel x_3 = (x_1 x_2 x_3)/(x_1 x_2 + x_2 x_3 + x_1 x_3)$
#table(
columns: (1fr, 1fr),
fill: (x, y) => if calc.rem(x, 2) == 1 { tableFillLow } else { tableFillHigh },
[*Serie*],
[*Reihe/Parrallel*],
align(
horizon+center,
scale(100%,
zap.circuit({
import zap : *
resistor("R1", (0,0.375), (1.5,0.375), fill: none, width: 1, height: 0.4)
resistor("R2", (1.5,0.375), (3,0.375), fill: none, width: 1, height: 0.4)
})
)
),
align(
horizon+center,
scale(
100%,
zap.circuit({
import zap : *
resistor("R1", (0,0), (2,0), fill: none, width: 1, height: 0.4)
resistor("R2", (0,0.75), (2,0.75), fill: none, width: 1, height: 0.4)
wire("R1.in", "R2.in")
wire("R1.out", "R2.out")
node("N2", (0,0.375))
node("N3", (2,0.375))
wire("N2", (rel: (-0.3, 0)))
wire("N3", (rel: (0.3, 0)))
}),
)
),
$R_"ges" = R_1+R_2$,
$R_"ges" = R_1 parallel R_2$,
$G_"ges" = G_1 parallel G_2$,
$G_"ges" = G_1 + G_2$,
$L_"ges" = L_1 + L_2$,
$L_"ges" = L_1 parallel L_2$,
$C_"ges" = C_1 parallel C_2$,
$C_"ges" = C_1 + C_2$,
$U_"ges" = U_1 + U_2$,
$U_"ges" = U_1 = U_2$,
$I_"ges" = I_1 = I_2$,
$I_"ges" = I_1 + I_2$,
[In $U$-Richtung Addieren],
[In $I$-Richtung Addieren],
)
]
// Quell Wandlung
@@ -134,7 +200,107 @@
)
]
#colbreak()
// Lineare Quelle
#bgBlock(fill: colorEineTore)[
#subHeading(fill: colorEineTore)[Lineare Quelle]
#align(
center+horizon,
cetz.canvas({
import cetz.draw: *
import cetz-plot: *
plot.plot(size: (3, 3), name: "plot",
axis-style: "school-book",
x-label: "u", y-label: "i",
x-tick-step: none, y-tick-step: none,
axes: ("u", "i"),
x-min: -1, x-max: 2, x-grid: "both",
y-min: -2, y-max: 1, y-grid: "both", {
plot.add(((-2, -3), (3,2)))
plot.add-anchor("u0", (1,0))
plot.add-anchor("i0", (0,-1))
})
content("plot.u0", $U_0$, anchor: "south", padding: .2)
content("plot.i0", $-I_0$, anchor: "east", padding: .2)
mark("plot.u0", 0deg, symbol: "+", fill: black)
mark("plot.i0", 0deg, symbol: "+", fill: black)
line("plot.i0", (horizontal: "plot.u0", vertical: "plot.i0"), "plot.u0", stroke: (dash: "dashed", paint: rgb("#005c00")))
content((horizontal: "plot.u0", vertical: "plot.i0"), anchor: "south-west", text(rgb("#005c00"))[$R$], padding: 0.1)
})
)
$U_0$: LL-Spannung ($i = 0 => u = U_0$) \
$I_0$: KS-Strom ($u = 0 => i = -I_0$)
$R_i$: Innenwiderstand $R_i = U_0/I_0$
#table(
columns: (1fr, 1fr),
fill: (x, y) => if calc.rem(x, 2) == 1 { tableFillLow } else { tableFillHigh },
inset: 3mm,
align(center, [*$u$-gesteuert*]),
align(center, [*$i$-gesteuert*]),
align(
horizon+center,
zap.circuit({
import zap : *
import cetz.draw
zap.resistor("R1", (1, 0), (1, -1.5), fill: none, width: 0.8, height: 0.3)
zap.isource("I0", (0, 0), (0, -1.5), fill: none, scale: 0.6, i: (content: $-I_0$, distance: 6pt, label-distance: -11pt, anchor: "west", invert: true))
node("N0", "R1.in")
node("N0", "R1.out")
wire("I0.out", "R1.out", (rel: (0.5, 0)))
wire("I0.in", "R1.in")
wire("R1.in", (rel: (0.5, 0)), i: (content: $i$, invert: true))
cetz.draw.content((0.62, -0.75), [$R$])
cetz.draw.set-style(mark: (end: ">", fill: black, scale: 0.6))
cetz.draw.content((1.7, -0.75), [$u$])
cetz.draw.line((1.5, -0.1), (1.5, -1.4), stroke: 0.5pt)
})
),
align(
horizon+center,
zap.circuit({
import zap : *
import cetz.draw
zap.vsource("U0", (0, 0), (0, -1.5), fill: none, scale: 0.6, u: (content: $U_0$, distance: -4pt, label-distance: -8pt, anchor: "south-west", invert: true))
zap.resistor("R1", (0, 0), (1.75, 0), fill: none, width: 0.8, height: 0.3,
i: (content: $i$, invert: true, distance: 0.3)
)
wire((0, -1.5), (1.75, -1.5))
cetz.draw.content((0.62, -0.75), [$R$])
cetz.draw.set-style(mark: (end: ">", fill: black, scale: 0.6))
cetz.draw.content((1.95, -0.75), [$u$])
cetz.draw.line((1.75, -0.1), (1.75, -1.4), stroke: 0.5pt)
})
),
[
$u = R_i i + u_0$ \
],
[
$i = 1/R_i u - I_0$
],
table.cell(colspan: 2)[
#align($-->$)
],
table.cell(colspan: 2)[
$<--$
],
)
]
// Quell Wandlung
#bgBlock(fill: colorEineTore)[
@@ -192,14 +358,14 @@
$R_i=1/G_i$
$r(i) = R_i i + U_0$
$u = r(i) = R_i i + U_0$
],
[
$I_0 = U_0 G_i$
$G_i=1/R_i$
$g(u) = G_i u + I_0$
$i = g(u) = G_i u + I_0$
]
);
]
@@ -1071,12 +1237,16 @@
$E_L = Phi^2/2L = (L i^2)/2$
],
[
$C$: Admetanz $hat(=) G$
$C$: Admittanz $hat(=) G$
], [],
[
$L$: Impedanz $hat(=) R$
]
)
Admittanz: $Y = I/U$\
Impedanz: $Z = U/I$
]
// Reaktive Dual Wandlung
@@ -1121,30 +1291,33 @@
U_"ges"^2 = U_1^2 + 2 U_1 U_2 + U_2^2 \
tan(phi) = (U_2 sin(phi))/(U_1 + U_2 cos(phi))
$
]
*Levi's Lustig Leistung*
#bgBlock(fill: colorComplexAC)[
#subHeading(fill: colorComplexAC)[*Levi's Lustig Leistung*]
$underline(S) = underline(U) dot underline(I)^*$\
$P = 1/2 U dot I^*$\
#table(
columns: (auto, 1fr, auto),
[Scheinleitsung], [$abs(underline(S))$], [$["VA"]$],
[Wirkleistung], [$P = "Real"(underline(S)) $], [$["W"]$],
[Blindleistung], [$Q = "Imag"(underline(S))$], [$["var"]$]
fill: (x, y) => if calc.rem(y, 2) == 0 { tableFillLow } else { tableFillHigh },
[Scheinleitsung], [$(P_s =) space abs(underline(S))$], [$["VA"]$],
[Wirkleistung], [$(P_w =) space P = "Re"{} $], [$["W"]$],
[Blindleistung], [$(P_b =) space Q = "Im"{}$], [$["var"]$]
)
Bei Wiederstand: $R$
$P_w = U_m^2 / 2R = (I_m^2 R)/2$
$U_"eff" = U_m/sqrt(2), I_"eff" = I_m / sqrt(2)$
]
// Komplexe Zahlen
#bgBlock(fill: colorAllgemein)[
#subHeading(fill: colorAllgemein)[Komplexe Zahlen]
#grid(
columns: (auto, auto),
row-gutter: 2mm,
column-gutter: 3mm,
[Euler-Darstellung], $A e^(j phi)$,
[Catesiche-Darstellung], $a + b j$
)
#ComplexNumbersSection(i: $j$)
]
@@ -1168,6 +1341,8 @@
columns: (auto, auto, auto, auto),
inset: 2mm,
align: horizon,
fill: (x, y) => if calc.rem(y, 2) == 1 { rgb("#c5c5c5") } else { white },
table.header([], [*Ein-Tor*], [*Zwei-Tor*], [*Reaktive Elemente*]),
[*passiv*\ (nimmt Energie auf)\ $not$aktiv],
[$forall (u,i) in cal(F): u dot i >= 0$],

View File

@@ -13,7 +13,7 @@
ctx.zap.style.insert("einTor", (
scale: auto,
fill: auto,
fill: none,
height: 3mm,
width: 6mm,
))

View File

@@ -27,6 +27,9 @@
align(left, block(e))
}
#let tableFillHigh = white
#let tableFillLow = color.lighten(gray, 50%)
#let sinTable = [
#let data = json("../sintable.json")
#table(
@@ -34,10 +37,11 @@
rows: data.keys().len(),
stroke: none,
table.hline(stroke: (thickness: 0.3mm)),
fill: (x, y) => if (calc.rem(y, 2) == 0) { color.lighten(gray, 50%) } else { white },
fill: (x, y) => if (calc.rem(y, 2) == 0) { tableFillLow } else { tableFillHigh },
..for (label) in data.keys() {
([*#eval(label, mode: "math")*], )
table.vline(),
..for (i, label) in data.keys().enumerate() {
([*#eval(label, mode: "math")*], if i > 0 { table.vline() } else { table.vline(stroke: none) })
},
table.hline(stroke: (thickness: 0.3mm)),
@@ -46,6 +50,22 @@
for (col) in data.keys() {
(eval(data.at(col).at(i), mode: "math"),)
}
}
},
table.hline(stroke: (thickness: 0.3mm)),
)
]
#let ComplexNumbersSection(i: $i$) = [
$1/#i = #i^(-1) = -#i quad quad #i^2=-1 quad quad sqrt(#i) = 1/sqrt(2) + 1/sqrt(2)#i$
$z in CC = a + b #i quad quad quad z = r dot e^(phi #i)$ \
$z_0 + z_1 = (a_0 + a_1) + (b_0 + b_1) #i$\
$z_0 dot z_1 = (a_1 a_2 - b_1 b_2) + #i (a_1b_2 + a_2 b_1) = r_0 r_1 e^(#i (phi_0 + phi_1))$\
$z^x = r^x dot e^(phi #i dot x) quad x in RR$ \
$z_0/z_1 = r_0/r_1 e^(#i (phi_0 - phi_1)) quad quad quad$
$r = abs(z) quad phi = cases(
+ arccos(a/r) space : space b >= 0,
- arccos(a/r) space : space b < 0,
)$
]

290
src/lib/fetModel.typ Normal file
View File

@@ -0,0 +1,290 @@
#import "@preview/zap:0.5.0"
#import "@preview/cetz-plot:0.1.3"
#set page(width: auto, height: auto)
#let FetModelSubstrate = zap.circuit({
import zap: *
import cetz.draw: *
rect(
(0, 0),
(12, 4),
fill: rgb("#ffb1b1"),
name: "p",
)
rect((0, -0.05), (12, -0.05), stroke: 3pt, name: "substrate")
earth("g1", (11.5, 0))
content("substrate", [Bulk], anchor: "north", padding: 0.2)
})
#let FetModel1 = zap.circuit({
import zap: *
import cetz.draw: *
rect(
(0, 0),
(12, 4),
fill: rgb("#ffb1b1"),
name: "p",
)
rect((0, -0.05), (12, -0.05), stroke: 3pt, name: "substrate")
earth("g1", (11.5, 0))
rect((2.75, 3), (5.25, 4), fill: rgb("#61ff9f"), name: "kanal1", radius: (
south: 0.2,
))
rect((6.75, 3), (9.25, 4), fill: rgb("#61ff9f"), name: "kanal2", radius: (
south: 0.2,
))
content("kanal1", [n+], anchor: "center", padding: 0.2)
content("kanal2", [n+], anchor: "center", padding: 0.2)
content("substrate", [Bulk], anchor: "north", padding: 0.2)
})
#let FetModel2 = zap.circuit({
import zap: *
import cetz.draw: *
rect(
(0, 0),
(12, 4),
fill: rgb("#ffb1b1"),
name: "p",
)
rect((0, -0.05), (12, -0.05), stroke: 3pt, name: "substrate")
earth("g1", (11.5, 0))
rect((2.75, 3), (5.25, 4), fill: rgb("#61ff9f"), name: "kanal1", radius: (
south: 0.2,
))
rect((6.75, 3), (9.25, 4), fill: rgb("#61ff9f"), name: "kanal2", radius: (
south: 0.2,
))
content("kanal1", [n+], anchor: "center", padding: 0.2)
content("kanal2", [n+], anchor: "center", padding: 0.2)
content("substrate", [Bulk], anchor: "north", padding: 0.2)
rect((0, 4), (12, 4.5), fill: rgb("#fffc61"), name: "isolator")
content("isolator.west", [Isolator ($"SiO"_2$)], anchor: "west", padding: .2)
})
#let FetModel3 = zap.circuit({
import zap: *
import cetz.draw: *
rect(
(0, 0),
(12, 4),
fill: rgb("#ffb1b1"),
name: "p",
)
rect((0, -0.05), (12, -0.05), stroke: 3pt, name: "substrate")
earth("g1", (11.5, 0))
rect((2.75, 3), (5.25, 4), fill: rgb("#61ff9f"), name: "kanal1", radius: (
south: 0.2,
))
rect((6.75, 3), (9.25, 4), fill: rgb("#61ff9f"), name: "kanal2", radius: (
south: 0.2,
))
content("kanal1", [n+], anchor: "center", padding: 0.2)
content("kanal2", [n+], anchor: "center", padding: 0.2)
content("substrate", [Bulk], anchor: "north", padding: 0.2)
rect((0, 4), (3, 4.5), fill: rgb("#fffc61"), name: "isolator2")
rect((5, 4), (7, 4.5), fill: rgb("#fffc61"))
rect((9, 4), (12, 4.5), fill: rgb("#fffc61"), name: "isolator")
rect((3, 4), (5, 4.25), fill: gray)
rect((7, 4), (9, 4.25), fill: gray)
rect((5.1, 4.5), (6.9, 4.75), fill: gray)
content("isolator", [$"SiO"_2$])
content("isolator2", [Isolator])
})
#let FetModel(type: "N", s: 100%) = zap.circuit({
import zap: *
import cetz.draw: rect, content
cetz.draw.scale(s)
let pTypeFill = rgb("#ffb1b1");
let pTypeFill = rgb("#ffb1b1");
let nTypeFill = rgb("#61ff9f")
rect(
(0, 0),
(12, 4),
fill: if(type == "N") { pTypeFill } else { nTypeFill },
name: "p",
)
rect((0, -0.05), (12, -0.05), stroke: 3pt, name: "substrate")
earth("g1", (11.5, 0))
wire((13, 5.5), (13, 0), mark: (end: ">"))
node("n-r1", (13, 5.75))
wire((6, 4.5), (6, 5.75))
node("n-g1", (6, 5.75))
wire("n-g1", "n-r1")
node("n-s1", (4, 5))
wire("n-s1", (4, 4.25))
node("n-d1", (8, 5))
wire("n-d1", (8, 4.25))
rect((0, 4), (3, 4.5), fill: rgb("#fffc61"), name: "isolator2")
rect((5, 4), (7, 4.5), fill: rgb("#fffc61"))
rect((9, 4), (12, 4.5), fill: rgb("#fffc61"), name: "isolator")
rect((3, 4), (5, 4.25), fill: gray)
rect((7, 4), (9, 4.25), fill: gray)
rect((5.1, 4.5), (6.9, 4.75), fill: gray)
content("n-g1", [*G*\ate], anchor: "south", padding: 0.2, auto-scale: true)
content("n-s1", [*S*\ource], anchor: "south", padding: 0.2)
content("n-d1", [*D*\rain], anchor: "south", padding: 0.2, auto-scale: true)
content("substrate", [Bulk], anchor: "north", padding: 0.2, auto-scale: true)
content("p", if type == "N" [p] else [n], auto-scale: true)
content("isolator", [$"SiO"_2$], auto-scale: true)
content("isolator2", [Isolator], auto-scale: true)
rect((2.75, 3), (5.25, 4), fill: if(type == "N") { nTypeFill } else { pTypeFill }, name: "kanal1", radius: (
south: 0.2,
))
rect((6.75, 3), (9.25, 4), fill: if(type == "N") { nTypeFill } else { pTypeFill }, name: "kanal2", radius: (
south: 0.2,
))
content("kanal1", if type == "N" [n+] else [p+], anchor: "center", padding: 0.2, auto-scale: true)
content("kanal2", if type == "N" [n+] else [p+], anchor: "center", padding: 0.2, auto-scale: true)
})
#let FetModelConducting = zap.circuit({
import zap: *
import cetz.draw: *
rect(
(0, 0),
(12, 4),
fill: rgb("#ffb1b1"),
name: "p",
)
rect((0, -0.05), (12, -0.05), stroke: 3pt, name: "substrate")
earth("g1", (11.5, 0))
wire((13, 5.5), (13, 0), mark: (end: ">"))
node("n-r1", (13, 5.75))
wire((6, 4.5), (6, 5.75))
node("n-g1", (6, 5.75))
wire("n-g1", "n-r1")
node("n-s1", (4, 5))
wire("n-s1", (4, 4.25))
node("n-d1", (8, 5))
wire("n-d1", (8, 4.25))
rect((0, 4), (3, 4.5), fill: rgb("#fffc61"), name: "isolator2")
rect((5, 4), (7, 4.5), fill: rgb("#fffc61"))
rect((9, 4), (12, 4.5), fill: rgb("#fffc61"), name: "isolator")
rect((3, 4), (5, 4.25), fill: gray)
rect((7, 4), (9, 4.25), fill: gray)
rect((5.1, 4.5), (6.9, 4.75), fill: gray)
content("n-g1", [*G*\ate], anchor: "south", padding: 0.2)
content("n-s1", [*S*\ource], anchor: "south", padding: 0.2)
content("n-d1", [*D*\rain], anchor: "south", padding: 0.2)
content("substrate", [Bulk], anchor: "north", padding: 0.2)
content("p", [p])
content("isolator", [$"SiO"_2$])
content("isolator2", [Isolator])
rect((2.75, 3), (5.25, 4), fill: rgb("#61ff9f"), name: "kanal1", radius: (
south: 0.2,
))
rect((6.75, 3), (9.25, 4), fill: rgb("#61ff9f"), name: "kanal2", radius: (
south: 0.2,
))
rect((5.20, 3.99), (6.8, 3.9), fill: rgb("#61ff9f"), stroke: none)
content("kanal1", [n+], anchor: "center", padding: 0.2)
content("kanal2", [n+], anchor: "center", padding: 0.2)
rect((0.5, -1), (1, -0.70), fill: gray, stroke: none, name: "metal")
content("metal", [metal], anchor: "west", padding: 0.3)
rect((0.5, -1.2), (1, -1.5), fill: rgb("#61ff9f"), stroke: none, name: "n")
content("n", [n+], anchor: "west", padding: 0.3)
rect(
(2.5, -1),
(3, -0.7),
fill: rgb("#ffb1b1"),
stroke: none,
name: "p-substrate",
)
content("p-substrate", [p], anchor: "west", padding: 0.3)
rect((2.5, -1.2), (3, -1.5), fill: rgb("#fffc61"), stroke: none, name: "siO2")
content("siO2", [oxide], anchor: "west", padding: 0.3)
})
#let FetPlot() = {
let u_gs = 1
let beta = 1
cetz.canvas({
import cetz-plot: plot
import cetz: draw.content
cetz.draw.set-style(axes: (
shared-zero: false,
overshoot: 0.2,
x: (mark: (end: ">", fill: black, scale: 0.6)),
y: (mark: (end: ">", fill: black, scale: 0.6)),
))
plot.plot(
size: (2, 2),
name: "plot",
axis-style: "school-book",
x-min: 0,
x-tick-step: none,
y-tick-step: none,
x-label: $U_"GS"$,
y-label: $U_"DS"$,
{
plot.add-fill-between(domain: (1, 6), ((1, 0), (1, 5)), u_gs => u_gs - u_t)
plot.add(domain: (0, 5), fill: true, axes: ("y", "x"), _ => 1)
plot.add(domain: (1, 6), fill: true, u_gs => u_gs - u_t)
plot.add-anchor("I", (0.5, 2.5))
plot.add-anchor("II", (4.5, 1.5))
plot.add-anchor("III", (2.5, 3.5))
plot.add-anchor("ut", (u_t, 0))
}
)
content("plot.ut", $U_t$, anchor: "north", padding: 0.1)
content("plot.I", [I])
content("plot.II", [II])
content("plot.III", [III])
})
}

View File

@@ -0,0 +1,13 @@
// Math macors
#let kern(x) = $op("kern")(#x)$
#let alg(x) = $op("alg")(#x)$
#let geo(x) = $op("geo")(#x)$
#let spann(x) = $op("spann")(#x)$
#let Bild(x) = $op("Bild")(#x)$
#let Rang(x) = $op("Rang")(#x)$
#let Eig(x) = $op("Eig")(#x)$
#let lim = $limits("lim")$
#let ip(x, y) = $lr(angle.l #x, #y angle.r)$
#show math.integral: it => math.limits(math.integral)
#show math.sum: it => math.limits(math.sum)