import numpy as np import matplotlib.pyplot as plt # a) # Durch ausprobieren, von unterschiedlichen a's # in die untere Funktion ergibt sich folgendes: # a anziehend: # [0.25, 0.5, 1.00, 1.50, 2.00, 2.50, 3.00] # a abstossend: # [3.25, 3.75, 4.0] # b) # Für die Aufgabe hat der Fixpunkt die bedeutung das die Anzahl Neuerkrankung gleich ist wie die der gesund # werdenden Kindern, somit bleibt die Anzahl von kranken Kindern nach einer gewissen Zeit konstant. # c) # Weil der Fipunkt immer gleich bleibt, kann man folgendes annehmen: # k(i) = k(i + 1) = k # Fixpunktgleichung: k = a * k * (1-k) # Aufgelöst nach a: # k = a * k * (1-k) # 1 = a * (1-k) # 1 / (1-k) = a |Aufgelöst nach a = alpha # Aufgelöst nach k: # 1 / (1-k) = a | *(1-k) # 1 = a * (1-k) | :a # 1 / a = 1 - k | +k # k + 1 / a = 1 | - (1 / a) # k = 1 - (1 / a) |Aufgelöst nach k # Damit gilt: # Für alle a ≤ 1 die Krankheit stirbt aus. # Für alle a > 1 die Krankheit bleibt erhalten. import numpy as np import matplotlib.pyplot as plt alphaList = np.array([0.25, 0.5, 0.75, 1.00, 1.25, 1.50, 1.75, 2.00, 2.25, 2.50, 2.75, 3.00]) # alpha anziehend alphaList = np.append(alphaList, [3.25, 3.5, 3.75, 4.0]) # alpha abstossend k = np.arange(0.00, 4.00, pow(10, -2)) # x-Werte for currentAlpha in alphaList: y = fixpunkt(currentAlpha) plt.title('Alpha: ' + str(currentAlpha)) plt.xlabel('alpha-Werte') plt.ylabel('y-Werte der Iterationsformel') plt.plot(y) plt.grid() plt.show() def fixpunkt(alpha): print('Alpha:', alpha) k = 0.1 F = lambda x: alpha * x * (1 - x) y = np.array([]) for j in range(100): y = np.append(y, k) k = F(k) # y-Werte, Fixpunktgleichung: k = a * k * (1-k) print(y) return y