continued with task 4
This commit is contained in:
		
							parent
							
								
									d1e1daca18
								
							
						
					
					
						commit
						5912373856
					
				| 
						 | 
					@ -2,31 +2,50 @@ import numpy as np
 | 
				
			||||||
import matplotlib.pyplot as plt
 | 
					import matplotlib.pyplot as plt
 | 
				
			||||||
import math
 | 
					import math
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def h1(x):
 | 
					def h1(x):
 | 
				
			||||||
    return math.sqrt(100 * math.pow(x,2) - 200 * x + 99)
 | 
					    try:
 | 
				
			||||||
 | 
					        return math.sqrt(100 * math.pow(x, 2) - 200 * x + 99)
 | 
				
			||||||
 | 
					    except:
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def h1_diff(x):
 | 
					def h1_diff(x):
 | 
				
			||||||
    return (100 * x - 100) / math.sqrt(100 * math.pow(x, 2) - 200 * x + 99)
 | 
					    return (100 * x - 100) / math.sqrt(100 * math.pow(x, 2) - 200 * x + 99)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def h2(x):
 | 
					def h2(x):
 | 
				
			||||||
    return math.sqrt((10 * x - 9) * (10 * x - 11))
 | 
					    return math.sqrt((10 * x - 9) * (10 * x - 11))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
xStep = math.pow(10,-7)
 | 
					
 | 
				
			||||||
xStart = 1.1 + xStep
 | 
					def kondnumb(x):
 | 
				
			||||||
 | 
					    return (np.abs(h1_diff(x)) * np.abs(x)) / np.abs(h1(x))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					xStep = math.pow(10, -7)
 | 
				
			||||||
 | 
					xStart = 1.1
 | 
				
			||||||
xStop = 1.31
 | 
					xStop = 1.31
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					x = np.arange(xStart, xStop + xStep, xStep)
 | 
				
			||||||
x = np.arange(xStart,xStop + xStep,xStep)
 | 
					 | 
				
			||||||
y1 = [h1(x_val) for x_val in x]
 | 
					y1 = [h1(x_val) for x_val in x]
 | 
				
			||||||
y2 = [h2(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]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					plt.yscale('log', base=10)
 | 
				
			||||||
 | 
					plt.plot(x, y3, label='Konditionszahl')
 | 
				
			||||||
 | 
					plt.title('4.b)')
 | 
				
			||||||
 | 
					plt.legend()
 | 
				
			||||||
 | 
					plt.figure()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
plt.plot(x, y1, label='h1(x)')
 | 
					plt.plot(x, y1, label='h1(x)')
 | 
				
			||||||
plt.plot(x, y2, label='h2(x)')
 | 
					plt.plot(x, y2, label='h2(x)')
 | 
				
			||||||
plt.yscale('log', base=10)
 | 
					plt.xlim(1.099, 1.101)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
plt.legend()
 | 
					plt.legend()
 | 
				
			||||||
plt.show()
 | 
					plt.show()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Aufgabe 4a)
 | 
					# Aufgabe 4a)
 | 
				
			||||||
# Da die Operation nicht gut konditioniert ist, erhält man für den Ausdruck inder Wurzel
 | 
					# 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
 | 
					# bei x = 1.1, -1.4e-14 => ein kleiner Rundungsfehler
 | 
				
			||||||
# Somit kann die Wurzel für diesen x Werte nicht berechnet werden.
 | 
					# Somit kann die Wurzel für diesen x Werte nicht berechnet werden.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue