From 843fda0210797b024e581cb7ecb5f72d987fdef9 Mon Sep 17 00:00:00 2001 From: Sven Riwoldt Date: Sat, 28 Mar 2026 12:25:05 +0100 Subject: [PATCH] Band 2 Grafiken bis 2.4 --- Band2/Band2.typ | 584 ++++++------------ Band2/Grafiken/B2.1.typ | 72 +++ Band2/Grafiken/B2.2.typ | 48 ++ Band2/Grafiken/B2.3.typ | 135 ++++ .../{Grafiken.typ => Grafiken_Beispiele.typ} | 281 ++++++++- Band2/abhaengigkeit.typ | 360 +++++++++++ Band2/grafiken.typ | 215 +++++++ Band2/snippets.typ | 29 + 8 files changed, 1344 insertions(+), 380 deletions(-) rename Band2/Grafiken/{Grafiken.typ => Grafiken_Beispiele.typ} (71%) create mode 100644 Band2/abhaengigkeit.typ create mode 100644 Band2/grafiken.typ create mode 100644 Band2/snippets.typ diff --git a/Band2/Band2.typ b/Band2/Band2.typ index bef8c3a..43ba1db 100644 --- a/Band2/Band2.typ +++ b/Band2/Band2.typ @@ -1,6 +1,3 @@ -#import "@preview/cetz:0.4.2": * //Grafiken -#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge - #import "@preview/marge:0.1.0": sidenote #import "@preview/itemize:0.2.0" as el @@ -9,21 +6,41 @@ #import "deckblatt.typ": deckblatt -//#import "abhaengigkeit.typ": abhaengigkeit +#import "abhaengigkeit.typ": abhaengigkeit #let einruecken(abstand, inhalt) = pad(left: abstand, inhalt) #let def-counter = counter("definition") +// Zähler bei jedem neuen Kapi#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge + +#import "@preview/marge:0.1.0": sidenote + +#import "@preview/itemize:0.2.0" as el + +#import "@preview/eqalc:0.1.3": * +#import "grafiken.typ": * + +#import "deckblatt.typ": deckblatt + +#import "abhaengigkeit.typ": abhaengigkeit + +#let einruecken(abstand, inhalt) = pad(left: abstand, inhalt) + +#let def-counter = counter("definition") + +#let bsp-counter = counter("besipiel") + // Zähler bei jedem neuen Kapitel (Ebene 1) zurücksetzen -#let def-counter = counter("definition") +#let hrule = line(length: 100%) // Zähler bei jedem neuen Kapitel zurücksetzen #show heading.where(level: 1): it => { it - def-counter.update(0) + def-counter.update(1) + bsp-counter.update(1) } #let definition(title: none, body, label: none) = context { @@ -46,12 +63,42 @@ ] } +#let beispiel(title: none, body, label: none) = context { + bsp-counter.step() + + let h1-num = counter(heading).at(here()).first() + let b-num = bsp-counter.at(here()).first() + let full-num = [#h1-num.#b-num] + + // Die Figure wird erstellt und das Label direkt angehängt + [ + #figure( + block(width: 100%, align(left)[ + #hrule + *Beispiel #full-num*: #if title != none [(#title)] #body + #hrule]), + kind: "beispiel", + supplement: [B.], + numbering: _ => full-num, + ) #label + ] +} + + + // Zähler bei jedem neuen Kapitel (Ebene 1) zurücksetzen #show heading.where(level: 1): it => { it def-counter.update(1) } +#show figure.caption: it => { + it.supplement // "Abbildung" + [ ] // Ein Leerzeichen statt des Doppelpunkts + context it.counter.display(it.numbering) + [ ] // Noch ein Leerzeichen vor dem Text + it.body // Der eigentliche Text der Caption +} #let sn-base = sidenote @@ -67,9 +114,6 @@ ] - -//#import "definitionen.typ": * - #set text( font: "Lato", //Serifenlose Schrift size: 8.5pt, @@ -91,9 +135,13 @@ #let meinContent = [*Band 7* #sym.dot.c _Grundlagen_] // Einfach die Funktion aufrufen #deckblatt(bandnr: "2", autor: tt, titel: "Differential- und Integralrechnung\nfür Funktionen\nmit einer Variablen") -#pagebreak() + + + +#pagebreak() + #set page( width:162mm, height: 230mm, @@ -105,6 +153,7 @@ leading: 0.55em, ) + #set page( //background: grid(columns: (1mm,) * 162, rows: (1mm,) * 230, stroke: 0.1mm), margin: ( @@ -123,361 +172,7 @@ //edge(label(str(name)+".west"), label(str(name)+".east"),"-", stroke: 0.2mm, dash:(1mm, 0.8mm)) } */ -#let mynode(pos, zahl, inhalt, name) = { -node( - pos, - name: name, - shape: rect, // 1. Zwingt Fletcher zum Rechteck - corner-radius: 0pt, // 2. Verhindert abgerundete Ecken - fill: white, // Optional: Hintergrund füllen - stroke: 1.25pt, - - // 3. WICHTIG: Festlegen einer Mindestgröße, damit alle gleich starten - // Anstatt extrude nutzen wir feste Maße, die sich aber am Gitter ausrichten - width: 12em, - height: 5.8em, - - { - // Dein Layout-Block - set align(top + right) - text(2.5em, fill: gray.darken(90%))[#zahl] - place(bottom + left, inhalt) - } -)} - -#let myedge(start, end, type, ) = { - let sep = 0.15em - edge(start, end, type) - edge(start, end) -} - -#diagram( - spacing: (11mm, 7mm), - //debug: 3, - edge-stroke: 1.25pt, - - mark-scale: 55%, - mynode((0,0),"",[Vorbereitungsband], ), - mynode((1,0),"1", [Grundlagen], ), - mynode((2,0), "13",[Lineare Algebra], ), - - mynode((0,1),"3",[Unendliche Reihen], ), - mynode((1,1), "2",[Differential- und Integralrechnung], ), - mynode((2,1), "14",[Lineare Optimierung], ), - - mynode((0,2), [7$#sub(text(0.5em)[1])$],[Gewöhnliche Differentialgleichungen], ), - mynode((1,2), "4",[Differentialrechnung mit mehreren Variablen], ), - mynode((2,2), "15",[Nichtlineare Optimierung], ), - - mynode((0,3), [7$#sub(text(0.5em)[2])$],[Gewöhnliche Differentialgleichungen], ), - mynode((1,3.), "5",[Integralrechnung mit mehreren Variablen], ), - mynode((2,3), "16",[Optimale Prozesse und Systeme], ), - - mynode((0,4), "8",[Partielle Differentialgleichungen], ), - mynode((1,4), "6",[Differentialgeometrie], ), - mynode((2,4), "17",[Wahrscheinlichkeitsrechnung, math.Statistik], ), - - mynode((0,5), "9",[Komplexe Funktionen], ), - mynode((1,5), "10",[Operatorenrechnung], ), - mynode((2,5), [21$#sub(text(0.5em)[1])$],[Spieltheorie], ), - - mynode((0,6), "12",[Spezielle Funktionen], ), - mynode((1,6), "11",[Tensoralgebra und -analysis], ), - mynode((2,6), [21$#sub(text(0.5em)[2])$],[Graphentheorie], ), - - mynode((0,7), [18],[Numerische Methoden], ), - mynode((1,7), [20],[Simulation], ), - mynode((2,7), [19$#sub(text(0.5em)[1])$],[Stochastische Prozesse und Modelle], ), - - mynode((0,8), [22],[Funktionalanalysis], ), - mynode((1,8), [23],[Symmetriegruppen], ), - mynode((2,8), [19$#sub(text(0.5em)[2])$],[Statistische Versuchsplanung], ), - - - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - myedge(,,"-|>"), - // NEUES Edge: 1,3 (n3_1) → 3,2 (n2_3) - // Verlauf: rechts von n3_1 nach rechts, runter auf Höhe von n2_3, dann links zur Node - - //9 → 22 -edge( - vertices: ( - , - (0, 5.2), // deutlich nach rechts → sichtbarer Knick - (0.5, 5.2), // dann nach links - (0.5, 8), // runter - , - ), - corner: right, - corner-radius: 0pt, // abgerundete Ecken! - stroke: orange + 1.25pt, - marks: "-|>", - shift: (1pt, 1pt), -), -//10 → 22 -edge( - vertices: ( - , - (1, 5.2), // deutlich nach rechts → sichtbarer Knick - (0.5, 5.2), // dann nach links - (0.5, 8), // runter - , - ), - corner: left, - corner-radius: 0pt, // abgerundete Ecken! - stroke: orange + 1.25pt, - marks: "-|>", - shift: (1pt, 1pt), -), -//3 → 7.2 -edge( - vertices: ( - , - (-0.85, 1), // deutlich nach rechts → sichtbarer Knick - (-0.85, 1), // dann nach links - (-0.85, 3), // runter - , - ), - corner: left, - corner-radius: 0pt, // abgerundete Ecken! - stroke: red + 1.25pt, - marks: "-|>", - shift: (1pt, 1pt), -), - -//13 → 4 -edge( - vertices: ( - , - (2, 0.18), // deutlich nach rechts → sichtbarer Knick - (1.5, 0.2), // dann nach links - (1.5, 2), // runter - , - ), - corner: left, - corner-radius: 0pt, // abgerundete Ecken! - stroke: green + 1.25pt, - marks: "-|>", - shift: (2pt, 2pt), -), - -//1 → 13 - edge( - (rel: (0pt, 5mm), to: ), - (rel: (0.1, 0.)), - (rel: (0pt, 5mm), to: ), - "-|>", - corner-radius: 0pt , - stroke: green.darken(30%) + 1.25pt, -), - -//5 → 8 -edge( - (rel: (0pt, 0mm), to: ), - - (rel: (-0.15, 0.)), - (rel: (0.08,0), to: ), - (rel: (0.,0), to: ), - "-|>", - corner-radius: 0pt , - stroke: 1.25pt + olive, - ), - - //7_1 → 6 -edge( - vertices: ( - (rel: (0pt, -2pt), to: ), - (0.25, 2.2), - (0.52, 2.2), - (0.52,4), - (rel: (0pt, 0pt), to: ) - ), - corner-radius: 0pt, - stroke: gray + 1.25pt, - marks: "-|>", -), - //4 → 7_1 -edge( - (rel: (0pt, 5mm), to: ), - - (rel: (-0.1, 0.)), - - (rel: (0pt, 5mm), to: ), - "-|>", - corner-radius: 0pt , - stroke: 1.25pt , -), - //9 → 10 - edge( - (rel: (0pt, 5mm), to: ), - - (rel: (0.1, 0.)), - - (rel: (0pt, 5mm), to: ), - "-|>", - corner-radius: 0pt , - stroke: 1.25pt , -), - //5 → 17 - edge( - , - - (rel: (0.07, 0.)), - (rel: (0, 0.5)), - - (rel: (0pt, 10pt), to: ), - , - "-|>", - corner-radius: 0pt , - stroke: blue.lighten(20%) +1.25pt , -), - //4 → 15 - edge( - (rel: (0pt, -5mm), to: ), - - (rel: (0.1, 0.)), - - (rel: (0pt, -5mm), to: ), - "-|>", - corner-radius: 0pt , - stroke: 1.25pt , -), - //8 → 16 -edge( - (rel: (0.2,0), to: ), - (rel: (0., 0.1)), - (rel: (1.3, 0.)), - (rel: (-0.115, 0), to: ), - , - "-|>", - corner-radius: 0pt , - stroke: 1.25pt + yellow.darken(20%), - ), - //6 → 11 - edge( - (rel: (0pt, -5mm), to: ), - - (rel: (0.065, 0.)), - (rel: (0.065,0), to: ), - (rel: (0.,0), to: ), - "-|>", - corner-radius: 0pt , - stroke: 1.25pt + purple.lighten(20%), - ), - //13 → 23 - edge( - (), - (rel:(0.75,0)), - (rel:(0, 9.8)),// <---- - (rel:(-3.38, 0)), - //(rel: (0.6, 0.), to: ), - , - "-|>", - corner-radius: 0pt , - stroke: 1.25pt + orange.darken(10%), - - ), - - //15 → 21_1 21_2 - edge( - (), - // Startpunkt - (rel: (0.5, 0)), - (rel: (0.5, 0.), to: ), - , - "-|>", - corner-radius: 0pt , - stroke: 1.25pt + blue, - ), - edge( - (), - // Startpunkt - (rel: (0.5, 0)), - (rel: (0.5, 0.), to: ), - , - "-|>", - corner-radius: 0pt , - stroke: 1.25pt + blue, - ), - - //16 → 19_1 19_2 - edge( - (), - (rel: (0.3, 0)), - (rel: (0.3, 0.), to: ), - , - "-|>", - corner-radius: 0pt , - stroke: 1.25pt + purple, - ), -edge( - (), - (rel: (0.3, 0)), - (rel: (0.3, 0.), to: ), - , - "-|>", - corner-radius: 0pt , - stroke: 1.25pt + purple, - ), - - //17 → 21_2 -edge( - (rel: (-0.2,0), to: ), - (rel: (0, 0.2)), - (rel: (-.325, 0.)), - (rel: (-0.14, 0), to: ), - , - "-|>", - corner-radius: 0pt , - stroke: 1.25pt + red, - ), - //17 → 19_1, 19_2 -edge( - (), - (rel: (-0.075, 0)), - (rel: (-0.075,-0.20), to: ), - (rel: (0.,-0.2), to: ), - "-|>", - corner-radius: 0pt , - stroke: 1.25pt + green, - ), - edge( - (), - (rel: (-0.075, 0)), - (rel: (-0.075, 0.), to: ), - , - "-|>", - corner-radius: 0pt , - stroke: 1.25pt + green, - ), - - //19_2 → 20 - edge( - (), - (rel: (-0.2, 0)), - (rel: (0, -0.1)), - (rel: (-0, 0.18), to: ), - , - "-|>", - corner-radius: 0pt , - stroke: 1.25pt + blue, -), -) +#abhaengigkeit #show heading: it => { set block(below: if it.level == 1 { 2em } else { 1em }) @@ -513,7 +208,7 @@ edge( #set outline(indent: auto) - +#show figure.where(kind: image): set figure(supplement: [Bild]) //Abbildung zu Bild #set page( header: context { @@ -564,6 +259,7 @@ edge( ) + #show selector(): set heading(numbering: none) = Vorwort @@ -611,22 +307,154 @@ Die mathematischen Möglichkeiten reichen jedoch über die unmittelbare Anwendba #pagebreak() -= Grenzwerte +#set math.equation( + numbering: n => numbering("(2.1)", n), + supplement: none, +) +#let numbered_eq(label_name, content) = [ + #math.equation( + block: true, + content + ) + #label(label_name) +] +#show figure: set figure(numbering: n => { + let chap = counter(heading).get().at(0) + [#chap.#n] +}) -//== Grenzwert einer Funktion für $\boldsymbol{x} \rightarrow \boldsymbol{x}_0$ -// 2.1.1. Definition des Grenzwertes einer Funktion für $\boldsymbol{x} \rightarrow \boldsymbol{x}_0$ -// Im folgenden bedeutet „Funktion“ stets „reellwertige Funktion einer reellen Variablen". -// Als Vorbereitung auf den Grenzwertbegriff für Funktionen behandeln wir das -// Beispiel 2.1: An die Parabel $y=x^2$ werde die Sekante durch den festen Kurvenpunkt $P_0\left(\frac{1}{2}, \frac{1}{4}\right)$ und den variablen Kurvenpunkt $P\left(x, x^2\right)$ gelegt (s. Bild 2.1). Der Anstieg der Sekante ist eine Funktion $f$ von $x$ : += Grenzwerte *$x arrow.r x_0$* -// $$ -// f(x)=\frac{x^2-\frac{1}{4}}{x-\frac{1}{2}} \quad\left(x \neq \frac{1}{2}\right) . -// $$ +== Grenzwert einer Funktion für *$x arrow.r x_0$* -$x arrow.r x_0$ +Im folgenden bedeutet "Funktion" stets "reellwertige Funktion einer reellen Variablen". +Als Vorbereitung auf den Grenzwertbegriff für Funktionen behandeln wir das + +#beispiel[An die Parabel $y=x^2$ werde die Sekante durch den festen Kurvenpunkt $P_0(1/2, 1/4)$ und den variablen Kurvenpunkt $P(x, x^2)$ gelegt (s. @abb1). Der Anstieg der Sekante ist eine Funktion $f$ von $x$: + +#table( + columns: (1fr, 1fr), + column-gutter: 1em, + stroke: none, + align: bottom + center, + [ + #figure( + scale(x: 50%, y: 50%, reflow: true, b2_1), + caption: [], + ) + ], + [ + #figure( + scale(x: 50%, y: 50%, reflow: true, b2_2), + caption: [], + ) + ] +) + +#numbered_eq("eq21", $ f(x)=(x^2 - 1/4)/(x - 1/2) $) + +Auf Grund der Anschauung wird man vermuten, daß bei "Annäherung" von $x$ an die Stelle $ 1/2$ die Sekante in eine gewisse "Grenzlage" übergeht, also auch ihr Anstieg ( @eq21 ) einen gewissen "Grenzwert“ annimmt. Betrachten wir also die Funktion $f$. An der Stelle $x=1/2$ ist $f$ nicht definiert. Für $x eq.not 1/2$ gilt + +#numbered_eq("eq22", $ f(x) = ((x - 1/2) (x + 1/2)) / (x - 1/2) = x + 1/2 quad quad (x eq.not 1/2)$) + +Die Bildkurve von $f$ ist in @abb2 dargestellt #footnote[In @abb2 soll der kleine Kreis um den Punkt $(1)/2, 1)$ andeuten, daß dieser Punkt nicht zur Bildkurve von $f$ gehört. Analog wird in den folgenden Beispielen verfahren.]. Die Anschauung legt jetzt etwa die folgende Formulierung nahe: „Für $x$ gegen $1/2$ strebt $f(x)$ gegen $1$." + +] + +Unsere Aufgabe wird es nun sein, einer solchen Formulierung einen von der Anschauung unabhängigen, wohldefinierten Sinn zu geben. + +Soll allgemein das Verhalten einer Funktion $f$ bei "Annäherung" der unabhängigen Variablen $x$ an eine reelle Zahl $x_0$ untersucht werden, so ist es naheliegend, die Variable $x$ Zahlenfolgen $(x_n)$ mit folgenden Eigenschaften durchlaufen zu lassen: + + +// #align ohne Nummerierung +#align(left,[ +#set math.equation(numbering: none) +$ +& ("E 1") &quad& x_n in D(f) ^#footnote[$D(f)$ bezeichnet den Definitionsbereich von $f$.] &quad& " für alle" n &quad& (n=1,2,3,dots) \ +& ("E 2") && x_n eq.not x_0 && " für alle" n \ +& ("E 3") && lim_(x->n)x_n = x_0 +$]) + +Die Eigenschaft (E 2) bedeutet, daß das Verhalten von $f$ an der Stelle $x_0$ selbst nicht in Betracht gezogen wird. Daher braucht $f$ auch nur in einer sog. _punktierten Umgebung_ von $x_0$ definiert zu sein. Das ist, mit einem $c>0$, die Menge aller $x$ mit +#v(3mm) + +#figure( + { + set math.equation(numbering: none) + scale(x: 70%, y: 70%, reflow: true, b2_3) + }, + caption: [], +) + +Das Verhalten von $f$ in einer punktierten Umgebung von $x_0$ wird nun durch das Verhalten der Folge der Funktionswerte $f(x_n)$ charakterisiert. + + +#definition(label: )[Die #snl([@D.21]) Funktion $f$ sei (mindestens) in einer punktierten Umgebung von $x_0$ definiert. Eine Zahl $g$ heißt *Grenzwert von $f$ für $x$ gegen $x_0$*, in Zeichen +#math.equation( + block: true, + numbering: none, + $ lim_(x->x_0)f(x) = g " oder " f(x)->g " für " x->x_0 $ +) +wenn für je de Folge ( $x_n$ ) mit den Eigenschaften $(E" "1)$, $(E" "2)$, $(E" "3)$ die Folge ( $f(x_n)$ ) gegen $g$ konvergiert.] + +Damit ist der Begriff des Grenzwertes einer Funktion auf den Grenzwertbegriff für Zahlenfolgen zurückgeführt. + +In @abb4 haben wir die ersten drei Glieder einer Folge ( $x_n$ ) und der zugehörigen Folge $f\(x_n))$ eingezeichnet. + +#figure( + { + set math.equation(numbering: none) + scale(x: 70%, y: 70%, reflow: true, b2_4) + }, + caption: [], +) + +#beispiel[Gesucht ist der Grenzwert der Funktion +#math.equation( + block: true, + numbering: none, +$ f(x)=(x^2-1/4)/(x-1/2) " für " x -> 1/2. $ +) + +Es sei $(x_n)$ eine beliebige Folge mit + +#numbered_eq("eq23", $ x_n eq.not 1/2 " für alle " n " und " lim_(n->infinity)x_n = 1/2 $ ) + +Unter Verwendung von @eq22 und bekannten Grenzwertsätzen für Zahlenfolgen folgt dann + +#numbered_eq("eq24", $ lim_(n->infinity) f(x_n)=lim_(n->infinity}(x_n+1/2)=lim_(n->infinity) x_n + lim_(n->infinity) 1/2 = 1/2 + 1/2 =1 $) + + +Die Gültigkeit von @eq24 wurde für eine beliebige und damit für jede Folge $\(x_n)$ mit den Eigenschaften @eq23 bewiesen. Daher gilt + +/* $$ +\lim _{x \rightarrow \frac{1}{2}} \frac{x^2-\frac{1}{4}}{x-\frac{1}{2}}=1, +$$ + +was in Einklang mit der Anschauung steht (Bild 2.2). */ + +] + + + + +//{n \rightarrow \infty} x_n+\lim _{n \rightarrow \infty} \frac{1}{2}=\frac{1}{2}+\frac{1}{2}=1$ + + +/* +$$ +\lim _{x \rightarrow x_0} f(x)=g \quad \text { oder } \quad f(x) \rightarrow g \quad f \ddot{u} r \quad x \rightarrow x_0, +$$ + + + +*/ + + +/* #import "@preview/cetz-plot:0.1.3": plot @@ -759,9 +587,6 @@ $x arrow.r x_0$ }) - - - #import "@preview/simple-plot:0.3.0": plot //#set page(width: auto, height: auto, margin: 0.5cm) @@ -794,4 +619,5 @@ $x arrow.r x_0$ (fn: x => calc.pow(2, x), stroke: blue + 1.5pt, label: $2^x$), (fn: x => calc.pow(3, x), stroke: red + 1.5pt, label: $3^x$), ) +*/ diff --git a/Band2/Grafiken/B2.1.typ b/Band2/Grafiken/B2.1.typ index e69de29..82f5c1c 100644 --- a/Band2/Grafiken/B2.1.typ +++ b/Band2/Grafiken/B2.1.typ @@ -0,0 +1,72 @@ + +#import "@preview/cetz:0.4.2" +#import "@preview/cetz-plot:0.1.3": plot + +#cetz.canvas(length: 1.25cm,{ + import cetz.draw: * + plot.plot( + //definitionen + name: "plot", + size: (6, 6), + x-tick-step: none, + y-tick-step: none, + axis-style: "school-book", + x-label: $x$, + y-label: $y$, + x-ticks: ((0.5, $1/2$),(1.25, $x$),), + y-ticks: ((0.25, $1/4$),(1.5625, $x^2$),), + { + //berechnungen und plot + let f = x => calc.pow(x, 2) + let x0 = 0.5 + let y0 = f(x0) + let x1 = 1.25 + let y1 = f(x1) + // Berechnung der Steigung m = (y1 - y0) / (x1 - x0) + let m = (y1 - y0) / (x1 - x0) + + + // Sekantenfunktion: s(x) = m * (x - x0) + y0 + let s = x => m * (x - x0) + y0 + + let x1_1 = x1 + 0.1 + let x0_1 = x0 - 0.2 + let y0_1 = y0 + 0.2 + let x2 = ((x1 - x0)/2) + x0 + let y3 = ((y1 - y0)/2) +y0 + + plot.add(x => calc.pow(x, 2), domain: (-1.4, 1.8)) + //Sekante + plot.add(s, domain: (0.3, 1.7), style: (stroke: red)) + plot.add-anchor("pt1", (-1.4,y1)) + plot.add-anchor("P", (x1_1,y1)) + plot.add-anchor("P0", (x0_1,y0_1)) + + plot.add-anchor("F1", (x2,0.14)) + plot.add-anchor("F2", (x1+0.1,y3)) + + + plot.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) + plot.add(((x1, 0), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) + plot.add(((0, y1), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) + plot.add(((0, y0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) + + plot.add(((x0, y0), (x1, y0)), style: (stroke: ( paint: gray.darken(80%), thickness: 0.5pt))) + plot.add(((x1, y0), (x1, y1)), style: (stroke: ( paint: gray.darken(80%), thickness: 0.5pt))) + + + plot.add(((x0, y0),), mark: "o") + plot.add(((x1, y1),), mark: "o") + + + + } + ) + //Der Plot muss einen Namen haben + content("plot.pt1", text(0.85em)[$y=x^2$], anchor: "east", name: "pt") + content("plot.P", text(0.75em)[$P$], anchor: "west", name: "p") + content("plot.P0", text(0.75em)[$P_0$], anchor: "west", name: "p0") + content("plot.F1", text(0.75em)[$x- 1/2$], anchor: "center", name: "f1") + content("plot.F2", text(0.75em)[$x^2- 1/4$], anchor: "west", name: "f2") +}) + diff --git a/Band2/Grafiken/B2.2.typ b/Band2/Grafiken/B2.2.typ index e69de29..29413ee 100644 --- a/Band2/Grafiken/B2.2.typ +++ b/Band2/Grafiken/B2.2.typ @@ -0,0 +1,48 @@ +#import "@preview/cetz:0.4.2" +#import "@preview/cetz-plot:0.1.3": plot + +#cetz.canvas({ + + import cetz.draw: * + set-style( + axes: ( + // Basisstil beibehalten + stroke: (thickness: 0.5pt), + // x-Achse: stealth-Pfeil am Ende + x: (mark: (end: "stealth", fill: black)), + // y-Achse: stealth-Pfeil am Ende + y: (mark: (end: "stealth", fill: black)), + ), + ) + plot.plot( + name: "plot", + size: (5, 5), + x-tick-step: none, + y-tick-step: none, + axis-style: "school-book", + x-label: $x$, + y-label: $y$, + x-ticks: ((0.5, $1/2$),), + y-ticks: ((1, $1$),), + + //definitionen + { + let f = x => if x != 0.5 { (calc.pow(x, 2) - 0.25) / (x - 0.5) } else { none } + let x0 = 0.5 + let y0 = 1 + plot.add(f, domain: (-0.6, 0.75), style: (stroke: blue)) + + plot.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) + + plot.add(((0, y0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) + + plot.add(((x0, y0),), mark: "o") + + plot.add-anchor("F1", (-.7,0.5)) + plot.add-anchor("F2", (-.7,0.35)) + } + ) + content("plot.F1", text(0.85em)[$y=(x^2-1/4)/(x-1/2)$], anchor: "west", name: "pt") + content("plot.F2", text(0.85em)[$(x eq.not 1/2)$], anchor: "west", name: "pt") +}) + diff --git a/Band2/Grafiken/B2.3.typ b/Band2/Grafiken/B2.3.typ index e69de29..dab6ca1 100644 --- a/Band2/Grafiken/B2.3.typ +++ b/Band2/Grafiken/B2.3.typ @@ -0,0 +1,135 @@ +#import "@preview/cetz:0.4.2" +#import "@preview/cetz-plot:0.1.3": plot + +#cetz.canvas(length: 1.25cm,{ + import cetz.draw: * + set-style( + axes: ( + // Basisstil beibehalten + stroke: (thickness: 0.5pt), + // x-Achse: stealth-Pfeil am Ende + x: (mark: (end: "stealth", fill: black)), + // y-Achse: stealth-Pfeil am Ende + y: (mark: (end: "stealth", fill: black)), + ), + ) + plot.plot( + //definitionen + name: "plot", + size: (6, 6), + ymin: -2, + ymax: 6, + x-tick-step: none, + y-tick-step: none, + axis-style: "school-book", + x-label: $x$, + y-label: $y$, + x-ticks: ((0.5, $1/2$),(1.25, $x$),), + y-ticks: ((0, $0$),), + { + //berechnungen und plot + + + plot.add(x => (calc.pow(x, 2) -2), domain: (-1.4, 1.8)) + plot.add(x => (calc.pow(x, 2) +2), domain: (-1.4, 1.8)) + } + ) +}) + +#let linspace(start, end, n)=range(0,n).map(x => x / n * (end - start) + start) + +#cetz.canvas({ + import cetz.draw: * + line((-5,0), (5,0), mark: (end: "stealth", fill: black)) + content((), block(inset: 0.2em)[$x$], anchor: "west") + line((0,-5), (0,5), mark: (end: "stealth", fill: black)) + content((), block(inset: 0.2em)[$p^0$], anchor: "east") + let pe = linspace(-2, 2, 200).map(x => (calc.pow(x,2) +2, x)) + line(..pe, stroke: olive) + // let draw-point(pos, text, color, anchor) = { + // circle(pos, radius: 0.1, fill: color, stroke: none) + // content((), block(inset: 0.3em)[#text], anchor: anchor) + //} + // draw-point((0, 3), "(a)", red, "east") + // draw-point((0, -3), "(b)", blue, "east") + // draw-point((1, 1), "(c)", red, "south-east") + // draw-point((1, -1), "(d)", blue, "north-east") + // draw-point((3, 0), "(e)", olive, "north-east") + // draw-point((0, 0), "(f)", olive, "east") +}) + +#let linspace(start, end, n)=range(0,n).map(x => x / n * (end - start) + start) + +#cetz.canvas({ + import cetz.draw: * + line((0,0), (5,0), mark: (end: "stealth", fill: black)) + content((), block(inset: 0.2em)[$abs(bold(p))$], anchor: "west") + line((0,-5), (0,5), mark: (end: "stealth", fill: black)) + content((), block(inset: 0.2em)[$p^0$], anchor: "east") + let pa = linspace(0, 4, 100).map(x => (x, calc.sqrt(9+x*x))) + line(..pa, stroke: red) + let pb = linspace(0, 4, 100).map(x => (x, -calc.sqrt(9+x*x))) + line(..pb, stroke: blue) + line((0,0), (5,5), stroke: red) + line((0,0), (5,-5), stroke: blue) + let pe = linspace(-4, 4, 100).map(x => (calc.sqrt(9+x*x), x)) + line(..pe, stroke: olive) + let draw-point(pos, text, color, anchor) = { + circle(pos, radius: 0.1, fill: color, stroke: none) + content((), block(inset: 0.3em)[#text], anchor: anchor) + } + draw-point((0, 3), "(a)", red, "east") + draw-point((0, -3), "(b)", blue, "east") + draw-point((1, 1), "(c)", red, "south-east") + draw-point((1, -1), "(d)", blue, "north-east") + draw-point((3, 0), "(e)", olive, "north-east") + draw-point((0, 0), "(f)", olive, "east") +}) + + #import "@preview/cetz:0.3.2" +#import "@preview/cetz-plot:0.1.1" +#cetz.canvas( +{ +import cetz.draw: * +import cetz-plot: * + + +plot.plot( + //size: (5,5), + xmin: -2cm, + xmax: 2cm, + ymin: -2cm, + ymax: 4cm, + x-tick-step: none, + y-tick-step: none, + axis-style: "school-book", + x-label: $x$, + y-label: $y$, + //x-ticks: ((0.5, $1/2$),(1.25, $x$),), + y-ticks: ((2, $2$),(1, $1$)), + plot.add( + domain: (-5,5), + x => calc.pow(x, 2)+2 + ) +) +} +) + +#import "@preview/cetz:0.4.1" +#import "@preview/cetz-plot:0.1.2" + +#cetz.canvas({ + import cetz.draw: * + import cetz-plot: * + + let f = x => (calc.pow(x,2)+2) + plot.plot(size: (6,9), axis-style: "school-book", x-tick-step:none, y-tick-step:none, x-label: $x$, + y-label: $y$, + x-ticks: ((0.5, $1/2$),(1.25, $x$),), + y-ticks: ((2, $2$),), { + plot.add(domain: (-1.5, 1.5), f) + + // Hilfslinie damit Koordinatensystem nicht verrutscht + plot.add(((0, 0), (0, 0.1)), style: (stroke: none)) + }) +}) diff --git a/Band2/Grafiken/Grafiken.typ b/Band2/Grafiken/Grafiken_Beispiele.typ similarity index 71% rename from Band2/Grafiken/Grafiken.typ rename to Band2/Grafiken/Grafiken_Beispiele.typ index 0dc398e..4f4772b 100644 --- a/Band2/Grafiken/Grafiken.typ +++ b/Band2/Grafiken/Grafiken_Beispiele.typ @@ -506,12 +506,14 @@ ) }) + + #import "@preview/cetz:0.4.2" #import "@preview/cetz-plot:0.1.3": plot #cetz.canvas(length: 1.25cm,{ import cetz.draw: * - set-style( + set-style( axes: ( // Basisstil beibehalten stroke: (thickness: 0.5pt), @@ -635,3 +637,280 @@ content("plot.F2", text(0.85em)[$(x eq.not 1/2)$], anchor: "west", name: "pt") }) +#import "@preview/cetz:0.4.2" +#import "@preview/cetz-plot:0.1.3": plot + +#cetz.canvas({ + import cetz.draw: * + plot.plot( + //definitionen + { + //berechnungen und plot + } + ) +}) + +#import "@preview/cetz:0.4.1" +#import "@preview/cetz-plot:0.1.2" + +#cetz.canvas({ + import cetz.draw: * + import cetz-plot: * + set-style( + axes: ( + stroke: (thickness: 0.5pt), + x: (mark: (end: "stealth", fill: black)), + y: (mark: (end: "stealth", fill: black)), + ), + ) + + let f = x => (calc.pow(x,3)+0.5) + let x1 = 0.35 + let x3 = 0.5 + let x0 = 0.7 + let x2 = 0.8 + let y1 = f(x1) + + + plot.plot(size: (6,7), name: "plot", axis-style: "school-book", x-tick-step:none, y-tick-step:none, x-label: $x$, + y-label: $y$, + x-ticks: ((x1, $x_1$),(x3, $x_3$),(x0, $x_0$),(x2, $x_2$),), + y-ticks: ((f(x1), $f(x_1)$),(f(x2), $f(x_2)$),(f(x0), $g$),(f(x3), $f(x_3)$)), { + plot.add(domain: (0.25, 1), f, style: (stroke: red)) + + plot.add(((x1, 0), (x1, f(x1))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + plot.add(((0, f(x1)), (x1, f(x1))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + + plot.add(((x3, 0), (x3, f(x3))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + plot.add(((0, f(x3)), (x3, f(x3))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + + plot.add(((x0, 0), (x0, f(x0))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + plot.add(((0, f(x0)), (x0, f(x0))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + + plot.add(((x2, 0), (x2, f(x2))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + plot.add(((0, f(x2)), (x2, f(x2))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + + // Hilfslinie damit Koordinatensystem nicht verrutscht + plot.add(((0, 0), (0, 0.1)), style: (stroke: none)) + //circle((x1, y1), radius: 0.05, fill: black) + plot.add(((x1, f(x1)),), mark: "o", mark-style:(stroke: (paint: black, thickness: 0.75pt), fill: black)) + plot.add(((x3, f(x3)),), mark: "o", mark-style:(stroke: (paint: black, thickness: 0.75pt), fill: black)) + plot.add(((x0, f(x0)),), mark: "o", mark-style:(stroke: (paint: black, thickness: 0.75pt), fill: white)) + plot.add(((x2, f(x2)),), mark: "o", mark-style:(stroke: (paint: black, thickness: 0.75pt), fill: black)) + + plot.add-anchor("F", (x2 - 0.05,f(x2)+0.1)) + }) + + content("plot.F", text(0.85em)[$y=f(x)$], anchor: "east", name: "pt") + + +}) + +#import "@preview/cetz:0.4.2" + +#align(center, + cetz.canvas({ + import cetz-plot: * + import cetz.palette + import cetz.draw: * + + plot.plot(size: (5,5), + name: "plot", + x-tick-step: 2, + x-minor-tick-step: 1, + y-tick-step: 2, + y-minor-tick-step: 1, + axis-style: "school-book", { + plot.add(domain: (-1, 2.5), + x => x - 1, + style: (color: red)) + plot.add(domain: (-1, 2.5), + x => x - 1 + calc.exp(-x), + style: (color: yellow)) + plot.add(domain: (-1, 2.5), + x => x - 1 - calc.exp(-x), + style: (color: red)) + plot.add-anchor("pt1", (1,1.3)) + plot.add-anchor("pt2", (1.8,-2)) + plot.add-anchor("exp1", (1, calc.exp(-1)+0.2)) + plot.add-anchor("exp2", (0.5, 0.5-1-calc.exp(-0.58)-0.2)) + + }) + + content("plot.pt1", [$y=t-1+e^(-t)$], anchor: "south", name: "prb") + line("plot.exp1", "prb", mark: (start: ">")) + + content("plot.pt2", [$y=t-1-e^(-t)$], anchor: "north", name: "curve2") + line("plot.exp2", "curve2", mark: (start: ">")) + + }) +) + + + +#import "@preview/cetz-plot:0.1.3": plot + +#let intersection(plotA, plotB, style: (stroke: red + 2pt)) = { + let dataA = plotA.first().data + let dataB = plotB.first().data + + let points = dataA.filter(x => x in dataB) + + for ((i, point)) in points.enumerate() { + plot.add-anchor("i_" + str(i),point ) + } + + plotA + plotB +} + +#canvas( + length: 1cm, + { + import draw: * + plot.plot( + name: "my_plot", + size: (5, 5), + axis-style: "school-book", + x-label: [$x$], + y-label: [$y$], + { + intersection( + plot.add( + style: (stroke: black + 1.5pt), + domain: (-1, 1), + x => calc.pow(x, 4) - 2 * calc.pow(x, 2) + 1, + ), + plot.add( + style: (stroke: black + 1.5pt), + domain: (-1, 1), + x => -(calc.pow(x, 4) - 2 * calc.pow(x, 2) + 1), + ) + ) + } + ) + + // reference the point with {plot name}.i_{number} + line("my_plot.i_1", ((), "|-", (0,3.5)), mark: (start: ">"), name: "line") + content("line.end", [Here], anchor: "south", padding: .1) + }, +) + + +#let intersection(plotA, plotB, style: (stroke: red + 2pt)) = { + import draw: * + let dataA = plotA.first().data + let dataB = plotB.first().data + + plot.annotate({ + hide({ + intersections("i", line(..plotA.first().data), line(..plotB.first().data)) + }) + for-each-anchor("i", (name) => { + circle("i." + name, radius: 0.05, fill: red) + }) + }) + + plotA + plotB +} + +#canvas( + length: 1cm, + { + import draw: * + plot.plot( + name: "plot", + size: (10, 10), + axis-style: "school-book", + x-label: [$x$], + y-label: [$y$], + { + intersection( + plot.add( + style: (stroke: black + 1.5pt), + domain: (-1, 1), + x => calc.pow(x, 4) - 2 * calc.pow(x, 2) + 1, + ), + plot.add( + style: (stroke: black + 1.5pt), + domain: (-1, 1), + x => -(calc.pow(x, 4) - 2 * calc.pow(x, 2) + 0.5), + ), + ) + }, + ) + }, +) + + +#import "@preview/cetz:0.4.0" +#import "@preview/cetz-plot:0.1.2" + +#let my-plot = cetz-plot.plot.plot.with(axis-style: "school-book") + +#cetz.canvas({ + import cetz.draw: * + import cetz-plot: * + set-style( + axes: ( + stroke: (dash: "dotted", paint: gray), + x: (mark: (start: ">", end: ">"), padding: 1), + y: (mark: none), + tick: (stroke: gray + .5pt), + ), + ) + my-plot( + size: (5, 4), + y-tick-step: none, + { + plot.add(calc.sin, domain: (0, calc.pi * 2)) + }, + ) +}) + +#let plot-cfg = (size: (5, 4), axis-style: "school-book") +#cetz.canvas({ + import cetz.draw: * + import cetz-plot: * + plot.plot(..plot-cfg, { + plot.add(calc.sin, domain: (0, calc.pi * 2)) + }) +}) + + + + + +#import "@preview/simple-plot:0.3.0": plot + +//#set page(width: auto, height: auto, margin: 0.5cm) + +// Showcases: major grid only, grid-label-break, axis extension, integer ticks +#plot( + xmin: -3.1, xmax: 3.1, + ymin: -1, ymax: 9, + xlabel: $x$, + ylabel: $y$, + //show-grid: "major", + (fn: x => calc.pow(x, 2), stroke: blue + 1.5pt, label: $x^2$, label-pos: 0.7, label-side: "below-right"), +) + +#plot( + xmin: -2 * calc.pi, xmax: 2 * calc.pi, + ymin: -2, ymax: 2, + width: 10, height: 5, + show-grid: "major", + xtick: (-2*calc.pi, -calc.pi, 0, calc.pi, 2*calc.pi), + xtick-labels: ($-2pi$, $-pi$, $0$, $pi$, $2pi$), + (fn: x => calc.sin(x), stroke: blue + 1.2pt), + (fn: x => calc.cos(x), stroke: red + 1.2pt), +) + +#plot( + xmin: -2, xmax: 5, + ymin: 0, ymax: 32, + show-grid: true, + (fn: x => calc.pow(2, x), stroke: blue + 1.5pt, label: $2^x$), + (fn: x => calc.pow(3, x), stroke: red + 1.5pt, label: $3^x$), +) \ No newline at end of file diff --git a/Band2/abhaengigkeit.typ b/Band2/abhaengigkeit.typ new file mode 100644 index 0000000..ebecbb4 --- /dev/null +++ b/Band2/abhaengigkeit.typ @@ -0,0 +1,360 @@ +#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge + + + +#let mynode(pos, zahl, inhalt, name) = { +node( + pos, + name: name, + shape: rect, // 1. Zwingt Fletcher zum Rechteck + corner-radius: 0pt, // 2. Verhindert abgerundete Ecken + fill: white, // Optional: Hintergrund füllen + stroke: 1.25pt, + + // 3. WICHTIG: Festlegen einer Mindestgröße, damit alle gleich starten + // Anstatt extrude nutzen wir feste Maße, die sich aber am Gitter ausrichten + width: 12em, + height: 5.8em, + + { + // Dein Layout-Block + set align(top + right) + text(2.5em, fill: gray.darken(90%))[#zahl] + place(bottom + left, inhalt) + } +)} + +#let myedge(start, end, type, ) = { + let sep = 0.15em + edge(start, end, type) + edge(start, end) +} + + +#let abhaengigkeit = diagram( + spacing: (11mm, 7mm), + //debug: 3, + edge-stroke: 1.25pt, + + mark-scale: 55%, + mynode((0,0),"",[Vorbereitungsband], ), + mynode((1,0),"1", [Grundlagen], ), + mynode((2,0), "13",[Lineare Algebra], ), + + mynode((0,1),"3",[Unendliche Reihen], ), + mynode((1,1), "2",[Differential- und Integralrechnung], ), + mynode((2,1), "14",[Lineare Optimierung], ), + + mynode((0,2), [7$#sub(text(0.5em)[1])$],[Gewöhnliche Differentialgleichungen], ), + mynode((1,2), "4",[Differentialrechnung mit mehreren Variablen], ), + mynode((2,2), "15",[Nichtlineare Optimierung], ), + + mynode((0,3), [7$#sub(text(0.5em)[2])$],[Gewöhnliche Differentialgleichungen], ), + mynode((1,3.), "5",[Integralrechnung mit mehreren Variablen], ), + mynode((2,3), "16",[Optimale Prozesse und Systeme], ), + + mynode((0,4), "8",[Partielle Differentialgleichungen], ), + mynode((1,4), "6",[Differentialgeometrie], ), + mynode((2,4), "17",[Wahrscheinlichkeitsrechnung, math.Statistik], ), + + mynode((0,5), "9",[Komplexe Funktionen], ), + mynode((1,5), "10",[Operatorenrechnung], ), + mynode((2,5), [21$#sub(text(0.5em)[1])$],[Spieltheorie], ), + + mynode((0,6), "12",[Spezielle Funktionen], ), + mynode((1,6), "11",[Tensoralgebra und -analysis], ), + mynode((2,6), [21$#sub(text(0.5em)[2])$],[Graphentheorie], ), + + mynode((0,7), [18],[Numerische Methoden], ), + mynode((1,7), [20],[Simulation], ), + mynode((2,7), [19$#sub(text(0.5em)[1])$],[Stochastische Prozesse und Modelle], ), + + mynode((0,8), [22],[Funktionalanalysis], ), + mynode((1,8), [23],[Symmetriegruppen], ), + mynode((2,8), [19$#sub(text(0.5em)[2])$],[Statistische Versuchsplanung], ), + + + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + // NEUES Edge: 1,3 (n3_1) → 3,2 (n2_3) + // Verlauf: rechts von n3_1 nach rechts, runter auf Höhe von n2_3, dann links zur Node + + //9 → 22 +edge( + vertices: ( + , + (0, 5.2), // deutlich nach rechts → sichtbarer Knick + (0.5, 5.2), // dann nach links + (0.5, 8), // runter + , + ), + corner: right, + corner-radius: 0pt, // abgerundete Ecken! + stroke: orange + 1.25pt, + marks: "-|>", + shift: (1pt, 1pt), +), +//10 → 22 +edge( + vertices: ( + , + (1, 5.2), // deutlich nach rechts → sichtbarer Knick + (0.5, 5.2), // dann nach links + (0.5, 8), // runter + , + ), + corner: left, + corner-radius: 0pt, // abgerundete Ecken! + stroke: orange + 1.25pt, + marks: "-|>", + shift: (1pt, 1pt), +), +//3 → 7.2 +edge( + vertices: ( + , + (-0.85, 1), // deutlich nach rechts → sichtbarer Knick + (-0.85, 1), // dann nach links + (-0.85, 3), // runter + , + ), + corner: left, + corner-radius: 0pt, // abgerundete Ecken! + stroke: red + 1.25pt, + marks: "-|>", + shift: (1pt, 1pt), +), + +//13 → 4 +edge( + vertices: ( + , + (2, 0.18), // deutlich nach rechts → sichtbarer Knick + (1.5, 0.2), // dann nach links + (1.5, 2), // runter + , + ), + corner: left, + corner-radius: 0pt, // abgerundete Ecken! + stroke: green + 1.25pt, + marks: "-|>", + shift: (2pt, 2pt), +), + +//1 → 13 + edge( + (rel: (0pt, 5mm), to: ), + (rel: (0.1, 0.)), + (rel: (0pt, 5mm), to: ), + "-|>", + corner-radius: 0pt , + stroke: green.darken(30%) + 1.25pt, +), + +//5 → 8 +edge( + (rel: (0pt, 0mm), to: ), + + (rel: (-0.15, 0.)), + (rel: (0.08,0), to: ), + (rel: (0.,0), to: ), + "-|>", + corner-radius: 0pt , + stroke: 1.25pt + olive, + ), + + //7_1 → 6 +edge( + vertices: ( + (rel: (0pt, -2pt), to: ), + (0.25, 2.2), + (0.52, 2.2), + (0.52,4), + (rel: (0pt, 0pt), to: ) + ), + corner-radius: 0pt, + stroke: gray + 1.25pt, + marks: "-|>", +), + //4 → 7_1 +edge( + (rel: (0pt, 5mm), to: ), + + (rel: (-0.1, 0.)), + + (rel: (0pt, 5mm), to: ), + "-|>", + corner-radius: 0pt , + stroke: 1.25pt , +), + //9 → 10 + edge( + (rel: (0pt, 5mm), to: ), + + (rel: (0.1, 0.)), + + (rel: (0pt, 5mm), to: ), + "-|>", + corner-radius: 0pt , + stroke: 1.25pt , +), + //5 → 17 + edge( + , + + (rel: (0.07, 0.)), + (rel: (0, 0.5)), + + (rel: (0pt, 10pt), to: ), + , + "-|>", + corner-radius: 0pt , + stroke: blue.lighten(20%) +1.25pt , +), + //4 → 15 + edge( + (rel: (0pt, -5mm), to: ), + + (rel: (0.1, 0.)), + + (rel: (0pt, -5mm), to: ), + "-|>", + corner-radius: 0pt , + stroke: 1.25pt , +), + //8 → 16 +edge( + (rel: (0.2,0), to: ), + (rel: (0., 0.1)), + (rel: (1.3, 0.)), + (rel: (-0.115, 0), to: ), + , + "-|>", + corner-radius: 0pt , + stroke: 1.25pt + yellow.darken(20%), + ), + //6 → 11 + edge( + (rel: (0pt, -5mm), to: ), + + (rel: (0.065, 0.)), + (rel: (0.065,0), to: ), + (rel: (0.,0), to: ), + "-|>", + corner-radius: 0pt , + stroke: 1.25pt + purple.lighten(20%), + ), + //13 → 23 + edge( + (), + (rel:(0.75,0)), + (rel:(0, 9.8)),// <---- + (rel:(-3.38, 0)), + //(rel: (0.6, 0.), to: ), + , + "-|>", + corner-radius: 0pt , + stroke: 1.25pt + orange.darken(10%), + + ), + + //15 → 21_1 21_2 + edge( + (), + // Startpunkt + (rel: (0.5, 0)), + (rel: (0.5, 0.), to: ), + , + "-|>", + corner-radius: 0pt , + stroke: 1.25pt + blue, + ), + edge( + (), + // Startpunkt + (rel: (0.5, 0)), + (rel: (0.5, 0.), to: ), + , + "-|>", + corner-radius: 0pt , + stroke: 1.25pt + blue, + ), + + //16 → 19_1 19_2 + edge( + (), + (rel: (0.3, 0)), + (rel: (0.3, 0.), to: ), + , + "-|>", + corner-radius: 0pt , + stroke: 1.25pt + purple, + ), +edge( + (), + (rel: (0.3, 0)), + (rel: (0.3, 0.), to: ), + , + "-|>", + corner-radius: 0pt , + stroke: 1.25pt + purple, + ), + + //17 → 21_2 +edge( + (rel: (-0.2,0), to: ), + (rel: (0, 0.2)), + (rel: (-.325, 0.)), + (rel: (-0.14, 0), to: ), + , + "-|>", + corner-radius: 0pt , + stroke: 1.25pt + red, + ), + //17 → 19_1, 19_2 +edge( + (), + (rel: (-0.075, 0)), + (rel: (-0.075,-0.20), to: ), + (rel: (0.,-0.2), to: ), + "-|>", + corner-radius: 0pt , + stroke: 1.25pt + green, + ), + edge( + (), + (rel: (-0.075, 0)), + (rel: (-0.075, 0.), to: ), + , + "-|>", + corner-radius: 0pt , + stroke: 1.25pt + green, + ), + + //19_2 → 20 + edge( + (), + (rel: (-0.2, 0)), + (rel: (0, -0.1)), + (rel: (-0, 0.18), to: ), + , + "-|>", + corner-radius: 0pt , + stroke: 1.25pt + blue, +), +) diff --git a/Band2/grafiken.typ b/Band2/grafiken.typ new file mode 100644 index 0000000..908df69 --- /dev/null +++ b/Band2/grafiken.typ @@ -0,0 +1,215 @@ +#import "@preview/cetz:0.4.2" +#import "@preview/cetz-plot:0.1.3": plot + +#let b2_1 = cetz.canvas(length: 1.25cm,{ + import cetz.draw: * + set-style( + axes: ( + // Basisstil beibehalten + stroke: (thickness: 0.5pt), + // x-Achse: stealth-Pfeil am Ende + x: (mark: (end: "stealth", fill: black)), + // y-Achse: stealth-Pfeil am Ende + y: (mark: (end: "stealth", fill: black)), + ), + ) + plot.plot( + //definitionen + name: "plot", + size: (6, 6), + x-tick-step: none, + y-tick-step: none, + axis-style: "school-book", + x-label: $x$, + y-label: $y$, + x-ticks: ((0.5, $1/2$),(1.25, $x$),), + y-ticks: ((0.25, $1/4$),(1.5625, $x^2$),), + { + //berechnungen und plot + let f = x => calc.pow(x, 2) + let x0 = 0.5 + let y0 = f(x0) + let x1 = 1.25 + let y1 = f(x1) + // Berechnung der Steigung m = (y1 - y0) / (x1 - x0) + let m = (y1 - y0) / (x1 - x0) + + + // Sekantenfunktion: s(x) = m * (x - x0) + y0 + let s = x => m * (x - x0) + y0 + + let x1_1 = x1 + 0.1 + let x0_1 = x0 - 0.2 + let y0_1 = y0 + 0.2 + let x2 = ((x1 - x0)/2) + x0 + let y3 = ((y1 - y0)/2) +y0 + + plot.add(x => calc.pow(x, 2), domain: (-1.4, 1.8)) + //Sekante + plot.add(s, domain: (0.3, 1.7), style: (stroke: red)) + plot.add-anchor("pt1", (-1.4,y1)) + plot.add-anchor("P", (x1_1,y1)) + plot.add-anchor("P0", (x0_1,y0_1)) + + plot.add-anchor("F1", (x2,0.14)) + plot.add-anchor("F2", (x1+0.1,y3)) + + + plot.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) + plot.add(((x1, 0), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) + plot.add(((0, y1), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) + plot.add(((0, y0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) + + plot.add(((x0, y0), (x1, y0)), style: (stroke: ( paint: gray.darken(80%), thickness: 0.5pt))) + plot.add(((x1, y0), (x1, y1)), style: (stroke: ( paint: gray.darken(80%), thickness: 0.5pt))) + + + plot.add(((x0, y0),), mark: "o") + plot.add(((x1, y1),), mark: "o") + + + + } + ) + //Der Plot muss einen Namen haben + content("plot.pt1", text(0.85em)[$y=x^2$], anchor: "east", name: "pt") + content("plot.P", text(0.75em)[$P$], anchor: "west", name: "p") + content("plot.P0", text(0.75em)[$P_0$], anchor: "west", name: "p0") + content("plot.F1", text(0.75em)[$x- 1/2$], anchor: "center", name: "f1") + content("plot.F2", text(0.75em)[$x^2- 1/4$], anchor: "west", name: "f2") +}) + +#let b2_2 = cetz.canvas({ + + import cetz.draw: * + set-style( + axes: ( + // Basisstil beibehalten + stroke: (thickness: 0.5pt), + // x-Achse: stealth-Pfeil am Ende + x: (mark: (end: "stealth", fill: black)), + // y-Achse: stealth-Pfeil am Ende + y: (mark: (end: "stealth", fill: black)), + ), + ) + plot.plot( + name: "plot", + size: (5, 5), + x-tick-step: none, + y-tick-step: none, + axis-style: "school-book", + x-label: $x$, + y-label: $y$, + x-ticks: ((0.5, $1/2$),), + y-ticks: ((1, $1$),), + + //definitionen + { + let f = x => if x != 0.5 { (calc.pow(x, 2) - 0.25) / (x - 0.5) } else { none } + let x0 = 0.5 + let y0 = 1 + plot.add(f, domain: (-0.6, 0.75), style: (stroke: blue)) + + plot.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) + + plot.add(((0, y0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) + + plot.add(((x0, y0),), mark: "o") + + plot.add-anchor("F1", (-.7,0.5)) + plot.add-anchor("F2", (-.7,0.35)) + } + ) + content("plot.F1", text(0.85em)[$y=(x^2-1/4)/(x-1/2)$], anchor: "west", name: "pt") + content("plot.F2", text(0.85em)[$(x eq.not 1/2)$], anchor: "west", name: "pt") +}) + +#let b2_3 = cetz.canvas(length: 3cm, { + import cetz.draw: * + + set-style( + mark: (fill: black, scale: 2), + stroke: (thickness: 0.4pt, cap: "round"), + angle: ( + radius: 0.3, + label-radius: .22, + fill: green.lighten(80%), + stroke: (paint: green.darken(50%)) + ), + content: (padding: 1pt) + ) + + //grid((-.25, -.25), (2, 2 ), step: 0.5, stroke: gray + 0.2pt) + + line((0, 0.25), (3, 0.25), mark: (end: "stealth", scale: 0.8)) + content((), $ x $, anchor: "west") + + line((0.5,0.25),(2.5,0.25), stroke: 2pt) + + circle((0.5,0.25), radius: 0.025, fill: white, stroke: (paint: black, thickness: 1.25pt), name: "01") + + //content("01.end", anchor: "north", padding: (left: 3mm, bottom: 2mm), text(green.darken(30%))[Punkt $(a_1, a_2)$]) + + content("01.south", padding: (left: 0mm, bottom: -5mm), text([$x_0 -c$])) + + circle((1.5,0.25), radius: 0.025, fill: white, stroke: (paint: black, thickness: 1.25pt), name: "02") + + content("02.south", padding: (left: 0mm, bottom: -5mm), text([$x_0$])) + + circle((2.5,0.25), radius: 0.025, fill: white, stroke: (paint: black, thickness: 1.25pt), name: "03") + + content("03.south", padding: (left: 0mm, bottom: -5mm), text([$x_0 +c$])) + + circle((1.5,0), radius: 0.0005, fill: white, stroke: (paint: white, thickness: 1.25pt), name: "02") + +}) + +#let b2_4 = cetz.canvas({ + import cetz.draw: * + //import cetz-plot: * + + let f = x => (calc.pow(x,3)+0.5) + let x1 = 0.35 + let x3 = 0.5 + let x0 = 0.7 + let x2 = 0.8 + let y1 = f(x1) + + + plot.plot(size: (6,7), name: "plot", axis-style: "school-book", x-tick-step:none, y-tick-step:none, x-label: $x$, + y-label: $y$, + x-ticks: ((x1, $x_1$),(x3, $x_3$),(x0, $x_0$),(x2, $x_2$),), + y-ticks: ((f(x1), $f(x_1)$),(f(x2), $f(x_2)$),(f(x0), $g$),(f(x3), $f(x_3)$)), { + plot.add(domain: (0.25, 1), f, style: (stroke: red)) + + + + // Hilfslinie damit Koordinatensystem nicht verrutscht + plot.add(((0, 0), (0, 0.1)), style: (stroke: none)) + //circle((x1, y1), radius: 0.05, fill: black) + + + plot.add(((x1, 0), (x1, f(x1))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + plot.add(((0, f(x1)), (x1, f(x1))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + + plot.add(((x3, 0), (x3, f(x3))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + plot.add(((0, f(x3)), (x3, f(x3))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + + plot.add(((x0, 0), (x0, f(x0))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + plot.add(((0, f(x0)), (x0, f(x0))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + + plot.add(((x2, 0), (x2, f(x2))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + plot.add(((0, f(x2)), (x2, f(x2))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) + + plot.add(((x1, f(x1)),), mark: "o", mark-style:(stroke: (paint: black, thickness: 0.75pt), fill: black)) + plot.add(((x3, f(x3)),), mark: "o", mark-style:(stroke: (paint: black, thickness: 0.75pt), fill: black)) + plot.add(((x0, f(x0)),), mark: "o", mark-style:(stroke: (paint: black, thickness: 0.75pt), fill: white)) + plot.add(((x2, f(x2)),), mark: "o", mark-style:(stroke: (paint: black, thickness: 0.75pt), fill: black)) + + plot.add-anchor("F", (x2 + 0.1,f(x2))) + }) + + content("plot.F", text(0.85em)[$y=x^2$], anchor: "west", name: "pt") + + +}) diff --git a/Band2/snippets.typ b/Band2/snippets.typ new file mode 100644 index 0000000..3a13c21 --- /dev/null +++ b/Band2/snippets.typ @@ -0,0 +1,29 @@ + #align(left, $ +& 1 &&=& a_1 &+& a_2 &+& a_3 &+& a_4 \ +& 1 + 2^3 &&=& 2a_1 &+& 2^2a_2 &+& 2^3a_3 &+& 2^4a_4 \ +& 1 + 2^3 + 3^3 &&=& 3a_1 &+& 3^2a_2 &+& 3^3a_3 &+& 3^4a_4 \ +& 1 + 2^3 + 3^3 + 4^4 &&=& 4a_1 &+& 4^2a_2 &+& 4^3a_3 &+& 4^4a_4 +$) + + +$ +cases( +1 & = thin a_1 &+ a_2 &+ a_3 &+ a_4 , +1 + 2^3 & = thin 2a_1 &+ 2^2a_2 &+ 2^3a_3 &+ 2^4a_4, +1 + 2^3 + 3^3 & = thin 3a_1 &+ 3^2a_2 &+ 3^3a_3 &+ 3^4a_4, +1 + 2^3 + 3^3 + 4^4 & = thin 4a_1 &+ 4^2a_2 &+ 4^3a_3 &+ 4^4a_4, +) +$ + + +$ cases( + 2y_1 +&& y_2 =&& 4x_1\ + y_1 +&& 2y_2 =&& -12x_2\ + -2y_1 +&& 3y_2 =&& x_3 +) $ + +$ + 2y_1 +&& y_2 =&& 4x_1\ + y_1 +&& 2y_2 =&& -12x_2\ + -2y_1 +&& 3y_2 =&& x_3 +$