Nachdem ich mich durch einige Seiten gelesen habe, aber leider nicht auf die Lösung für mein Problem komme, versuche ich es hier.
Ich habe schon herausgefunden, das "TypeError: 'tuple' object is not callable" auftritt, wenn ein Komma fehlt. In meinem Fall weiß ich aber nicht, wo so eines hin müsste.
Zur Aufgabe:
Wir sollten eine Methode eval_discrete() schreiben, die eine reelle Funktion an n äquidistanten Stellen im Intervall auswertet. Diese sieht bei mir wie folgt aus:
Code: Alles auswählen
def eval_discrete(n, intervall, fkt):
# x-werte ist die Liste der Stützstellen
x_werte = np.linspace(intervall[0], intervall[-1], n)
#Funktionswerte an gegebenen Stützstellen
fx_werte = fkt(x_werte)
return x_werte, fx_werte
Code: Alles auswählen
# für f(x)
# n ist Anzahl der äquidistant verteilten Stellen
n = 50
# 𝐼𝑓=[−2,2] ist Intervall, auf dem f geplottet werden soll
I_f = [-2, 2]
fkt = fkt_f
plotFunk(I_f, eval_discrete(n, I_f, fkt))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-4-4a48ffbba8fb> in <module>
7
8
----> 9 plotFunk(I_f, eval_discrete(n, I_f, fkt))
<ipython-input-2-61902a5bb560> in plotFunk(intervall, fkt, plotPoints, show)
5 x = np.linspace(intervall[0], intervall[1], plotPoints)
6 # Berechnung der Funktionswerte an diesen diskreten Punkten
----> 7 fx = fkt(x)
8
9 plt.plot(x, fx)
TypeError: 'tuple' object is not callable
Könnte mir bitte jemand sagen wo mein Fehler liegt?
Hier auch noch meine Plotfunktion, da es ja anscheinend hier hakt.
Code: Alles auswählen
def plotFunk(intervall, fkt=fkt_f, plotPoints=300, show=True):
# Diskretisierung des Intervalls auf dem geplottet werden soll
x = np.linspace(intervall[0], intervall[1], plotPoints)
# Berechnung der Funktionswerte an diesen diskreten Punkten
fx = fkt(x)
plt.plot(x, fx)
# Nullfunktion einzeichnen
plt.plot([x[0], x[-1]], np.zeros(2))
plt.title('Graph der Funktion auf ' + str(intervall))
if intervall == [-2,2]:
plt.xlabel('x')
plt.ylabel('fx')
else:
plt.xlabel('x')
plt.ylabel('gx')
if show:
plt.show()
plotFunk([-2, 2], fkt_f)