Seite 1 von 1

Automatische/Numerische Ableitung bestimmen.

Verfasst: Freitag 4. Dezember 2020, 08:57
von BerndNeumann
Hallo zusammen,

ich bin relativer Neulingion Python, jedoch im Rahmen eines Projekts direkt schon auf ein Problem gestoßen.
Ich möchte mittels einer function (def) einer Variablen die partielle Ableitung einer Funktion f(x) nach einer weiteren Variablen zuweisen.
Hier interessiert mich nur das numerische Ergebnis. Symbolisch Ableiten ist nicht gewünscht.

In der uncertainties Bibliothek habe ich bereits das gefuden, wonach ich suche, bis auf eine kleine Ausnahme.
Die Variablen der Funktion f(x) müssen als Wert + Unsicherheitsbetrag definiert werden (ufloat).
Hier der Code:

Code: Alles auswählen

import uncertainties
from uncertainties import ufloat 

u=ufloat(1,0.1)
v=ufloat(10,0.1)

function=3*u*2*v
a=function.derivatives[u]
b=function.derivatives[v]

print(a)
print(b)

Gibt es eine Möglichkeit so partiell Abzuleiten, ohne die Variable als "ufloat" zu definieren, also nur als int oder float. Einen Blick in den Code der Bibliothek uncertainties hat leider nichts gebracht, da meine Erfahrung zu gering ist, um zu analysieren, was ich ändern sollte.

Hat jemand einen Ansatz oder kann mir eine Bibliothek zum automatischen, numerischen Ableiten empfehlen?


Viele Grüße

Re: Automatische/Numerische Ableitung bestimmen.

Verfasst: Freitag 4. Dezember 2020, 09:18
von DeaD_EyE
Ich glaube, die Frage hast du auch bei python-forum.io gestellt.
Zumindest lese ich zum zweiten Mal etwas über dieses Modul uncertainties.
Gibt es eine Möglichkeit so partiell Abzuleiten, ohne die Variable als "ufloat" zu definieren, also nur als int oder float.
Nein, das geht nicht, da es eigene Datentypen sind, die zusätzliche Methoden anbieten.
Nachdem du die Objekte erstellst hast, kannst du doch mit ihnen rechnen.
Da der Datentyp auch alle Operatoren unterstützt, kannst du mit ihnen arbeiten, als wenn es floats oder ints wären.

Das ist so ähnlich wie bei decimal.Decimal.
Naja, noch ein cooles Paket, falls du auf Einheiten stehst: https://pint.readthedocs.io/en/stable/

Das ist so ähnlich wie uncertainties, nur mit Einheiten.

Re: Automatische/Numerische Ableitung bestimmen.

Verfasst: Freitag 4. Dezember 2020, 09:54
von __deets__
Warum willst du auf ufloat verzichten? Dessen Hauptaufgabe besteht darin, API zur Definition der abzuleitenden Funktion zu sein. Also das du sie so kompakt hinschreiben kannst. Das Erlauben die normalen floats nun mal nicht.