Função especial de rede de derivadas
A Wolfram Language contém mais de 300 funções matemáticas integradas. Considere a operação de diferenciação aplicada a cada uma destas funções. Na maioria dos casos, uma ou mais novas funções aparecem nas derivadas resultantes. A quantificação das conexões resulta em um estudo interessante sobre a relação entre os símbolos e operações sobre elas. Em particular, o exemplo a seguir deriva da rede que surge da diferenciação de ordem inferior.
Conforme aprendido em cálculo elementar, diferenciar o logaritmo natural resulta uma função inversa.

D[Log[x], x]

Por outro lado, para algumas funções, uma derivada pode ser expressa diretamente através da função original.

D[ProductLog[x], x]

A propriedade "LowOrderDerivatives" de MathematicalFunctionData oferece acesso rápido e conveniente a todas as derivadas.

Entity["MathematicalFunction", "EllipticF"][
EntityProperty["MathematicalFunction",
"LowOrderDerivatives"]] // TraditionalForm

Colete todas as funções e seus padrões de argumento para identificar a função após a diferenciação. (Para evitar ocorrências comuns de potências, não busque pela potência nem a função de raiz quadrada.) Por exemplo, com base na identidade , a função Sec envolve as funções Tan assim como a ela mesma, resultando em duas conexões.

makeConnection[Entity["MathematicalFunction", "Sec"] ,
Function[{x}, Inactivate[D[Sec[x], x] == Sec[x] Tan[x]]]]

Analise todas as derivadas, elimine todas as reincidências nos gráficos resultantes e visualize a estrutura gráfica resultante.

Conte o número de conexões.

Flatten[allConnections, 1] // Length

Ache as reincidências.

selfLoops =
Select[ConnectedComponents[
Graph[Flatten[allConnections /. DirectedEdge -> UndirectedEdge,
1][[All, 1]]]], Length[#] == 1 &]

Encontre os grupos de funções que são fechados sob diferenciação e visualize como gráficos legendados.

A maioria das funções são parte do componente gigante do gráfico. Passe o mouse sobre os vértices para ver as funções e sobre as bordas para ver as derivadas que conectam as funções.

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]

Dividir o gráfico em comunidades mostra funções elípticas, funções hipergeométrica, funções de janela, funções zeta, e mais alguns grupos de funções.

CommunityGraphPlot[grf,
FindGraphCommunities[grf, Method -> "Modularity"]]
