refractor: Ausgabe verbessert
This commit is contained in:
parent
d39e3fcff0
commit
e5e591891d
@ -1,16 +1,16 @@
|
|||||||
#%%
|
# %%
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import sympy as sp
|
import sympy as sp
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
#%%
|
# %%
|
||||||
# "Einfacher" Newton Verfahren
|
# "Einfacher" Newton Verfahren
|
||||||
# Parameter
|
# Parameter
|
||||||
N = 200
|
N = 200
|
||||||
x = sp.Symbol('x')
|
x = sp.Symbol("x")
|
||||||
|
|
||||||
# Funktion
|
# Funktion
|
||||||
f_sym = sp.sin(3*x)+0.02*x**2
|
f_sym = sp.sin(3 * x) + 0.02 * x**2
|
||||||
|
|
||||||
# Ableitungen
|
# Ableitungen
|
||||||
f = sp.lambdify(x, f_sym, "numpy")
|
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")
|
f_second = sp.lambdify(x, sp.diff(f_sym, x, 2), "numpy")
|
||||||
|
|
||||||
# Daten
|
# Daten
|
||||||
x_data = np.linspace(0,10,N)
|
x_data = np.linspace(0, 10, N)
|
||||||
f_data = f(x_data)
|
f_data = f(x_data)
|
||||||
|
|
||||||
# Plot
|
# Plot
|
||||||
@ -34,14 +34,14 @@ plt.axis("image")
|
|||||||
startwerte = [6.6, 3.4, 8.38]
|
startwerte = [6.6, 3.4, 8.38]
|
||||||
|
|
||||||
# Iterationsformel
|
# Iterationsformel
|
||||||
x_n = lambda x: x - f_prime(x)/f_second(x)
|
x_n = lambda x: x - f_prime(x) / f_second(x)
|
||||||
|
|
||||||
# Iteration
|
# Iteration
|
||||||
for x_0 in startwerte:
|
for x_0 in startwerte:
|
||||||
n = 0
|
n = 0
|
||||||
x_i = x_0
|
x_i = x_0
|
||||||
f_x_prime = f_prime(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
|
limit = 4
|
||||||
|
|
||||||
@ -49,17 +49,17 @@ for x_0 in startwerte:
|
|||||||
n += 1
|
n += 1
|
||||||
x_i = x_n(x_i)
|
x_i = x_n(x_i)
|
||||||
f_x_prime = f_prime(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
|
limit -= 1
|
||||||
|
|
||||||
#%%
|
# %%
|
||||||
# "Modifizierter" Newton Verfahren
|
# "Modifizierter" Newton Verfahren
|
||||||
# Parameter
|
# Parameter
|
||||||
N = 200
|
N = 200
|
||||||
x = sp.Symbol('x')
|
x = sp.Symbol("x")
|
||||||
|
|
||||||
# Funktion
|
# Funktion
|
||||||
f_sym = sp.sin(3*x)+0.02*x**2
|
f_sym = sp.sin(3 * x) + 0.02 * x**2
|
||||||
|
|
||||||
# Ableitungen
|
# Ableitungen
|
||||||
f = sp.lambdify(x, f_sym, "numpy")
|
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")
|
f_second = sp.lambdify(x, sp.diff(f_sym, x, 2), "numpy")
|
||||||
|
|
||||||
# Daten
|
# Daten
|
||||||
x_data = np.linspace(0,10,N)
|
x_data = np.linspace(0, 10, N)
|
||||||
f_data = f(x_data)
|
f_data = f(x_data)
|
||||||
|
|
||||||
# Plot
|
# Plot
|
||||||
@ -83,14 +83,14 @@ plt.axis("image")
|
|||||||
startwerte = [6.6, 3.4, 8.38]
|
startwerte = [6.6, 3.4, 8.38]
|
||||||
|
|
||||||
# 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))
|
||||||
|
|
||||||
# Iteration
|
# Iteration
|
||||||
for x_0 in startwerte:
|
for x_0 in startwerte:
|
||||||
n = 0
|
n = 0
|
||||||
x_i = x_0
|
x_i = x_0
|
||||||
f_x_prime = f_prime(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
|
limit = 4
|
||||||
|
|
||||||
@ -98,5 +98,6 @@ for x_0 in startwerte:
|
|||||||
n += 1
|
n += 1
|
||||||
x_i = x_n(x_i)
|
x_i = x_n(x_i)
|
||||||
f_x_prime = f_prime(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
|
limit -= 1
|
||||||
|
# %%
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user