Seite 1 von 1
Differenzenquotient, Umsetzung mit Fehler
Verfasst: Mittwoch 24. März 2021, 13:30
von Intregral
Hallo,
analog zu diesem
Video https://www.youtube.com/watch?v=XJuSMzgHdNU wollte ich ein Script zum Differenzenquotient ausprobieren.
Leidiges Thema: Python 2 vs. Python 3.
Der Code ist aus dem Video:
Code: Alles auswählen
def f(x):
return (2*x**0,5)
def quotient(x,x0):
return ((f(x)-f(x0))/(x-x0))
for x in range (100,200):
print(quotient(x/100.0),2)
Bekomme aber immer den Fehler:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-21-d50cf41a071b> in <module>
8
9 for x in range (100,200):
---> 10 print(quotient(x/100.0),a)
11
12
TypeError: quotient() missing 1 required positional argument: 'x0'
So wie ich das sehe fehlt der Funktion
Quotient das zweite Argument. Ich weiß aber nicht wie ich den Fehler beheben kann, ich übergebe da ja zwei Werte...

Re: Differenzenquotient, Umsetzung mit Fehler
Verfasst: Mittwoch 24. März 2021, 14:06
von Sirius3
Nein, Du übergibst nur ein Argument. An `print` übergibst Du zwei Argumente.
`f` gibt ein Tuple zurück; das kann man nicht von einem anderen Tuple abziehen. Kommazahlen schreibt man mit Punkt.
Re: Differenzenquotient, Umsetzung mit Fehler
Verfasst: Mittwoch 24. März 2021, 15:57
von __blackjack__
Oder anders ausgedrückt: hat nichts mit Python 2 vs. 3 zu tun.
``return`` ist übrigens keine Funktion, die Klammern um das ”Argument” was keines ist, gehören da nicht hin.
Re: Differenzenquotient, Umsetzung mit Fehler
Verfasst: Donnerstag 25. März 2021, 08:36
von Intregral
Also da kann ich nicht ganz folgen.
Das Script läuft unter der Version 2.7.6. ja korrekt (wie im Video zu sehen). Ok, die "0,5" ist mein Tippfehler.
Die Funktion Quotient ist doch eine Funktion mit zwei Parametern, x und x0.
Da sollen ja zwei Parameter übergeben werden: x/100 und 2.
BTW das Programm ist nicht von mir, ich versuche das nur unter Python 3 zum Laufen zu bringen (und zu verstehen natürlich..)
Bin offen für Vorschläge...

Re: Differenzenquotient, Umsetzung mit Fehler
Verfasst: Donnerstag 25. März 2021, 09:15
von Sirius3
Was es zu Deinem Problem zu sagen gibt, habe ich schon gesagt. Schau Dir den Aufruf nochmal genau an.
Re: Differenzenquotient, Umsetzung mit Fehler
Verfasst: Donnerstag 25. März 2021, 09:21
von Dennis89
Hallo,
ist hier nicht nur eine Klammer falsch gesetzt?
Grüße
Dennis
Re: Differenzenquotient, Umsetzung mit Fehler
Verfasst: Donnerstag 25. März 2021, 09:39
von Sirius3
@Dennis89: damit hast du Intregal ja den Lerneffekt angenommen.
Re: Differenzenquotient, Umsetzung mit Fehler
Verfasst: Donnerstag 25. März 2021, 09:54
von Dennis89
Oh Entschuldigung, daran habe ich gerade nicht gedacht.
Eventuell kann jemand meinen Beitrag kurz löschen, vielleicht hat er es noch nicht gesehen.
Grüße
Dennis
Re: Differenzenquotient, Umsetzung mit Fehler
Verfasst: Donnerstag 25. März 2021, 20:07
von Intregral
Ok ok ich brauch eine Brille.
Das mit dem Punkt und Komma ist aber echt gemein, na ja dafür haben wird das metrische System.
Hab es raus:
Code: Alles auswählen
# Ableitung an der Stelle x per Differenzenquotient berechnen lassen
#Funktion f(x)=sqrt(2x)
def f(x):
return ((2*x)**0.5)
#Differenzenquotient
def quotient(x,x0):
return ((f(x)-f(x0))/(x-x0))
#Ausgabe
for x in range (100,200):
print(quotient(x/100.0,2))
Danke für die Denkanstöße.

Re: Differenzenquotient, Umsetzung mit Fehler
Verfasst: Donnerstag 25. März 2021, 20:13
von einfachTobi
Ignorierst du den Ratschlag von __blackjack__ bezüglich des `return` absichtlich oder versehentlich?
Re: Differenzenquotient, Umsetzung mit Fehler
Verfasst: Donnerstag 25. März 2021, 20:15
von Sirius3
Jetzt sind nur noch zu viele Klammern im Code:
Code: Alles auswählen
def quotient(f, x, x0):
return (f(x) - f(x0)) / (x - x0)
def f(x):
return (2 * x) ** 0.5
for x in range(100, 200):
print(quotient(f, x / 100.0, 2))
Re: Differenzenquotient, Umsetzung mit Fehler
Verfasst: Dienstag 30. März 2021, 16:04
von Intregral
einfachTobi hat geschrieben: Donnerstag 25. März 2021, 20:13
Ignorierst du den Ratschlag von __blackjack__ bezüglich des `return` absichtlich oder versehentlich?
Ups hab ich in der Euphorie übersehen.
