From 51163cdf1cbbace0b938d2563034522f23e0edb5 Mon Sep 17 00:00:00 2001 From: leobr Date: Thu, 20 Oct 2022 16:25:00 +0200 Subject: [PATCH] continued with task 4 --- Schenk_Brandenberger_S3_Aufg4.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Schenk_Brandenberger_S3_Aufg4.py b/Schenk_Brandenberger_S3_Aufg4.py index 2da0a3a..a5afdef 100644 --- a/Schenk_Brandenberger_S3_Aufg4.py +++ b/Schenk_Brandenberger_S3_Aufg4.py @@ -2,6 +2,10 @@ import numpy as np import matplotlib.pyplot as plt import math +# Aufgabe 4a) +# Da die Operation nicht gut konditioniert ist, erhält man für den Ausdruck inder Wurzel +# bei x = 1.1, -1.4e-14 => ein kleiner Rundungsfehler +# Somit kann die Wurzel für diesen x Werte nicht berechnet werden. def h1(x): try: @@ -22,6 +26,9 @@ def h2(x): def kondnumb(x): return (np.abs(h1_diff(x)) * np.abs(x)) / np.abs(h1(x)) +def kondnumb2(x): + return (np.abs(h2_diff(x)) * np.abs(x)) / np.abs(h2(x)) + xStep = math.pow(10, -7) xStart = 1.1 @@ -31,10 +38,12 @@ x = np.arange(xStart, xStop + xStep, xStep) y1 = [h1(x_val) for x_val in x] y2 = [h2(x_val) for x_val in x] -# y3 = [kondnumb(x_val) for x_val in x] +y3 = [kondnumb(x_val) for x_val in x] +y4 = [kondnumb2(x_val) for x_val in x] -# plt.yscale('log', base=10) -# plt.plot(x, y3, label='Konditionszahl') +plt.yscale('log', base=10) +plt.plot(x, y3, label='Konditionszahl') +plt.plot(x, y4, label='Konditionszahl nach Umformung') plt.title('4.b)') plt.legend() plt.figure() @@ -46,7 +55,4 @@ plt.xlim(1.099, 1.101) plt.legend() plt.show() -# Aufgabe 4a) -# Da die Operation nicht gut konditioniert ist, erhält man für den Ausdruck inder Wurzel -# bei x = 1.1, -1.4e-14 => ein kleiner Rundungsfehler -# Somit kann die Wurzel für diesen x Werte nicht berechnet werden. +