diff --git a/src/optimierung/newton_verfahren.py b/src/optimierung/newton_verfahren.py index c34ef13..8c3ceff 100644 --- a/src/optimierung/newton_verfahren.py +++ b/src/optimierung/newton_verfahren.py @@ -1,16 +1,16 @@ -#%% +# %% import numpy as np import sympy as sp import matplotlib.pyplot as plt -#%% +# %% # "Einfacher" Newton Verfahren -# Parameter +# Parameter N = 200 -x = sp.Symbol('x') +x = sp.Symbol("x") # Funktion -f_sym = sp.sin(3*x)+0.02*x**2 +f_sym = sp.sin(3 * x) + 0.02 * x**2 # Ableitungen f = sp.lambdify(x, f_sym, "numpy") @@ -18,7 +18,7 @@ f_prime = sp.lambdify(x, sp.diff(f_sym, x), "numpy") f_second = sp.lambdify(x, sp.diff(f_sym, x, 2), "numpy") # Daten -x_data = np.linspace(0,10,N) +x_data = np.linspace(0, 10, N) f_data = f(x_data) # Plot @@ -34,14 +34,14 @@ plt.axis("image") startwerte = [6.6, 3.4, 8.38] # Iterationsformel -x_n = lambda x: x - f_prime(x)/f_second(x) +x_n = lambda x: x - f_prime(x) / f_second(x) # Iteration for x_0 in startwerte: n = 0 x_i = x_0 f_x_prime = f_prime(x_0) - print(f"n: {n}\nf(x): {x_0}\nf'(x): {f_x_prime}\n") + print(f"x_{n}: {x_0}\nf'(x_{n}): {f_x_prime}\n") limit = 4 @@ -49,17 +49,17 @@ for x_0 in startwerte: n += 1 x_i = x_n(x_i) f_x_prime = f_prime(x_i) - print(f"n: {n}\nf(x): {x_i}\nf'(x): {f_x_prime}\n") + print(f"x_{n}: {x_i}\nf'(x_{n}): {f_x_prime}\n") limit -= 1 -#%% +# %% # "Modifizierter" Newton Verfahren -# Parameter +# Parameter N = 200 -x = sp.Symbol('x') +x = sp.Symbol("x") # Funktion -f_sym = sp.sin(3*x)+0.02*x**2 +f_sym = sp.sin(3 * x) + 0.02 * x**2 # Ableitungen f = sp.lambdify(x, f_sym, "numpy") @@ -67,7 +67,7 @@ f_prime = sp.lambdify(x, sp.diff(f_sym, x), "numpy") f_second = sp.lambdify(x, sp.diff(f_sym, x, 2), "numpy") # Daten -x_data = np.linspace(0,10,N) +x_data = np.linspace(0, 10, N) f_data = f(x_data) # Plot @@ -83,14 +83,14 @@ plt.axis("image") startwerte = [6.6, 3.4, 8.38] # Iterationsformel -x_n = lambda x: x - f_prime(x)/np.abs(f_second(x)) +x_n = lambda x: x - f_prime(x) / np.abs(f_second(x)) # Iteration for x_0 in startwerte: n = 0 x_i = x_0 f_x_prime = f_prime(x_0) - print(f"n: {n}\nf(x): {x_0}\nf'(x): {f_x_prime}\n") + print(f"x_{n}: {x_0}\nf'(x_{n}): {f_x_prime}\n") limit = 4 @@ -98,5 +98,6 @@ for x_0 in startwerte: n += 1 x_i = x_n(x_i) f_x_prime = f_prime(x_i) - print(f"n: {n}\nf(x): {x_i}\nf'(x): {f_x_prime}\n") - limit -= 1 \ No newline at end of file + print(f"x_{n}: {x_i}\nf'(x_{n}): {f_x_prime}\n") + limit -= 1 +# %%