# Flow graph (mathematics)

A flow graph is a form of digraph associated with a set of linear algebraic or differential equations:
    "A signal flow graph is a network of nodes (or points) interconnected by directed branches, representing a set of linear algebraic equations. The nodes in a flow graph are used to represent the variables, or parameters, and the connecting branches represent the coefficients relating these variables to one another. The flow graph is associated with a number of simple rules which enable every possible solution [related to the equations] to be obtained."
Although this definition uses the terms "signal-flow graph" and "flow graph" interchangeably, the term "signal-flow graph" is most often used to designate the Mason signal-flow graph, Mason being the originator of this terminology in his work on electrical networks. Likewise, some authors use the term "flow graph" to refer strictly to the Coates flow graph. According to Henley & Williams:
    "The nomenclature is far from standardized, and...no standardization can be expected in the foreseeable future."
A designation "flow graph" that includes both the Mason graph and the Coates graph, and a variety of other forms of such graphs appears useful, and agrees with Abrahams and Coverley's and with Henley and Williams' approach.
A directed network – also known as a flow network – is a particular type of flow graph. A network is a graph with real numbers associated with each of its edges, and if the graph is a digraph, the result is a directed network. A flow graph is more general than a directed network, in that the edges may be associated with gains, branch gains or transmittances, or even functions of the Laplace operator s, in which case they are called transfer functions.
There is a close relationship between graphs and matrices and between digraphs and matrices. "The algebraic theory of matrices can be brought to bear on graph theory to obtain results elegantly", and conversely, graph-theoretic approaches based upon flow graphs are used for the solution of linear algebraic equations.

## Deriving a flow graph from equations

An example of a flow graph connected to some starting equations is presented.
The set of equations should be consistent and linearly independent. An example of such a set is:
    ${\begin{bmatrix}1&2&0\\0&1&1\\5&-1&-1\end{bmatrix}}{\begin{bmatrix}x_{1}\\x_{2}\\x_{3}\end{bmatrix}}={\begin{bmatrix}5\\5\\0\end{bmatrix}}$
Consistency and independence of the equations in the set is established because the determinant of coefficients is non-zero, so a solution can be found using Cramer's rule.
Using the examples from the subsection Elements of signal-flow graphs, we construct the graph In the figure, a signal-flow graph in this case. To check that the graph does represent the equations given, go to node x$_1$. Look at the arrows incoming to this node (colored green for emphasis) and the weights attached to them. The equation for x$_1$ is satisfied by equating it to the sum of the nodes attached to the incoming arrows multiplied by the weights attached to these arrows. Likewise, the red arrows and their weights provide the equation for x$_2$, and the blue arrows for x$_3$.
Another example is the general case of three simultaneous equations with unspecified coefficients:
    ${\begin{bmatrix}c_{11}&c_{12}&c_{13}\\c_{21}&c_{22}&c_{23}\\c_{31}&c_{32}&c_{33}\end{bmatrix}}{\begin{bmatrix}x_{1}\\x_{2}\\x_{3}\end{bmatrix}}={\begin{bmatrix}y_{1}\\y_{2}\\y_{3}\end{bmatrix}}$
To set up the flow graph, the equations are recast so each identifies a single variable by adding it to each side. For example:
    $\left(c_{11}+1\right)x_{1}+c_{12}x_{2}+c_{13}x_{3}-y_{1}=x_{1}\ .$
Using the diagram and summing the incident branches into x$_1$ this equation is seen to be satisfied.
As all three variables enter these recast equations in a symmetrical fashion, the symmetry is retained in the graph by placing each variable at the corner of an equilateral triangle. Rotating the figure 120° simply permutes the indices. This construction can be extended to more variables by placing the node for each variable at the vertex of a regular polygon with as many vertices as there are variables.
Of course, to be meaningful the coefficients are restricted to values such that the equations are independent and consistent.