#%% import numpy as np # %% print("Aufgabe 4") def fixpunkt_iteration(f, x=1.0, tol=1e-7, N=1000): x_new = f(x) i = 0 while(np.abs(x_new-x) > tol): if i > N: raise RuntimeError("Keine Konvergenz erreicht") x = x_new x_new = f(x) i += 1 return [x_new, i] # Ausgabe print("----------------------------------------------------------------------") print(__file__) print("----------------------------------------------------------------------") f = lambda x: 1-(1/5)*x try: fixpunkt_a, iterationen_a = fixpunkt_iteration(f) except RuntimeError as error: print(f"a) f(x) = 1-(1/5)*x\n{error}") else: print(f"a) f(x) = 1-(1/5)*x\nFixpunkt: {fixpunkt_a}\nIterationen: {iterationen_a}\n") f = np.cos try: fixpunkt_b, iterationen_b = fixpunkt_iteration(f) except RuntimeError as error: print(f"b) f(x) = cos(x)\n{error}") else: print(f"b) f(x) = cos(x)\nFixpunkt: {fixpunkt_b}\nIterationen: {iterationen_b}\n") f = lambda x: np.e**-x try: fixpunkt_c, iterationen_c = fixpunkt_iteration(f) except RuntimeError as error: print(f"c) f(x) = e⁻x\n{error}") else: print(f"c) f(x) = e⁻x\nFixpunkt: {fixpunkt_c}\nIterationen: {iterationen_c}\n") print("----------------------------------------------------------------------")