From 5f7f9c4097a7633f6a62387467f68d603d4c0192 Mon Sep 17 00:00:00 2001 From: zimmersandro Date: Fri, 10 Apr 2026 14:19:17 +0200 Subject: [PATCH] feat: newton Verfahren zeit auf f(x) an --- src/optimierung/allgemeiner_newton_verfahren.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/optimierung/allgemeiner_newton_verfahren.py b/src/optimierung/allgemeiner_newton_verfahren.py index f98b2b8..688a1f7 100644 --- a/src/optimierung/allgemeiner_newton_verfahren.py +++ b/src/optimierung/allgemeiner_newton_verfahren.py @@ -8,8 +8,8 @@ N = 200 x = sp.Symbol("x") # Funktion -# f_sym = x**4 - 10 * x**2 + x -f_sym = -sp.cos(2 * sp.pi * x) +f_sym = x**4 - 10 * x**2 + x +#f_sym = -sp.cos(2 * sp.pi * x) # Ableitungen f = sp.lambdify(x, f_sym, "numpy") @@ -18,7 +18,7 @@ f_second = sp.lambdify(x, sp.diff(f_sym, x, 2), "numpy") # Daten # x_data = np.linspace(-4, 4, N) -x_data = np.linspace(-3, 3, N) +x_data = np.linspace(-4, 4, N) f_data = f(x_data) # Plot @@ -31,7 +31,8 @@ plt.show() # Newton Verfahren # Startwert -startwerte = [0.01, 0.02, 0.05, 0.1, 0.2, 0.23, 0.24, 0.245, 0.248, 0.249, 0.2499] +#startwerte = [0.01, 0.02, 0.05, 0.1, 0.2, 0.23, 0.24, 0.245, 0.248, 0.249, 0.2499] +startwerte = [1.1] # Iterationsformel x_n = lambda x: x - f_prime(x) / np.abs(f_second(x)) @@ -41,18 +42,20 @@ print(60 * "-") for x_0 in startwerte: n = 0 x_i = x_0 + f_x = f(x_0) f_x_prime = f_prime(x_0) f_x_second = f_second(x_0) - print(f"x_{n}: {x_0}\nf'(x_{n}): {f_x_prime}\nf''(x_{n}): {f_x_second}\n") + print(f"x_{n}: {x_0}\nf(x_{n}): {f_x}\nf'(x_{n}): {f_x_prime}\nf''(x_{n}): {f_x_second}\n") limit = 1000 while np.abs(f_x_prime) > 1e-10 and limit > 0: n += 1 x_i = x_n(x_i) + f_x = f(x_i) f_x_prime = f_prime(x_i) f_x_second = f_second(x_i) - print(f"x_{n}: {x_i}\nf'(x_{n}): {f_x_prime}\nf''(x_{n}): {f_x_second}\n") + print(f"x_{n}: {x_i}\nf(x_{n}): {f_x}\nf'(x_{n}): {f_x_prime}\nf''(x_{n}): {f_x_second}\n") limit -= 1 print(60 * "-") # %%