diff --git a/Band2/Band2.typ b/Band2/Band2.typ index 43ba1db..b67d7d0 100644 --- a/Band2/Band2.typ +++ b/Band2/Band2.typ @@ -137,9 +137,6 @@ #deckblatt(bandnr: "2", autor: tt, titel: "Differential- und Integralrechnung\nfür Funktionen\nmit einer Variablen") - - - #pagebreak() #set page( @@ -164,6 +161,7 @@ width:162mm, height: 230mm, ) + #v(9mm) #heading(outlined: false)[Abhängigkeitsgraph] /* #let mynode(pos, text1, text2, name) = { node(pos, [#text( size:1.7em, text2) \ #text1], name:name, stroke: 1pt, corner-radius: 0mm, @@ -171,8 +169,11 @@ /* Dashed separator from east to west */ //edge(label(str(name)+".west"), label(str(name)+".east"),"-", stroke: 0.2mm, dash:(1mm, 0.8mm)) } */ +#v(-6mm) +#scale(x:90%, y:90%)[#abhaengigkeit] -#abhaengigkeit +//#scale(factor: 90%, abhaengigkeit) +//#abhaengigkeit #show heading: it => { set block(below: if it.level == 1 { 2em } else { 1em }) @@ -430,11 +431,144 @@ Unter Verwendung von @eq22 und bekannten Grenzwertsätzen für Zahlenfolgen folg 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). */ +was in Einklang mit der Anschauung steht (Bild 2.2). + +Beispiel 2.3: Wir wollen den Grenzwert der Funktion + +$$ +f(x)=\left\{\begin{array}{lll} +\frac{x^2-\frac{1}{4}}{x-\frac{1}{2}} & \text { für } & x \neq \frac{1}{2} \\ +2 & \text { für } & x=\frac{1}{2} +\end{array}\right. +$$ + +für $x \rightarrow \frac{1}{2}$ ermitteln (s. Bild 2.5). + +Obwohl $f$ an der Stelle $x=\frac{1}{2}$ definiert ist, werden auch hier nur Folgen $\left(x_n\right)$ mit $\lim _{n \rightarrow \infty} x_n=\frac{1}{2}$ betrachtet, für die $x_n \neq \frac{1}{2}$ für alle $n$ gilt [vgl. (E 2)]. Für jede solche Folge erhält man wie in Beispiel 2.2 + +$$ +\lim _{n \rightarrow \infty} f\left(x_n\right)=\lim _{n \rightarrow \infty} \frac{x_n^2-\frac{1}{4}}{x_n-\frac{1}{2}}=\lim _{n \rightarrow \infty}\left(x_n+\frac{1}{2}\right)=1, +$$ + +also ist + +$$ +\lim _{x \rightarrow \frac{1}{2}} f(x)=1 +$$ + +* Aufgabe 2.1: Ermitteln Sie die folgenden Grenzwerte: +a) $\lim _{x \rightarrow 0} \frac{3 x+2}{x-1}$, +b) $\lim _{x \rightarrow-2} \frac{x^2-4}{x+2}$. + +Beispiel 2.4: Nun soll das Verhalten von $f(x)=\sin \frac{1}{x}(x \neq 0)$ für $x \rightarrow 0$ untersucht werden. Die Bildkurve von $f$ (Bild 2.6) schwankt für $x \rightarrow 0$ ständig zwischen -1 und 1 , wobei die Scheitel immer dichter aufeinander folgen. Wir wollen zeigen, daß $f$ für $x \rightarrow 0$ keinen Grenzwert hat. Dazu genügt es, eine Folge ( $x_n$ ) mit + +$$ +x_n \neq 0 \text { für alle } n \text { und } \lim _{n \rightarrow \infty} x_n=0 +$$ + +anzugeben, für die die Folge $\left(f\left(x_n\right)\right)$ divergent ist. Setzen wir zum Beispiel $x_n=\frac{2}{(2 n-1) \pi}$, dann gilt (2.5), aber wegen + +$$ +f\left(x_n\right)=\sin (n \pi-\pi / 2)=(-1)^{n+1} +$$ + +ist die Folge $\left(f\left(x_n\right)\right)$ (unbestimmt) divergent. + + +Man kann den Beweis auch dadurch führen, daß man zwei Folgen $\left(x_n\right)$ und $\left(\tilde{x}_n\right)$ mit den Eigenschaften (2.5) angibt, für die die Folgen $\left(f\left(x_n\right)\right)$ und $\left(f\left(\tilde{x}_n\right)\right)$ verschiedene Grenzwerte haben. + +Aufgabe 2.2: Führen Sie den Beweis in der soeben angedeuteten Weise durch! +Beispiel 2.5: Abschließend betrachten wir noch die Funktion + +$$ +f(x)=(1+x)^{\frac{1}{x}} \quad(x>-1, x \neq 0) \text { für } \quad x \rightarrow 0 \text {. } +$$ + + +Für die Folge $\left(x_n\right)$ mit $x_n=\frac{1}{n}$ gilt (vgl. Band 1, Abschnitt 10.7.) + +$$ +\lim _{n \rightarrow \infty} f\left(x_n\right)=\mathrm{e} . +$$ + + +Ohne Beweis ${ }^1$ ) sei mitgeteilt, daß (2.6) sogar für jede Folge $\left(x_n\right)$ mit $x_n>-1, x_n \neq 0$ und $\lim _{n \rightarrow \infty} x_n=0$ gilt. Damit erhält man den für spätere Anwendungen wichtigen Grenzwert + +$$ +\lim _{x \rightarrow 0}(1+x)^{\frac{1}{x}}=\mathrm{e} +$$ + +2.1.2. Die „ $\varepsilon-\delta$-Charakterisierung" des Grenzwertes + +Auf Grund der Anschauung wird man vermuten, daß man die Gleichung $\lim _{x \rightarrow x_0} f(x)=g$ auch folgendermaßen interpretieren kann: +,,Der Abstand zwischen $f(x)$ und $g($ also $|f(x)-g|)$ ist beliebig klein, wenn nur der Abstand zwischen $x$ und $x_0$ hinreichend klein, aber von null verschieden ist." In geeigneter Präzisierung ist das der Inhalt des folgenden Satzes, den wir ohne Beweis angeben. + + +Satz 2.1: Die Funktion $f$ sei (mindestens) in einer punktierten Umgebung der Stelle $x_0$ +S. 2.1 definiert. Genau dann gilt $\lim f(x)=g$, wenn $z u$ jeder (insbesondere jeder beliebig kleinen) Zahl $\varepsilon>0$ eine $\begin{gathered}\mathrm{Xahl} \quad \mathrm{Xax} \\ \text { Zahl }\end{gathered}=\delta(\varepsilon)>0$ existiert, so daß gilt + +$$ +|f(x)-g|<\varepsilon +$$ + +für alle $x$ mit + +$$ +0<\left|x-x_0\right|<\delta . +$$ + + +Eine geometrische Deutung dieses Satzes gibt Bild 2.7. Mit den dort verwendeten Bezeichnungen bedeutet $\lim _{x \rightarrow x_0} f(x)=g$, daß zu jedem (noch so schmalen) „ $\varepsilon$-Streifen“ + + +${ }^1$ ) Beweise zu Teil 1 dieses Buches findet man, wenn nichts anderes gesagt ist, in [5] und [10]. + + +um $y=g$ ein „ $\delta$-Streifen" um $x=x_0$ existiert, so daß alle Punkte der Bildkurve von $f$, die in diesem " $\delta$-Streifen" - außer auf der Mittellinie $x=x_0{ }^1$ ) - liegen, auch dem vorgegebenen ,, $\varepsilon$-Streifen" angehören. Dabei ist offenbar $\delta$ im allgemeinen um so kleiner zu wählen, je kleiner $\varepsilon$ vorgegeben ist. Diesen Sachverhalt soll die Schreibweise $\delta=\delta(\varepsilon)$ zum Ausdruck bringen. + +Beispiel 2.6: Als Anwendung des Satzes wollen wir zeigen, daß + +$$ +\lim _{x \rightarrow x_0} \sqrt{x}=\sqrt{x_0} \quad\left(x_0>0\right) +$$ + +gilt (Bild 2.8). Es sei ein beliebiges $\varepsilon>0$ gegeben. Gemäß (2.8) ist $\left|\sqrt{x}-\sqrt{x_0}\right|$ abzuschätzen. Wir erweitern mit $\sqrt{x}+\sqrt{x_0}$ und erhalten + +$$ +\left|\sqrt{x}-\sqrt{x_0}\right|=\frac{\left|x-x_0\right|}{\sqrt{x}+\sqrt{x_0}} \leqq \frac{1}{\sqrt{x_0}}\left|x-x_0\right|<\varepsilon +$$ + +für alle $x \geqq 0$ mit $\left|x-x_0\right|<\sqrt{x_0} \varepsilon$. Daher setzen wir $\delta$ gleich der kleineren der beiden Zahlen $x_0$ und $\sqrt{x_0} \varepsilon$. Für alle $x$ mit $\left|x-x_0\right|<\delta$ gilt dann $x \geqq 0$ (warum?) und (2.11). + + + + +2.2 Einseitige Grenzwerte + +Für die Existenz des Grenzwertes $\lim _{x \rightarrow x_0} \sqrt{x}$ ist die Voraussetzung $x_0>0$ wesentlich (s. (2.10)), denn für $x_0 \leqq 0$ gibt es keine punktierte Umgebung von $x_0$, in der die Funktion $f(x)=\sqrt{x}(x \geqq 0)$ definiert ist. Im Falle $x_0 \leqq 0$ existiert $\lim _{x \rightarrow x_0} \sqrt{x}$ also nicht. Der Stelle $x_0=0$ kann man sich aber immerhin noch „von rechts nähern“, ohne den Definitionsbereich von $f$ zu verlassen. Diese Überlegung führt zum Begriff der einseitigen Grenzwerte. +D. 2.2 Definition 2.2: Die Funktion $f$ sei (mindestens) in einem Intervall ( $\left.x_0, x_0+c\right)^2$ ) $(c>0)$ definiert. Eine Zahl $g_{\mathrm{r}}$ heißt rechtsseitiger Grenzwert von $\boldsymbol{f}$ für $\boldsymbol{x}$ gegen $\boldsymbol{x}_0$, in Zeichen + +$$ +\left.\left.\lim _{x \rightarrow x_0+0} f(x)=g_r \quad \text { oder } \quad f(x) \rightarrow g_r \quad \text { für } \quad x \rightarrow x_0+0\right)^3\right), +$$ + +${ }^1$ ) Man beachte, daß $\left|x-x_0\right|>0$ äquivalent zu $x \neq x_0$ ist. +${ }^2$ ) Ein solches Intervall nennt man auch punktierte rechtsseitige Umgebung von $x_0$. +${ }^3$ ) Statt $\lim _{x \rightarrow 0+0} f(x)=g_r$ (bzw. $f(x) \rightarrow g_r$, für $x \rightarrow 0+0$ ) schreibt man kurz $\lim _{x \rightarrow+0} f(x)=g_r$ (bzw. $f(x) \rightarrow g_r$ für $x \rightarrow+0$ ). + + + + + + + +*/ ] diff --git a/Band2/Grafiktest.typ b/Band2/Grafiktest.typ new file mode 100644 index 0000000..9c31900 --- /dev/null +++ b/Band2/Grafiktest.typ @@ -0,0 +1,998 @@ +// #import "@preview/cetz:0.4.0": canvas +// #import "@preview/cetz-plot:0.1.2": plot + +// #canvas({ +// plot.plot( +// size: (8, 8), +// axis-style: "school-book", // nur Achsen, kein Rahmen[web:17] +// x-min: -2, x-max: 2, // negativer und positiver x-Bereich[web:27] +// y-min: -1, y-max: 3.5, + +// x-tick-step: none, // automatische Ticks aus[web:24] +// y-tick-step: none, +// // nur 1/2 und x auf der x-Achse: +// x-ticks: ( +// (0.5, $1/2$), +// (1.25, $x$), +// ), +// // z.B. ein paar y-Ticks, falls gewünscht: +// y-ticks: ( +// (0.25, $1/4$), +// (1.5625, $x^2$), +// ), + +// shared-zero: false, // optional: 0 am Ursprung ausblenden[web:16] + +// // Parabel: y = x^2 auf [-2,2] +// plot.add( +// domain: (-3, 3), +// (x) => x * x, +// ) + +// ) +// }) + + + +// #import "@preview/cetz:0.4.2" +// #import "@preview/cetz-plot:0.1.3": plot + +// #cetz.canvas({ +// //import cetz.plot +// //import cetz.palette +// import cetz.draw: * +// plot.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$), +// ), +// { +// let f = x => calc.pow(x, 2) + +// // Definition der Punkte +// 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 + +// // 1. Die Parabel +// plot.add(f, domain: (-1.3, 1.8), label: $f(x) = x^2$) + +// // 2. Die Sekante (etwas weiter gezeichnet für die Optik) +// plot.add(s, domain: (0, 2), style: (stroke: blue)) + +// // 3. Die Punkte markieren +// plot.add(((x0, y0),), mark: "o", label: $P_0$) +// plot.add(((x1, y1),), mark: "o", label: $P$) + +// // 4. Hilfslinien (gestrichelt) +// plot.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.5pt))) +// plot.add(((x1, 0), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.5pt))) + +// plot.add(((x0, y0), (x1, y0)), style: (stroke: ( paint: gray.darken(80%), thickness: 0.5pt))) + + +// plot.add-anchor("pt1", (2,5)) +// } + +// ) +// // content("plot.x", [asdf]) +// }) + +// #import "@preview/cetz:0.4.2" +// #import "@preview/cetz-plot:0.1.2": plot + +// #cetz.canvas({ +// plot.plot( +// size: (6, 6), +// x-tick-step: 1, +// y-tick-step: 1, +// axis-style: "school-book", +// x-label: $x$, +// y-label: $y$, +// { +// let f = x => calc.pow(x, 2) +// let x0 = 0.5 +// let x1 = 1.5 + +// // 1. Die Parabel +// plot.add(f, domain: (-1.3, 1.8), label: $f(x)$) + +// // 2. Die Sekante +// let m = (f(x1) - f(x0)) / (x1 - x0) +// plot.add(x => m * (x - x0) + f(x0), domain: (0, 2), style: (stroke: blue)) + +// // 3. Hilfslinien +// plot.add(((x0, 0), (x0, f(x0))), style: (stroke: (dash: "dashed", paint: gray))) +// plot.add(((x1, 0), (x1, f(x1))), style: (stroke: (dash: "dashed", paint: gray))) + +// // 4. Beschriftungen OHNE den "bounds" Fehler +// // Wir nutzen plot.add mit leeren Markern oder speziellen Labels + +// // Punkte markieren und direkt beschriften +// plot.add(((x0, f(x0)),), mark: "o", label: $P_0$) +// plot.add(((x1, f(x1)),), mark: "o", label: $P$) + +// // Beschriftung an der x-Achse +// // Trick: Wir addieren einen "unsichtbaren" Punkt an der Achse mit Label +// plot.add(((x0, 0),), label: $x_0$, mark: none) +// plot.add(((x1, 0),), label: $x$, mark: none) +// } +// ) +// }) + +// #import "@preview/cetz:0.4.2" +// #import "@preview/cetz-plot:0.1.2" as cetz_plot + +// #cetz.canvas({ +// let cp = cetz_plot.plot + +// let x0 = 0.5 +// let x1 = 1.5 +// let f = x => calc.pow(x, 2) +// let y0 = f(x0) +// let y1 = f(x1) + +// cp.plot( +// size: (6, 6), +// x-tick-step: 1, +// y-tick-step: 1, +// axis-style: "school-book", +// x-label: $x$, +// y-label: $y$, +// { +// // 1. Die Graphen +// cp.add(f, domain: (-1.3, 1.8)) + +// let m = (y1 - y0) / (x1 - x0) +// cp.add(x => m * (x - x0) + y0, domain: (-0.2, 2.2), style: (stroke: blue)) + +// // 2. Hilfslinien +// cp.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray))) +// cp.add(((x1, 0), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray))) + +// // 3. Punkte P0 und P +// cp.add(((x0, y0),), mark: "o") +// cp.add(((x1, y1),), mark: "o") + +// // 4. BESCHRIFTUNG (Der Trick: add mit mark: none) +// // Wir setzen die Labels direkt an die Koordinaten + +// // x-Achse Beschriftung (leicht unter y=0 verschoben mit 'label-offset') +// cp.add(((x0, 0),), label: $x_0$, mark: none) +// cp.add(((x1, 0),), label: $x$, mark: none) + +// // Punkte beschriften +// cp.add(((x0 - 0.1, y0 + 0.3),), label: $P_0$, mark: none) +// cp.add(((x1 + 0.2, y1),), label: $P$, mark: none) + +// // Funktionsnamen +// cp.add(((1.6, 3.2),), label: $f(x)$, mark: none) +// } +// ) +// }) + +// #import "@preview/cetz:0.4.2" +// #import "@preview/cetz-plot:0.1.2" as cetz_plot + +// #cetz.canvas({ +// import cetz.draw: * +// let cp = cetz_plot.plot + +// // 1. Parameter festlegen +// let (w, h) = (6, 6) // Größe des Plots +// let x-min = -1.5 +// let x-max = 2.5 +// let y-min = -1.0 +// let y-max = 4.0 + +// let x0 = 0.5 +// let x1 = 1.5 +// let f = x => calc.pow(x, 2) +// let y0 = f(x0) +// let y1 = f(x1) + +// // 2. Den Plot zeichnen (als Basis) +// cp.plot( +// size: (w, h), +// x-tick-step: 1, +// y-tick-step: 1, +// axis-style: "school-book", +// x-label: $x$, +// y-label: $y$, +// x-domain: (x-min, x-max), +// y-domain: (y-min, y-max), +// name: "p", +// { +// cp.add(f, domain: (x-min, x-max)) + +// let m = (y1 - y0) / (x1 - x0) +// cp.add(x => m * (x - x0) + y0, domain: (x-min, x-max), style: (stroke: blue)) + +// cp.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray))) +// cp.add(((x1, 0), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray))) + +// cp.add(((x0, y0),), mark: "o") +// cp.add(((x1, y1),), mark: "o") +// } +// ) + +// // 3. DER FIX: Manuelle Beschriftung über das "p.origin" +// // Wir nutzen die Größe des Plots, um die Koordinaten selbst zu setzen. +// // Da der Ursprung im school-book Stil bei (0,0) liegt: +// let plot-coords(x, y) = { +// let px = (x / (x-max - x-min)) * w +// let py = (y / (y-max - y-min)) * h +// return (rel: (px, py), to: "p.origin") +// } + +// // Beschriftungen (Diese liegen nun außerhalb des Plot-Berechnungs-Logik) +// content(plot-coords(x0, -0.4), $x_0$) +// content(plot-coords(x1, -0.4), $x$) +// content(plot-coords(x0 - 0.3, y0 + 0.3), $P_0$) +// content(plot-coords(x1 + 0.3, y1), $P$) +// content(plot-coords(1.6, 3.2), $f(x)$) +// }) + + +// #import "@preview/cetz:0.4.2" + +// #cetz.canvas({ +// import cetz.draw: * + +// // 1. Koordinatensystem manuell skalieren (1 Einheit = 1.5cm) +// scale(1.5) + +// // Parameter +// let x0 = 0.5 +// let x1 = 1.5 +// let f(x) = calc.pow(x, 2) +// let y0 = f(x0) +// let y1 = f(x1) + +// // 2. Achsen zeichnen (School-Book) +// line((-1.5, 0), (2.5, 0), mark: (end: ">"), name: "xaxis") +// line((0, -1), (0, 4), mark: (end: ">"), name: "yaxis") + +// content((2.5, -0.3), $x$) +// content((-0.3, 4), $y$) + +// // 3. Parabel zeichnen (Sampling-Methode: Sicherster Weg ohne Extra-Module) +// let points = () +// for i in range(-13, 19) { +// let x = i / 10 +// points.push((x, f(x))) +// } +// line(..points, stroke: black) + +// // 4. Sekante zeichnen +// let m = (y1 - y0) / (x1 - x0) +// // Gerade: y = m*(x - x0) + y0 +// line((-0.5, m * (-0.5 - x0) + y0), (2.2, m * (2.2 - x0) + y0), stroke: blue) + +// // 5. Hilfslinien & Punkte +// line((x0, 0), (x0, y0), stroke: (dash: "dashed", paint: gray)) +// line((x1, 0), (x1, y1), stroke: (dash: "dashed", paint: gray)) + +// circle((x0, y0), radius: 0.05, fill: black) +// circle((x1, y1), radius: 0.05, fill: black) + +// // 6. BESCHRIFTUNGEN (Direkt an den Objekten) +// content((x0, -0.4), $x_0$) +// content((x1, -0.4), $x$) + +// content((x0 - 0.3, y0 + 0.2), $P_0$) +// content((x1 + 0.3, y1), $P$) + +// content((1.8, f(1.8)), $f(x)$, anchor: "west", padding: .1) +// content((2.1, 3.5), [Sekante], fill: white, padding: .1) +// }) + + +// #import "@preview/cetz:0.4.2" + +// #cetz.canvas({ +// import cetz.draw: * + +// // 1. Koordinatensystem manuell skalieren (1 Einheit = 1.5cm) +// scale(1.5) + +// // Parameter +// let x0 = 0.5 +// let x1 = 1.5 +// let f(x) = calc.pow(x, 2) +// let y0 = f(x0) +// let y1 = f(x1) + +// // 2. Achsen zeichnen (School-Book) +// line((-1.5, 0), (2.5, 0), mark: (end: ">"), name: "xaxis") +// line((0, -1), (0, 4), mark: (end: ">"), name: "yaxis") + +// content((2.5, -0.3), $x$) +// content((-0.3, 4), $y$) + +// // 3. Parabel zeichnen (Sampling-Methode: Sicherster Weg ohne Extra-Module) +// let points = () +// for i in range(-13, 19) { +// let x = i / 10 +// points.push((x, f(x))) +// } +// line(..points, stroke: black) + +// // 4. Sekante zeichnen +// let m = (y1 - y0) / (x1 - x0) +// // Gerade: y = m*(x - x0) + y0 +// line((-0.5, m * (-0.5 - x0) + y0), (2.2, m * (2.2 - x0) + y0), stroke: blue) + +// // 5. Hilfslinien & Punkte +// line((x0, 0), (x0, y0), stroke: (dash: "dashed", paint: gray)) +// line((x1, 0), (x1, y1), stroke: (dash: "dashed", paint: gray)) + +// circle((x0, y0), radius: 0.05, fill: black) +// circle((x1, y1), radius: 0.05, fill: black) + +// // 6. BESCHRIFTUNGEN (Direkt an den Objekten) +// content((x0, -0.4), $x_0$) +// content((x1, -0.4), $x$) + +// content((x0 - 0.3, y0 + 0.2), $P_0$) +// content((x1 + 0.3, y1), $P$) + +// content((1.8, f(1.8)), $f(x)$, anchor: "west", padding: .1) +// content((2.1, 3.5), [Sekante], fill: white, padding: .1) +// }) + + +// #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: 6, +// y-minor-tick-step: 1, +// axis-style: "school-book", { +// plot.add(domain: (-2.5, 2.5), +// x => (4-calc.pow(x, 2)), +// style: palette.tango-light) +// plot.add(domain: (-2.5, 2.5), +// x => (4-2*x), +// style: palette.tango-light) +// plot.add-fill-between(domain: (0, 2), +// x => (4-calc.pow(x, 2)), +// x => (4-2*x), +// style: palette.tango-light) +// plot.add(((0,4), (2,0)), +// mark: "o", +// mark-style: (stroke: none, fill: black), +// style: (stroke: none)) +// plot.add-anchor("pt1", (2,5)) +// plot.add-anchor("pt2", (-2,5.5)) +// plot.add-anchor("parab", (1, 4-calc.pow(1, 2)+0.2)) +// plot.add-anchor("rline", (-1.5, 4-2*(-1.5)-0.2)) +// }) + +// content("plot.pt1", [$y=4-2x^2$], anchor: "south", name: "prb") +// line("plot.parab", "prb", mark: (start: ">")) + +// content("plot.pt2", [$y=4-2x$], anchor: "north", name: "curve2") +// line("plot.rline", "curve2", mark: (start: ">")) + +// }) +// ) + +// #align(center, +// cetz.canvas({ +// // import cetz.plot +// // import cetz.palette +// import cetz.draw: * + +// plot.plot( +// size: (6,6), +// name: "plot", +// 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: ((0.25, $1/4$),(1.5625, $x^2$),), +// axis-style: "school-book", + +// plot.add( +// domain: (-1.3, 1.8), + +// x => (calc.pow(x, 2)), + +// ) +// )})) + + + +// #import "@preview/cetz:0.4.2" +// #import "@preview/cetz-plot:0.1.3": plot + +// #cetz.canvas({ +// //import cetz.plot +// //import cetz.palette +// import cetz.draw: * +// plot.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$), +// ), +// { +// let f = x => calc.pow(x, 2) + +// // Definition der Punkte +// 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 + +// // 1. Die Parabel +// plot.add(f, domain: (-1.3, 1.8), label: $f(x) = x^2$) + +// // 2. Die Sekante (etwas weiter gezeichnet für die Optik) +// plot.add(s, domain: (0, 2), style: (stroke: blue)) + +// // 3. Die Punkte markieren +// plot.add(((x0, y0),), mark: "o", label: $P_0$) +// plot.add(((x1, y1),), mark: "o", label: $P$) + +// // 4. Hilfslinien (gestrichelt) +// plot.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.5pt))) +// plot.add(((x1, 0), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.5pt))) + +// plot.add(((x0, y0), (x1, y0)), style: (stroke: ( paint: gray.darken(80%), thickness: 0.5pt))) + + +// plot.add-anchor("pt1", (2,5)) +// } + +// ) +// // content("plot.x", [asdf]) +// }) + + +#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.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), + 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") +}) + +#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") +}) + +#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: * + + 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") + + +}) + +#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: ">")) + + }) +) + + + +///////////////////////////// + +#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, 10), + 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 g = x => calc.pow(x - 2,3) + //let h = x => -1 *calc.pow(0.1 * g(x) -2,2) + // -(0.1(x-2)^(3)-2)^(2)+6 + let f = x => -1 * (calc.pow(0.1 * calc.pow((x - 2),3) -2,2)) - 0.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(f, samples: 300, domain: (1,3)) + //plot.add(x => calc.pow(x, 2), domain: (0.5, 4)) + //Sekante + + 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") +}) + +#import "@preview/cetz:0.4.2": canvas +#import "@preview/cetz-plot:0.1.3": plot + +#let theta = 45 * calc.pi / 180 +#let c = calc.cos(theta) +#let s = calc.sin(theta) + +#canvas({ + import cetz.draw: * + + plot.plot( + size: (12, 8), + axis-style: "school-book", + x-min: -8, x-max: 12, + y-min: -3, y-max: 9, + x-tick-step: 2, + y-tick-step: 1, + // Original + plot.add(x => { + let u = x - 2 + calc.pow( -(0.1 * calc.pow(u, 3) - 2), 2) + 6 + }, domain: (0, 4), + style: (stroke: (paint: blue, thickness: 1pt)), samples: 300), + // Rotierter Graph: Sampling über x_old und Rotation + plot.add(x_old => { + let u = x_old - 2 + let y_old = calc.pow( -(0.1 * calc.pow(u, 3) - 2), 2) + 6 + let x_new = x_old * c - y_old * s + let y_new = x_old * s + y_old * c + (x_new, y_new) + }, domain: (-1, 9), + style: (stroke: (paint: red, thickness: 3pt))), + ) +}) + + +#import "@preview/cetz:0.4.2": canvas +#import "@preview/cetz-plot:0.1.3": plot + +#let theta = -45 * calc.pi / 180 // 45 Grad für deutlichen Effekt +#let c = calc.cos(theta) +#let s = calc.sin(theta) + +#canvas({ + import cetz.draw: * + + plot.plot( + size: (14, 10), + axis-style: "school-book", + x-min: -10, x-max: 15, + y-min: -5, y-max: 12, + x-tick-step: 2, + y-tick-step: 2, + // Original + plot.add(x => { + let u = x - 2 + calc.pow( -(0.1 * calc.pow(u, 3) - 2), 2) + 6 + }, domain: (-3, 9), + style: (stroke: (paint: blue, thickness: 3pt))), + // Rotierter Graph: Erweiterte Domain für x_old + plot.add(x_old => { + let u = x_old - 2 + let y_old = calc.pow( -(0.1 * calc.pow(u, 3) - 2), 2) + 6 + x_old * c - y_old * s // Plotte x_new vs x_old (parametrisch projiziert) + }, domain: (-5, 11), + style: (stroke: (paint: red, thickness: 3pt))), + // Y_new vs x_old für vollständige Rotation (grün) + plot.add(x_old => { + let u = x_old - 2 + let y_old = calc.pow( -(0.1 * calc.pow(u, 3) - 2), 2) + 6 + x_old * s + y_old * c // y_new + }, domain: (-5, 11), + style: (stroke: (paint: green, thickness: 2pt))), + ) +}) + +#import "@preview/cetz:0.4.2": canvas +#import "@preview/cetz-plot:0.1.3": plot + +#let theta = 15deg + +#let f = x => { + let u = x - 7 + calc.pow(-(0.005 * calc.pow(u, 3) + 2), 2) +} + +#canvas({ + import cetz.draw: * + + // Original + plot.plot( + size: (14, 10), + axis-style: "school-book", + x-min: -12, x-max: 16, + y-min: -8, y-max: 14, + x-tick-step: 4, + y-tick-step: 2, + { + plot.add( + domain: (-4, 12), + f,samples: 400, + style: (stroke: (paint: blue, thickness: 3pt)), + ) + } + ) + + // Rotierter zweiter Graph, ohne zweite Achsen + group({ + rotate(theta, origin: (0, 0)) + plot.plot( + size: (14, 10), + axis-style: none, + x-min: -12, x-max: 16, + y-min: -8, y-max: 14, + { + plot.add( + domain: (-4, 12), + f, samples: 400, + style: (stroke: (paint: red, thickness: 3pt)), + ) + } + ) + }) +}) + +//orig + +#import "@preview/cetz:0.4.2": canvas +#import "@preview/cetz-plot:0.1.3": plot + +#let theta = 45deg + +#let f = x => { + let u = x - 2 + calc.pow(-(0.1 * calc.pow(u, 3) - 2), 2) + 6 +} + +#canvas({ + import cetz.draw: * + + // Original + plot.plot( + size: (14, 10), + axis-style: "school-book", + x-min: -12, x-max: 16, + y-min: -8, y-max: 14, + x-tick-step: 4, + y-tick-step: 2, + { + plot.add( + domain: (-4, 12), + f, + style: (stroke: (paint: blue, thickness: 3pt)), + ) + } + ) + + // Rotierter zweiter Graph, ohne zweite Achsen + group({ + rotate(theta, origin: (0, 0)) + plot.plot( + size: (14, 10), + axis-style: none, + x-min: -12, x-max: 16, + y-min: -8, y-max: 14, + { + plot.add( + domain: (-4, 12), + f, + style: (stroke: (paint: red, thickness: 3pt)), + ) + } + ) + }) +})