feat: newton Verfahren zeit auf f(x) an
This commit is contained in:
parent
59149464c4
commit
5f7f9c4097
@ -8,8 +8,8 @@ N = 200
|
|||||||
x = sp.Symbol("x")
|
x = sp.Symbol("x")
|
||||||
|
|
||||||
# Funktion
|
# Funktion
|
||||||
# f_sym = x**4 - 10 * x**2 + x
|
f_sym = x**4 - 10 * x**2 + x
|
||||||
f_sym = -sp.cos(2 * sp.pi * x)
|
#f_sym = -sp.cos(2 * sp.pi * x)
|
||||||
|
|
||||||
# Ableitungen
|
# Ableitungen
|
||||||
f = sp.lambdify(x, f_sym, "numpy")
|
f = sp.lambdify(x, f_sym, "numpy")
|
||||||
@ -18,7 +18,7 @@ f_second = sp.lambdify(x, sp.diff(f_sym, x, 2), "numpy")
|
|||||||
|
|
||||||
# Daten
|
# Daten
|
||||||
# x_data = np.linspace(-4, 4, N)
|
# 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)
|
f_data = f(x_data)
|
||||||
|
|
||||||
# Plot
|
# Plot
|
||||||
@ -31,7 +31,8 @@ plt.show()
|
|||||||
|
|
||||||
# Newton Verfahren
|
# Newton Verfahren
|
||||||
# Startwert
|
# 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
|
# 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))
|
||||||
@ -41,18 +42,20 @@ print(60 * "-")
|
|||||||
for x_0 in startwerte:
|
for x_0 in startwerte:
|
||||||
n = 0
|
n = 0
|
||||||
x_i = x_0
|
x_i = x_0
|
||||||
|
f_x = f(x_0)
|
||||||
f_x_prime = f_prime(x_0)
|
f_x_prime = f_prime(x_0)
|
||||||
f_x_second = f_second(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
|
limit = 1000
|
||||||
|
|
||||||
while np.abs(f_x_prime) > 1e-10 and limit > 0:
|
while np.abs(f_x_prime) > 1e-10 and limit > 0:
|
||||||
n += 1
|
n += 1
|
||||||
x_i = x_n(x_i)
|
x_i = x_n(x_i)
|
||||||
|
f_x = f(x_i)
|
||||||
f_x_prime = f_prime(x_i)
|
f_x_prime = f_prime(x_i)
|
||||||
f_x_second = f_second(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
|
limit -= 1
|
||||||
print(60 * "-")
|
print(60 * "-")
|
||||||
# %%
|
# %%
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user