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.
![Click for copyable input](assets.de/special-function-derivative-network/In_274.png)
D[Log[x], x]
![](assets.de/special-function-derivative-network/O_185.png)
Bei manchen Funktionen kann eine Ableitung auch direkt durch die ursprügliche Funktion ausgedrückt werden.
![Click for copyable input](assets.de/special-function-derivative-network/In_275.png)
D[ProductLog[x], x]
![](assets.de/special-function-derivative-network/O_186.png)
Die "LowOrderDerivatives"-Eigenschaft von MathematicalFunctionData bietet schnellen und bequemen Zugang zu allen Ableitungen.
![Click for copyable input](assets.de/special-function-derivative-network/In_276.png)
Entity["MathematicalFunction", "EllipticF"][
EntityProperty["MathematicalFunction",
"LowOrderDerivatives"]] // TraditionalForm
![](assets.de/special-function-derivative-network/O_187.png)
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.
![Click for copyable input](assets.de/special-function-derivative-network/In_283.png)
makeConnection[Entity["MathematicalFunction", "Sec"] ,
Function[{x}, Inactivate[D[Sec[x], x] == Sec[x] Tan[x]]]]
![](assets.de/special-function-derivative-network/O_188.png)
Analysieren Sie alle Ableitungen, eliminieren Sie alle trivialen Schleifen in den daraus resultierenden Graphen und visualisieren Sie die entstandene Graphenstruktur.
![](assets.de/special-function-derivative-network/O_189.png)
Zählen Sie die Anzahl der Zusammenhänge.
![Click for copyable input](assets.de/special-function-derivative-network/In_286.png)
Flatten[allConnections, 1] // Length
![](assets.de/special-function-derivative-network/O_190.png)
Finden Sie die Schleifen.
![Click for copyable input](assets.de/special-function-derivative-network/In_287.png)
selfLoops =
Select[ConnectedComponents[
Graph[Flatten[allConnections /. DirectedEdge -> UndirectedEdge,
1][[All, 1]]]], Length[#] == 1 &]
![](assets.de/special-function-derivative-network/O_191.png)
Dies sind die Gruppen der Funktionen, die bezüglich die Differenzierung abgeschlossen sind und visualisieren Sie diese als beschriftete Graphen.
![](assets.de/special-function-derivative-network/O_192.png)
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.
![Click for copyable input](assets.de/special-function-derivative-network/In_290.png)
allConnectionsRest =
Select[Flatten[allConnections, 1],
FreeQ[#,
Alternatives @@
Flatten[{selfLoops, smallLoops}], \[Infinity]] &];
![Click for copyable input](assets.de/special-function-derivative-network/In_291.png)
grf = Graph[allConnectionsRest[[All, 1]],
VertexLabels -> Placed["Name", Tooltip],
EdgeLabels -> ((#1 -> Tooltip[" ", Column[#2]]) & @@@
allConnectionsRest),
PerformanceGoal -> "Quality",
ImageSize -> Full]
![](assets.de/special-function-derivative-network/O_193.png)
Wenn Sie den Graphen in Gemeinschaften zerlegen, werden elliptische Funktionen, hypergeometrische Funktionen, Fensterfunktionen, Zeta-Funktionen und einige andere Funktionengruppen sichtbar.
![Click for copyable input](assets.de/special-function-derivative-network/In_292.png)
CommunityGraphPlot[grf,
FindGraphCommunities[grf, Method -> "Modularity"]]
![](assets.de/special-function-derivative-network/O_194.png)