Die Abbildung zeigt den Graphen der Ableitungsfunktion \(f'\). Zeigen Sie unter Verwendung der formalen Kriterien der Differenzialrechnung, dass die folgenden Aussagen über den Graphen \(K_f\) der Ausgangsfunktion \(f\) wahr sind:
Um Eigenschaften von \(f\) aus \(f'\) abzuleiten, nutzen wir folgende Zusammenhänge:
Ein Wendepunkt von \(f\) erfordert eine Extremstelle von \(f'\).
Beweis: Ein Wendepunkt liegt vor, wenn \(f''(x) = 0\) mit VZW gilt. Da \(f''\) die Ableitung von \(f'\) ist, suchen wir die Stellen, an denen der Graph von \(f'\) eine waagerechte Tangente (Extremum) besitzt. Im Intervall \([-1; 3,5]\) lassen sich drei lokale Extremstellen im Graphen von \(f'\) identifizieren: 1. \(x_1 \approx 0\) (Lokales Minimum) \(\Rightarrow f''(x_1) = 0\) mit VZW von \(-\) nach \(+\). 2. \(x_2 \approx 1,8\) (Lokales Maximum) \(\Rightarrow f''(x_2) = 0\) mit VZW von \(+\) nach \(-\). 3. \(x_3 = 3\) (Lokales Minimum) \(\Rightarrow f''(x_3) = 0\) mit VZW von \(-\) nach \(+\).
Da an drei Stellen das hinreichende Kriterium für einen Wendepunkt erfüllt ist, hat \(K_f\) dort drei Wendepunkte.Ein Sattelpunkt ist ein “Wendepunkt mit Steigung Null”.
Beweis: Ein Sattelpunkt bei \(x_s\) erfordert: 1. \(f''(x_s) = 0\) mit VZW (Wendepunkt-Bedingung) 2. \(f'(x_s) = 0\) (Bedingung für waagerechte Tangente)
Betrachten wir die Stelle \(x = 3\): - Der Graph von \(f'\) berührt die x-Achse: \(f'(3) = 0\). - Gleichzeitig liegt bei \(x = 3\) ein lokaler Tiefpunkt von \(f'\) vor, woraus \(f''(3) = 0\) mit VZW folgt.
Da beide Bedingungen erfüllt sind, besitzt \(K_f\) an der Stelle \(x = 3\) einen Sattelpunkt.Die Steigung der Wendetangente ist der Funktionswert \(f'(x_w)\).
Beweis: Wir prüfen die Funktionswerte von \(f'\) an den in Aufgabe A gefundenen Wendestellen \(x_1, x_2, x_3\): 1. \(m_1 = f'(x_1) \approx f'(0) \approx -1 < 0,5\). 2. \(m_2 = f'(x_2) \approx f'(1,8)\). Der Graph erreicht hier sein lokales Maximum. Der y-Wert liegt laut Skalierung bei ca. \(0,3\) bis \(0,4\). Somit ist \(f'(x_2) < 0,5\). 3. \(m_3 = f'(x_3) = f'(3) = 0 < 0,5\).
Da die Steigung an allen Wendestellen kleiner als 0,5 ist, ist die Aussage bewiesen.Im Folgenden werden alle relevanten Funktionen und Zusammenhänge grafisch dargestellt. Wir definieren zunächst eine geeignete Ableitungsfunktion \(f'\), die den beschriebenen Eigenschaften entspricht, und leiten daraus \(f''\) sowie \(f\) ab.
# ============================================================
# Definition der Funktionen
# ============================================================
# Wir konstruieren f'(x) als Polynom 4. Grades mit folgenden Eigenschaften:
# - f'' hat Nullstellen bei x0 = -0.1, x1 = 1.8, x2 = 3
# (das sind die Extremstellen von f', also die Wendestellen von f)
# - f'(3) = 0 (Sattelpunkt-Bedingung: f' beruehrt die x-Achse)
# - f'(-0.1) = -1 (lokales Minimum nahe 0)
# - f'(1.8) ≈ 0.41 < 0.5 (lokales Maximum, Aussage C erfuellt)
#
# Herleitung:
# f''(x) = k * (x + 0.1) * (x - 1.8) * (x - 3)
# f'(x) = k * [x^4/4 - (4.7/3)*x^3 + (4.92/2)*x^2 + 0.54*x] + e
# Mit f'(3)=0 und f'(-0.1)=-1 ergibt sich k und e.
f_prime <- function(x) {
0.1438593630866462 * x^4 +
(-0.901518675342983) * x^3 +
1.4155761327725986 * x^2 +
0.3107362242671558 * x +
(-0.9839980435126621)
}
# Analytische zweite Ableitung (Ableitung des Polynoms)
f_double_prime <- function(x) {
4 * 0.1438593630866462 * x^3 +
3 * (-0.901518675342983) * x^2 +
2 * 1.4155761327725986 * x +
0.3107362242671558
}
# Numerische Integration: f(x) = Integral von f'(x) + C
# Wir verwenden die Trapezregel
f_original <- function(x, C = 0) {
sapply(x, function(xi) {
if (xi == -1.5) return(C)
n <- 1000
t <- seq(-1.5, xi, length.out = n)
dt <- diff(t)
vals <- f_prime(t)
integral <- sum((vals[-n] + vals[-1]) / 2 * dt)
return(integral + C)
})
}
# x-Wertebereich
x <- seq(-1.5, 4.5, length.out = 1000)
# Funktionswerte berechnen
y_f_prime <- f_prime(x)
y_f_double_prime <- f_double_prime(x)
y_f <- f_original(x, C = 2)
# Wendestellen sind analytisch bekannt:
# x0 = -0.1, x1 = 1.8, x2 = 3
# Nur die im Intervall [-1, 3.5]:
wendestellen <- c(-0.1, 1.8, 3.0)
# Sattelpunkt ist bei x = 3 (dort ist f'(3) = 0 und f''(3) = 0)
sp_x <- 3.0
cat("Wendestellen von f (Extremstellen von f'):\n")
## Wendestellen von f (Extremstellen von f'):
print(wendestellen)
## [1] -0.1 1.8 3.0
cat("\nFunktionswerte f'(x) an den Wendestellen (= Steigung der Wendetangenten):\n")
##
## Funktionswerte f'(x) an den Wendestellen (= Steigung der Wendetangenten):
print(round(f_prime(wendestellen), 4))
## [1] -1.0000 0.4143 0.0000
cat("\nAlle Steigungen < 0.5?", all(f_prime(wendestellen) < 0.5), "\n")
##
## Alle Steigungen < 0.5? TRUE
cat("\nSattelpunkt bei x =", sp_x, "mit f'(3) =", round(f_prime(sp_x), 6), "\n")
##
## Sattelpunkt bei x = 3 mit f'(3) = 0
# ============================================================
# PLOT 1: f'(x) – Die Ableitungsfunktion
# ============================================================
par(mar = c(5, 5, 4, 2))
plot(x, y_f_prime, type = "l", lwd = 3, col = "blue",
main = "Graph der Ableitungsfunktion f'(x)",
xlab = "x", ylab = "f'(x)",
xlim = c(-1.5, 4.5), ylim = c(-1.5, 1.5),
cex.main = 1.4, cex.lab = 1.2)
# Achsen
abline(h = 0, col = "gray40", lty = 2, lwd = 1)
abline(v = 0, col = "gray40", lty = 2, lwd = 1)
# Extremstellen von f' markieren (= Wendestellen von f)
points(wendestellen, f_prime(wendestellen), pch = 19, col = "red", cex = 2)
# Beschriftung der Extremstellen
for (i in seq_along(wendestellen)) {
label <- paste0("x", i, " = ", round(wendestellen[i], 2),
"\nf'=", round(f_prime(wendestellen[i]), 2))
text(wendestellen[i], f_prime(wendestellen[i]) + 0.2, label,
col = "red", cex = 0.85, font = 2)
}
# Schwelle 0.5 einzeichnen
abline(h = 0.5, col = "darkgreen", lty = 3, lwd = 2)
text(4, 0.6, "y = 0,5", col = "darkgreen", cex = 1, font = 2)
# Legende
legend("topright",
legend = c("f'(x)", "Extremstellen von f' (= Wendestellen von f)", "Schwelle y = 0,5"),
col = c("blue", "red", "darkgreen"),
lty = c(1, NA, 3), lwd = c(3, NA, 2),
pch = c(NA, 19, NA),
cex = 0.9, bg = "white")
# Gitterlinien
grid(col = "gray90")
Graph der Ableitungsfunktion f’(x) mit markierten Extremstellen
# ============================================================
# PLOT 2: f''(x) – Die zweite Ableitung
# ============================================================
par(mar = c(5, 5, 4, 2))
plot(x, y_f_double_prime, type = "l", lwd = 3, col = "darkorange",
main = "Graph der zweiten Ableitung f''(x)",
xlab = "x", ylab = "f''(x)",
xlim = c(-1.5, 4.5), ylim = c(range(y_f_double_prime) * 1.2),
cex.main = 1.4, cex.lab = 1.2)
# Achsen
abline(h = 0, col = "gray40", lty = 2, lwd = 1)
abline(v = 0, col = "gray40", lty = 2, lwd = 1)
# Nullstellen von f'' markieren (= Wendestellen von f)
points(wendestellen, rep(0, length(wendestellen)), pch = 19, col = "red", cex = 2)
# Beschriftung
for (i in seq_along(wendestellen)) {
text(wendestellen[i], 0.15, paste0("x", i, " = ", round(wendestellen[i], 2)),
col = "red", cex = 0.9, font = 2)
}
# VZW-Bereiche einfaerben
for (i in 1:(length(x)-1)) {
if (y_f_double_prime[i] > 0) {
segments(x[i], 0, x[i], y_f_double_prime[i], col = rgb(0, 0.6, 0, 0.15))
} else {
segments(x[i], 0, x[i], y_f_double_prime[i], col = rgb(0.8, 0, 0, 0.15))
}
}
# Legende
legend("topright",
legend = c("f''(x)", "Nullstellen (Wendestellen von f)", "f'' > 0 (f linksgekruemmt)", "f'' < 0 (f rechtsgekruemmt)"),
col = c("darkorange", "red", rgb(0, 0.6, 0, 0.5), rgb(0.8, 0, 0, 0.5)),
lty = c(1, NA, 1, 1), lwd = c(3, NA, 5, 5),
pch = c(NA, 19, NA, NA),
cex = 0.85, bg = "white")
grid(col = "gray90")
Graph der zweiten Ableitung f’’(x) mit markierten Nullstellen
# ============================================================
# PLOT 3: f(x) – Die Ausgangsfunktion (rekonstruiert)
# ============================================================
par(mar = c(5, 5, 4, 2))
plot(x, y_f, type = "l", lwd = 3, col = "darkviolet",
main = "Graph der Ausgangsfunktion f(x) (rekonstruiert)",
xlab = "x", ylab = "f(x)",
xlim = c(-1.5, 4.5),
cex.main = 1.4, cex.lab = 1.2)
# Achsen
abline(h = 0, col = "gray40", lty = 2, lwd = 1)
abline(v = 0, col = "gray40", lty = 2, lwd = 1)
# Wendepunkte markieren
wp_y <- f_original(wendestellen, C = 2)
points(wendestellen, wp_y, pch = 19, col = "red", cex = 2)
# Sattelpunkt besonders hervorheben
sp_y <- f_original(sp_x, C = 2)
points(sp_x, sp_y, pch = 18, col = "darkgreen", cex = 3)
# Beschriftung der Wendepunkte
for (i in seq_along(wendestellen)) {
label <- paste0("W", i, " (", round(wendestellen[i], 2), " | ", round(wp_y[i], 2), ")")
offset <- ifelse(i %% 2 == 0, 0.3, -0.3)
text(wendestellen[i] + 0.3, wp_y[i] + offset, label, col = "red", cex = 0.8, font = 2)
}
# Sattelpunkt-Label
text(sp_x + 0.5, sp_y - 0.4, "Sattelpunkt", col = "darkgreen", cex = 1, font = 2)
# Legende
legend("topleft",
legend = c("f(x)", "Wendepunkte", "Sattelpunkt"),
col = c("darkviolet", "red", "darkgreen"),
lty = c(1, NA, NA), lwd = c(3, NA, NA),
pch = c(NA, 19, 18), pt.cex = c(NA, 1.5, 2),
cex = 0.9, bg = "white")
grid(col = "gray90")
Graph der Ausgangsfunktion f(x) mit markierten Wendepunkten und Sattelpunkt
# ============================================================
# PLOT 4: f(x) mit Wendetangenten
# ============================================================
par(mar = c(5, 5, 4, 2))
plot(x, y_f, type = "l", lwd = 3, col = "darkviolet",
main = "Ausgangsfunktion f(x) mit Wendetangenten",
xlab = "x", ylab = "f(x)",
xlim = c(-1.5, 4.5),
cex.main = 1.4, cex.lab = 1.2)
# Achsen
abline(h = 0, col = "gray40", lty = 2, lwd = 1)
abline(v = 0, col = "gray40", lty = 2, lwd = 1)
# Wendepunkte markieren
wp_y <- f_original(wendestellen, C = 2)
points(wendestellen, wp_y, pch = 19, col = "red", cex = 2)
# Wendetangenten einzeichnen
tangenten_farben <- c("coral", "forestgreen", "dodgerblue")
for (i in seq_along(wendestellen)) {
xw <- wendestellen[i]
yw <- wp_y[i]
mw <- f_prime(xw) # Steigung der Wendetangente
# Tangentenlinie: y = mw * (x - xw) + yw
x_tang <- seq(xw - 1.5, xw + 1.5, length.out = 100)
y_tang <- mw * (x_tang - xw) + yw
lines(x_tang, y_tang, col = tangenten_farben[i], lwd = 2, lty = 2)
# Beschriftung mit Steigung
text(xw + 1.2, yw + mw * 1.2 + 0.15,
paste0("m", i, " = ", round(mw, 3)),
col = tangenten_farben[i], cex = 0.85, font = 2)
}
# Schwelle-Hinweis
mtext("Alle Steigungen < 0,5", side = 1, line = 3.5, col = "darkgreen", font = 2, cex = 1.1)
# Legende
legend("topleft",
legend = c("f(x)",
paste0("Tangente W1 (m=", round(f_prime(wendestellen[1]), 3), ")"),
paste0("Tangente W2 (m=", round(f_prime(wendestellen[2]), 3), ")"),
paste0("Tangente W3 (m=", round(f_prime(wendestellen[3]), 3), ")")),
col = c("darkviolet", tangenten_farben),
lty = c(1, 2, 2, 2), lwd = c(3, 2, 2, 2),
cex = 0.85, bg = "white")
grid(col = "gray90")
Graph von f(x) mit eingezeichneten Wendetangenten
# ============================================================
# PLOT 5: Monotonie- und Kruemmungsverhalten (Vorzeichenanalyse)
# ============================================================
par(mar = c(5, 5, 4, 2))
layout(matrix(1:2, nrow = 2))
# --- Oberer Plot: f'(x) mit Vorzeichenbereichen (Monotonie) ---
plot(x, y_f_prime, type = "l", lwd = 3, col = "blue",
main = "Vorzeichenanalyse von f'(x) -> Monotonie von f",
xlab = "x", ylab = "f'(x)",
xlim = c(-1.5, 4.5), ylim = c(-1.5, 1.5),
cex.main = 1.2, cex.lab = 1.1)
abline(h = 0, col = "gray40", lty = 2, lwd = 1)
# Flaechen einfaerben
for (i in 1:(length(x)-1)) {
if (y_f_prime[i] > 0) {
rect(x[i], 0, x[i+1], y_f_prime[i], col = rgb(0, 0.7, 0, 0.2), border = NA)
} else {
rect(x[i], y_f_prime[i], x[i+1], 0, col = rgb(0.8, 0, 0, 0.2), border = NA)
}
}
lines(x, y_f_prime, lwd = 3, col = "blue")
legend("topright",
legend = c("f' > 0 -> f steigt", "f' < 0 -> f faellt"),
fill = c(rgb(0, 0.7, 0, 0.4), rgb(0.8, 0, 0, 0.4)),
cex = 0.85, bg = "white")
# --- Unterer Plot: f''(x) mit Vorzeichenbereichen (Kruemmung) ---
plot(x, y_f_double_prime, type = "l", lwd = 3, col = "darkorange",
main = "Vorzeichenanalyse von f''(x) -> Kruemmung von f",
xlab = "x", ylab = "f''(x)",
xlim = c(-1.5, 4.5),
cex.main = 1.2, cex.lab = 1.1)
abline(h = 0, col = "gray40", lty = 2, lwd = 1)
for (i in 1:(length(x)-1)) {
if (y_f_double_prime[i] > 0) {
rect(x[i], 0, x[i+1], y_f_double_prime[i], col = rgb(0, 0.5, 1, 0.2), border = NA)
} else {
rect(x[i], y_f_double_prime[i], x[i+1], 0, col = rgb(1, 0.5, 0, 0.2), border = NA)
}
}
lines(x, y_f_double_prime, lwd = 3, col = "darkorange")
# Wendestellen markieren
points(wendestellen, rep(0, length(wendestellen)), pch = 19, col = "red", cex = 1.5)
legend("topright",
legend = c("f'' > 0 -> Linkskruemmung", "f'' < 0 -> Rechtskruemmung", "Wendestellen"),
fill = c(rgb(0, 0.5, 1, 0.4), rgb(1, 0.5, 0, 0.4), NA),
border = c("black", "black", NA),
pch = c(NA, NA, 19), col = c(NA, NA, "red"),
cex = 0.85, bg = "white")
Monotonie- und Kruemmungsverhalten von f abgeleitet aus f’ und f’’
# Layout zuruecksetzen
layout(1)
# ============================================================
# PLOT 6: Alle drei Funktionen uebereinander (3 Panels)
# ============================================================
par(mfrow = c(3, 1), mar = c(4, 5, 3, 2))
# --- Panel 1: f(x) ---
plot(x, y_f, type = "l", lwd = 3, col = "darkviolet",
main = "Ausgangsfunktion f(x)", xlab = "", ylab = "f(x)",
xlim = c(-1.5, 4.5), cex.main = 1.3, cex.lab = 1.2)
abline(h = 0, v = 0, col = "gray60", lty = 2)
wp_y <- f_original(wendestellen, C = 2)
points(wendestellen, wp_y, pch = 19, col = "red", cex = 1.5)
# Vertikale Linien an Wendestellen
abline(v = wendestellen, col = "red", lty = 3, lwd = 1)
legend("topleft", legend = c("f(x)", "Wendepunkte"),
col = c("darkviolet", "red"), lty = c(1, NA), lwd = c(3, NA),
pch = c(NA, 19), cex = 0.8, bg = "white")
grid(col = "gray90")
# --- Panel 2: f'(x) ---
plot(x, y_f_prime, type = "l", lwd = 3, col = "blue",
main = "Ableitungsfunktion f'(x)", xlab = "", ylab = "f'(x)",
xlim = c(-1.5, 4.5), cex.main = 1.3, cex.lab = 1.2)
abline(h = 0, v = 0, col = "gray60", lty = 2)
points(wendestellen, f_prime(wendestellen), pch = 19, col = "red", cex = 1.5)
abline(v = wendestellen, col = "red", lty = 3, lwd = 1)
abline(h = 0.5, col = "darkgreen", lty = 3, lwd = 2)
legend("topright", legend = c("f'(x)", "Extremstellen (-> WP von f)", "y = 0,5"),
col = c("blue", "red", "darkgreen"), lty = c(1, NA, 3), lwd = c(3, NA, 2),
pch = c(NA, 19, NA), cex = 0.8, bg = "white")
grid(col = "gray90")
# --- Panel 3: f''(x) ---
plot(x, y_f_double_prime, type = "l", lwd = 3, col = "darkorange",
main = "Zweite Ableitung f''(x)", xlab = "x", ylab = "f''(x)",
xlim = c(-1.5, 4.5), cex.main = 1.3, cex.lab = 1.2)
abline(h = 0, v = 0, col = "gray60", lty = 2)
points(wendestellen, rep(0, length(wendestellen)), pch = 19, col = "red", cex = 1.5)
abline(v = wendestellen, col = "red", lty = 3, lwd = 1)
legend("topright", legend = c("f''(x)", "Nullstellen (-> WP von f)"),
col = c("darkorange", "red"), lty = c(1, NA), lwd = c(3, NA),
pch = c(NA, 19), cex = 0.8, bg = "white")
grid(col = "gray90")
Vergleich aller drei Funktionen f, f’ und f’’ untereinander
par(mfrow = c(1, 1))
# ============================================================
# PLOT 7: Alle Funktionen ueberlagert in einem Plot
# ============================================================
par(mar = c(5, 5, 4, 2))
# Skalierung bestimmen
y_range <- range(c(y_f, y_f_prime, y_f_double_prime))
plot(x, y_f, type = "l", lwd = 3, col = "darkviolet",
main = "Ueberlagerung: f(x), f'(x) und f''(x)",
xlab = "x", ylab = "Funktionswert",
xlim = c(-1.5, 4.5), ylim = y_range,
cex.main = 1.4, cex.lab = 1.2)
lines(x, y_f_prime, lwd = 3, col = "blue", lty = 1)
lines(x, y_f_double_prime, lwd = 2, col = "darkorange", lty = 2)
# Achsen
abline(h = 0, col = "gray40", lty = 2, lwd = 1)
abline(v = 0, col = "gray40", lty = 2, lwd = 1)
# Wendestellen markieren
abline(v = wendestellen, col = "red", lty = 3, lwd = 1.5)
legend("topleft",
legend = c("f(x)", "f'(x)", "f''(x)", "Wendestellen"),
col = c("darkviolet", "blue", "darkorange", "red"),
lty = c(1, 1, 2, 3), lwd = c(3, 3, 2, 1.5),
cex = 0.9, bg = "white")
grid(col = "gray90")
Ueberlagerung von f(x), f’(x) und f’’(x) in einem Koordinatensystem
# ============================================================
# PLOT 8: Detailansicht Sattelpunkt
# ============================================================
par(mar = c(5, 5, 4, 2))
# Zoom auf den Bereich um x = 3
x_zoom <- seq(1.5, 4.5, length.out = 500)
y_zoom <- f_original(x_zoom, C = 2)
plot(x_zoom, y_zoom, type = "l", lwd = 3, col = "darkviolet",
main = "Detailansicht: Sattelpunkt bei x = 3",
xlab = "x", ylab = "f(x)",
cex.main = 1.4, cex.lab = 1.2)
abline(h = 0, v = 0, col = "gray60", lty = 2)
# Sattelpunkt (sp_x ist ein Skalar, oben als 3.0 definiert)
sp_y <- f_original(sp_x, C = 2)
points(sp_x, sp_y, pch = 18, col = "darkgreen", cex = 3)
# Waagerechte Tangente am Sattelpunkt (Steigung = 0)
x_tang <- seq(sp_x - 1.5, sp_x + 1.5, length.out = 100)
y_tang <- rep(sp_y, 100)
lines(x_tang, y_tang, col = "darkgreen", lwd = 2, lty = 2)
# Beschriftung
text(sp_x + 0.5, sp_y + 0.15,
paste0("Sattelpunkt\n(", round(sp_x, 2), " | ", round(sp_y, 2), ")\nf'(3) = 0, f''(3) = 0"),
col = "darkgreen", cex = 0.9, font = 2)
# Legende
legend("topleft",
legend = c("f(x)", "Sattelpunkt", "Waagerechte Tangente (m = 0)"),
col = c("darkviolet", "darkgreen", "darkgreen"),
lty = c(1, NA, 2), lwd = c(3, NA, 2),
pch = c(NA, 18, NA), pt.cex = c(NA, 2, NA),
cex = 0.9, bg = "white")
grid(col = "gray90")
Detailansicht des Sattelpunkts bei x = 3
# ============================================================
# PLOT 9: Balkendiagramm – Steigungen der Wendetangenten
# ============================================================
par(mar = c(5, 6, 4, 2))
steigungen <- f_prime(wendestellen)
namen <- paste0("W", seq_along(wendestellen), " (x=", round(wendestellen, 2), ")")
# Farben: alle unter 0.5 -> blau
farben <- ifelse(steigungen < 0.5, "steelblue", "red")
bp <- barplot(steigungen, names.arg = namen, col = farben,
main = "Steigungen der Wendetangenten",
ylab = "Steigung m = f'(x_w)",
ylim = c(min(steigungen) - 0.3, 0.8),
cex.main = 1.4, cex.lab = 1.2, cex.names = 0.9,
border = "gray30")
# Schwellenlinie
abline(h = 0.5, col = "red", lty = 2, lwd = 2)
text(max(bp) + 0.3, 0.55, "Schwelle: 0,5", col = "red", cex = 0.9, font = 2)
abline(h = 0, col = "gray40", lwd = 1)
# Werte ueber den Balken
text(bp, steigungen + 0.05 * sign(steigungen),
round(steigungen, 3), col = "black", cex = 1, font = 2)
# Fazit
mtext("Alle Steigungen < 0,5 -> Aussage C bestaetigt",
side = 1, line = 3.5, col = "darkgreen", font = 2, cex = 1.1)
Balkendiagramm der Wendetangenten-Steigungen im Vergleich zur Schwelle 0,5
# ============================================================
# PLOT 10: Grafische Vorzeichentabelle / Kurvendiskussion
# ============================================================
par(mar = c(5, 8, 4, 2))
x_fine <- seq(-1.5, 4.5, length.out = 2000)
y_fp <- f_prime(x_fine)
y_fpp <- f_double_prime(x_fine)
plot(NULL, xlim = c(-1.5, 4.5), ylim = c(0, 4),
main = "Grafische Vorzeichentabelle",
xlab = "x", ylab = "", yaxt = "n",
cex.main = 1.4, cex.lab = 1.2)
# Zeile 1 (y=3): Vorzeichen von f'
for (i in 1:(length(x_fine)-1)) {
col_fp <- ifelse(y_fp[i] > 0, rgb(0, 0.7, 0, 0.6), rgb(0.8, 0, 0, 0.6))
rect(x_fine[i], 2.6, x_fine[i+1], 3.4, col = col_fp, border = NA)
}
# Zeile 2 (y=2): Vorzeichen von f''
for (i in 1:(length(x_fine)-1)) {
col_fpp <- ifelse(y_fpp[i] > 0, rgb(0, 0.5, 1, 0.6), rgb(1, 0.5, 0, 0.6))
rect(x_fine[i], 1.6, x_fine[i+1], 2.4, col = col_fpp, border = NA)
}
# Zeile 3 (y=1): Monotonie von f
for (i in 1:(length(x_fine)-1)) {
col_mono <- ifelse(y_fp[i] > 0, rgb(0, 0.8, 0.2, 0.5), rgb(0.9, 0.2, 0, 0.5))
rect(x_fine[i], 0.6, x_fine[i+1], 1.4, col = col_mono, border = NA)
}
# Wendestellen markieren
abline(v = wendestellen, col = "red", lty = 2, lwd = 2)
# y-Achsen-Beschriftung
axis(2, at = c(1, 2, 3), labels = c("Monotonie\nvon f", "Vorzeichen\nvon f''", "Vorzeichen\nvon f'"),
las = 1, cex.axis = 0.85)
# Legende
legend("topright",
legend = c("f' > 0 / f steigt", "f' < 0 / f faellt",
"f'' > 0 / Linkskr.", "f'' < 0 / Rechtskr.",
"Wendestellen"),
fill = c(rgb(0, 0.7, 0, 0.6), rgb(0.8, 0, 0, 0.6),
rgb(0, 0.5, 1, 0.6), rgb(1, 0.5, 0, 0.6), NA),
border = c(rep("gray30", 4), NA),
col = c(rep(NA, 4), "red"),
lty = c(rep(NA, 4), 2), lwd = c(rep(NA, 4), 2),
cex = 0.75, bg = "white")
Grafische Vorzeichentabelle fuer f’, f’’ und Eigenschaften von f
# ============================================================
# PLOT 11: Phasenportraet f' vs f''
# ============================================================
par(mar = c(5, 5, 4, 2))
plot(y_f_prime, y_f_double_prime, type = "l", lwd = 2, col = "purple",
main = "Phasenportraet: f'(x) vs. f''(x)",
xlab = "f'(x) – Steigung von f", ylab = "f''(x) – Kruemmung von f",
cex.main = 1.4, cex.lab = 1.2)
abline(h = 0, v = 0, col = "gray40", lty = 2)
# Wendestellen markieren (f'' = 0)
points(f_prime(wendestellen), rep(0, length(wendestellen)),
pch = 19, col = "red", cex = 2)
# Beschriftung
for (i in seq_along(wendestellen)) {
text(f_prime(wendestellen[i]) + 0.1, 0.1,
paste0("W", i), col = "red", cex = 1, font = 2)
}
# Sattelpunkt (f' = 0, f'' = 0) -> Ursprung
points(0, 0, pch = 18, col = "darkgreen", cex = 3)
text(0.15, 0.15, "Sattelpunkt\n(f'=0, f''=0)", col = "darkgreen", cex = 0.8, font = 2)
# Quadranten beschriften
text(-0.8, 0.5, "f faellt &\nLinkskruemmung", col = "gray50", cex = 0.7, font = 3)
text(0.3, 0.5, "f steigt &\nLinkskruemmung", col = "gray50", cex = 0.7, font = 3)
text(-0.8, -0.5, "f faellt &\nRechtskruemmung", col = "gray50", cex = 0.7, font = 3)
text(0.3, -0.5, "f steigt &\nRechtskruemmung", col = "gray50", cex = 0.7, font = 3)
legend("topright",
legend = c("Phasenkurve", "Wendestellen", "Sattelpunkt"),
col = c("purple", "red", "darkgreen"),
lty = c(1, NA, NA), lwd = c(2, NA, NA),
pch = c(NA, 19, 18), pt.cex = c(NA, 1.5, 2),
cex = 0.85, bg = "white")
grid(col = "gray90")
Phasenportraet: f’(x) gegen f’’(x) – Zusammenhang zwischen Steigung und Kruemmung
# ============================================================
# PLOT 12: Kruemmung von f(x) entlang des Intervalls
# ============================================================
par(mar = c(5, 5, 4, 2))
# Kruemmung berechnen: kappa = |f''| / (1 + f'^2)^(3/2)
kruemmung <- abs(y_f_double_prime) / (1 + y_f_prime^2)^(3/2)
plot(x, kruemmung, type = "l", lwd = 3, col = "brown",
main = "Kruemmung kappa(x) der Funktion f",
xlab = "x", ylab = "kappa(x) = |f''| / (1 + f'^2)^(3/2)",
xlim = c(-1.5, 4.5),
cex.main = 1.3, cex.lab = 1.0)
abline(h = 0, col = "gray40", lty = 2)
# Wendestellen markieren (Kruemmung = 0)
points(wendestellen, rep(0, length(wendestellen)), pch = 19, col = "red", cex = 2)
for (i in seq_along(wendestellen)) {
text(wendestellen[i], 0.05, paste0("W", i), col = "red", cex = 0.9, font = 2)
}
legend("topright",
legend = c("Kruemmung kappa(x)", "Wendestellen (kappa = 0)"),
col = c("brown", "red"),
lty = c(1, NA), lwd = c(3, NA),
pch = c(NA, 19),
cex = 0.9, bg = "white")
grid(col = "gray90")
Kruemmungsradien entlang f(x) – minimale Kruemmung an den Wendestellen
| Wendestelle | x-Wert | f(x) | f’(x) = Steigung | f’’(x) | Typ |
|---|---|---|---|---|---|
| W1 | -0.100 | 3.226 | -1.000 | -0.0000 | Wendepunkt |
| W2 | 1.800 | 2.788 | 0.414 | -0.0000 | Wendepunkt |
| W3 | 3.000 | 3.049 | -0.000 | -0.0000 | Sattelpunkt |