added A2.py
This commit is contained in:
parent
e0b2c57567
commit
2f141642f6
|
@ -0,0 +1,66 @@
|
|||
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
|
Loading…
Reference in New Issue