Ableitungsnetzwerk spezieller Funktionen
Die Wolfram Language enthält mehr als 300 eingebaute mathematische Funktionen. Jede einzelne von ihnen kann differenziert werden. In den meisten Fällen ergeben sich als daraus resultierende Ableitungen eine oder mehrere neue Funktionen. Die Quantifizierung dieser Verbidnungen ist eine interessante Untersuchung der Beziehung zwischen Symbolen und den mit ihnen ausgeführten Operationen. Im folgenden Beispiel wollen wir uns das Netzwerk, das aus Differenzierung niedriger Ordnung entsteht, näher ansehen.
Erinnert man sich an die Grundlagen der Infinitesimalrechnung, so ergibt sich aus der Differenzierung des natürlichen Logarithmus die Kehrwertfunktion.
D[Log[x], x]
Bei manchen Funktionen kann eine Ableitung auch direkt durch die ursprügliche Funktion ausgedrückt werden.
D[ProductLog[x], x]
Die "LowOrderDerivatives"-Eigenschaft von MathematicalFunctionData bietet schnellen und bequemen Zugang zu allen Ableitungen.
Entity["MathematicalFunction", "EllipticF"][
EntityProperty["MathematicalFunction",
"LowOrderDerivatives"]] // TraditionalForm
Sammeln Sie alle Funktionen und deren Argumente, um die Funktion nach der Differenzierung zu identifizieren. Um häufig vorkommende Potenzen zu vermeiden, lassen Sie die Potenz- und Quadratwurzelfunktion unbeachtet. Auf Basis der Identität ist die Funktion Sec zum Beispiel mit den Tan-Funktionen und mit sich selbst verknüpft, es ergeben sich somit zwei Zusammenhänge.
makeConnection[Entity["MathematicalFunction", "Sec"] ,
Function[{x}, Inactivate[D[Sec[x], x] == Sec[x] Tan[x]]]]
Analysieren Sie alle Ableitungen, eliminieren Sie alle trivialen Schleifen in den daraus resultierenden Graphen und visualisieren Sie die entstandene Graphenstruktur.
Zählen Sie die Anzahl der Zusammenhänge.
Flatten[allConnections, 1] // Length
Finden Sie die Schleifen.
selfLoops =
Select[ConnectedComponents[
Graph[Flatten[allConnections /. DirectedEdge -> UndirectedEdge,
1][[All, 1]]]], Length[#] == 1 &]
Dies sind die Gruppen der Funktionen, die bezüglich die Differenzierung abgeschlossen sind und visualisieren Sie diese als beschriftete Graphen.
Die meisten Funktionen sind Teil der großen Graphenkomponente. Bewegen Sie die Maus über die Knoten, um die Funktionen zu sehen, und über die Kanten, um die Ableitungen zu sehen, die die Funktionen verbinden.
allConnectionsRest =
Select[Flatten[allConnections, 1],
FreeQ[#,
Alternatives @@
Flatten[{selfLoops, smallLoops}], \[Infinity]] &];
grf = Graph[allConnectionsRest[[All, 1]],
VertexLabels -> Placed["Name", Tooltip],
EdgeLabels -> ((#1 -> Tooltip[" ", Column[#2]]) & @@@
allConnectionsRest),
PerformanceGoal -> "Quality",
ImageSize -> Full]
Wenn Sie den Graphen in Gemeinschaften zerlegen, werden elliptische Funktionen, hypergeometrische Funktionen, Fensterfunktionen, Zeta-Funktionen und einige andere Funktionengruppen sichtbar.
CommunityGraphPlot[grf,
FindGraphCommunities[grf, Method -> "Modularity"]]