diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ceb386 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +venv diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 2377ce9..421fd85 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -14,4 +14,4 @@ } } ] -} \ No newline at end of file +} diff --git a/reihen_plot.png b/reihen_plot.png new file mode 100644 index 0000000..6d544b9 Binary files /dev/null and b/reihen_plot.png differ diff --git a/reihen_plot.py b/reihen_plot.py new file mode 100644 index 0000000..5c2d320 --- /dev/null +++ b/reihen_plot.py @@ -0,0 +1,17 @@ +from matplotlib import pyplot as plt + +f = lambda x_prev: 1/4 * (x - 3) +x = 0 + +reihe = [x] + +for i in range(100): + x = f(x) + reihe.append(x) + +plt.plot(reihe, marker='o', linestyle='-') +plt.title("Reihen Plot") +plt.xlabel("n") +plt.ylabel("x_n") +plt.grid() +plt.savefig("reihen_plot.png", dpi=500) \ No newline at end of file diff --git a/src/Analysis1.typ b/src/Analysis1.typ index 9a2026a..3fcd074 100644 --- a/src/Analysis1.typ +++ b/src/Analysis1.typ @@ -9,6 +9,7 @@ main-spacing: 1mm, cross-spacing: 1mm, stdBlock([ + == #hlHeading([Trig Identitäten]) $sin(x+y) = cos(x)sin(y) + sin(x)cos(y)$ \ $cos(x+y) = cos(x)cos(y) - sin(x)sin(y)$ \ @@ -50,5 +51,91 @@ $arcsin(x) = -arccos(x) - pi/2 in [-pi/2, pi/2]$ \ $arccos(x) = -arcsin(x) + pi/2 in [0, pi]$ ]), - sinTable + sinTable, + stdBlock([ + #grid( + columns:(auto, auto), + gutter: 1mm, + [ + == #hlHeading([Folgen]) + $ lim_(x->infinity) a_n $ + - *Beschränkt*: $exists k in RR$ so dass $abs(a_n) <= k$ + - $epsilon$-Interval: $x in (a - epsilon, a + epsilon) <=> abs(x - a) < epsilon$ + - *Beweiß:* Induktion/Ungleichung + - Hat min. eine konvergent Teilfolge + - *Konvergent*: + - Es gibt $forall epsilon > 0$ eine Index $n_epsilon in NN$ sodass \ $abs(a_n - a) < epsilon space forall n > n_epsilon$ + - Divergent $-> infinity$, wenn $forall k in RR : exists space a_n > k$ + - Divergent $-> -infinity$, wenn $forall k in RR : exists space a_n < k$ + - Genzwert is eindeutig + - *Monoton: steigen/fallend* $a_(n+1) gt.eq.lt a_n$ + - *Beweisen:* Induktion mit \ $a_(n+1) gt.eq.lt a_n$ oder $a_(n+1) / a_(n) gt.lt 1 $ + - *Konvergenz $a_n -> a$ $<=>$ beschränkt UND monoton* + - $<=>$ Alle Teilefolgen konvergent zu $a$ + - Wenn Häufungspunk $eq.not$ $=>$ divergent + - Sandwitch-Theorem + + === Kriterien + $not$ Kriterium $=>$ $not$ Konvergenz *ABER*\ Kriterium $arrow.r.double.not$ Konvergenz + - Canchy-Kriterium: $forall space epsilon > 0 space exists space n,m > n_epsilon $ \ sodass $(a_n - a_m) < epsilon$ + ], + grid.vline(stroke: 0.1mm + black, position: start), + pad([ + === Grenzwert Finden: + - "Bottom up" von Bekannten Ausdrücken + - Fixpunk Gleösenichung l $a = f(a)$ für $f(a_n)$ + - Bernoulli-Ungleichung für $(a_n)^n$ \ + $(1 + a)^n >= 1 + n a$ für $a >= -1$ + + Für Konvergent Folgen: + #grid( + columns: (auto, auto), + align: bottom, + gutter: 2mm, + [$ lim_(n->infinity) (a_n + b_n) = a + b $], + grid.cell( + rowspan: 2, + [$ lim_(n->infinity) (a_n / b_n) = a / b $], + ), + MathAlignLeft($ lim_(n->infinity) (a_n dot b_n) = a dot b $), + MathAlignLeft($ lim_(n->infinity) sqrt(a_n) = sqrt(a) $), + MathAlignLeft($ lim_(n->infinity) abs(a_n) = abs(a) $), + MathAlignLeft($ lim_(n->infinity) c dot a_n = c dot lim_(n->infinity) a_n $), + ) + + == Spezifische Folgen + #grid( + columns: (auto, auto, auto), + column-gutter: 4mm, + row-gutter: 2mm, + align: bottom, + MathAlignLeft($ lim_(n->infinity) 1/n = 0 $), + MathAlignLeft($ lim_(n->infinity) q^n = 0 $), + MathAlignLeft($ lim_(n->infinity) q^n = 0 $), + grid.cell(colspan: 2, MathAlignLeft($ lim_(n->infinity) k = k, k in RR $)), [], + grid.cell(colspan: 2, MathAlignLeft($ exp(x) = e^x = lim_(n->infinity) (1 + x/n)^n $)) + ) + ], left: 1mm) + ) + + + + ]), + stdBlock([ + == #hlHeading([Reihen]) + === Spezifische Reihen + #grid(columns: (auto, auto), column-gutter: 4mm, row-gutter: 2mm, + [ + Geometrische Reihe: + $ sum_(n=0)^infinity $ + - $ a_(n+q) = q a_n $ + - Beschränkt: $abs(q) <= 1$ + - Unbeschränkt: $abs(q) > 1$ + ], + [ + Harmonische Reihe: + $ sum_(n=0)^infinity 1/n = +infinity $ + ] + ) + ]), ) diff --git a/src/lib/common.typ b/src/lib/common.typ index e7b6b2f..4718cc6 100644 --- a/src/lib/common.typ +++ b/src/lib/common.typ @@ -18,6 +18,6 @@ [$5/6pi$], [$150°$], hlMath([$-sqrt(3)/2$], color: hlRed), hlMath([$1/2$], color: hlGreen), [$pi$], [$180°$], hlMath([$-1$], color: hlRed), hlMath([$0$]), [$3/2pi$], [$270°$], hlMath([$0$]), hlMath([$-1$], color: hlRed), - [$2pi$], [$360°$], hlMath([$1$], color: hlGreen), hlMath([$0$] mm) + [$2pi$], [$360°$], hlMath([$1$], color: hlGreen), hlMath([$0$]) ) ] \ No newline at end of file diff --git a/src/lib/styles.typ b/src/lib/styles.typ index 0f0df9c..a9f33f3 100644 --- a/src/lib/styles.typ +++ b/src/lib/styles.typ @@ -20,6 +20,12 @@ #let hlRed = rgb("#ff6969"); #let hlGreen = rgb("#76ff69"); +#let hlHeading(content, color: rgb("#ff69fd")) = box( + content, + outset: 2pt, + fill: color, +) + #let stdBlock(content) = { block( stroke: 0.2mm, @@ -29,6 +35,10 @@ ) } +#let MathAlignLeft(e) = { + align(left, block(e)) +} + /* Usage examples: #blockm("Hello", top: 10pt, bottom: 10pt) #blockm(#p("Paragraph inside a margin-set block."), left: 12pt, right: 12pt)