# Signal Flow Graph Mason Gain Rule Feedback Loop Solver

Solve control-system signal flow graphs with Mason's gain formula: forward paths, loops, non-touching combinations, Δ/Δk determinants and the exact transfer function.

> Canonical page: https://elysiatools.com/en/tools/signal-flow-graph-mason-gain-rule-feedback-loop-solver

- **Category:** Science & Education

- **Keywords:** mason gain formula, signal flow graph, transfer function, control system, feedback loop, forward path, non-touching loops, block diagram, sfg

## Overview

Enter edges as "from -> to = gain" (one per line). Gains may be numbers (0.5, -2), symbols (G1, H2) or products (2*G1, b1*z^-1); arithmetic stays exact via fractions. The solver enumerates forward paths and simple cycles, finds pairwise non-touching loop combinations, expands Δ = 1 − ΣL + ΣLL − …, computes each Δk, and returns T = Σ Pk·Δk / Δ as a symbolic ratio plus a numeric value when possible.

## Inputs

- **Edges (one per line): from -> to = gain** (textarea): R -> x1 = 1 x1 -> x2 = G1 x2 -> out = 1 x2 -> x1 = -H1
- **Input (source) node** (text): R
- **Output (sink) node** (text): out

## When to use

- Simplifying complex block diagrams converted into signal flow graphs with multiple nested feedback loops.
- Evaluating the symbolic transfer function T = Σ(Pk·Δk)/Δ for linear control systems coursework or design analysis.
- Validating exact rational transfer functions with numeric gain values to prevent calculation errors in manual determinant expansion.

## How it works

- Input your graph edges line by line using the format 'from -> to = gain', supporting numerical constants, symbols like G1, or expressions like b1*z^-1.
- Specify the input (source) node and output (sink) node to define the start and end boundaries of the transmission path.
- The solver enumerates forward paths (Pk), finds all simple feedback cycles (L), and groups mutually non-touching loops.
- It expands the system determinant Δ and path cofactors Δk, outputting the complete symbolic transfer function and exact rational numeric value.

## Use cases

- Analyzing multi-loop analog feedback amplifier networks and active filter signal flow graphs.
- Deriving transfer functions for digital filter topologies defined by delay blocks and discrete coefficient gains.
- Solving control engineering homework problems and verifying manual expansions of Mason's gain formula.

## Frequently asked questions

### What gain formats are supported in the edge list?

You can use numeric values (such as 2, -0.5), symbolic variables (such as G1, H2), and products (such as 2*G1 or b1*z^-1).

### How are non-touching loops evaluated in the determinant Δ?

The solver automatically identifies pairs and higher-order combinations of loops that share no common nodes and includes their products in the Δ expansion.

### Can this tool handle self-loops on a single node?

Yes, self-loops entered in the format 'node -> node = gain' are recognized and factored into loop gains and non-touching calculations.

### Does the solver provide numeric values as fractions or decimals?

For numeric inputs, calculations maintain exact fractional arithmetic and display both exact rational forms and decimal approximations.

### What happens if there are no non-touching loop pairs?

The system determinant Δ simplifies directly to 1 minus the sum of all individual loop gains (1 − ΣL).

## Related tools

- [Mendelian Punnett Square Calculator](https://elysiatools.com/en/tools/mendelian-punnett-square): Build a Punnett square for a Mendelian cross and auto-calculate genotype and phenotype ratios. Supports complete dominance, incomplete dominance (blending), codominance, and X-linked (sex-linked) inheritance — with each offspring cell's sex marked for X-linked crosses.
- [Ampère Force Calculator](https://elysiatools.com/en/tools/ampere-force-calculator): F = B·I·L·sinθ for a current-carrying wire, with unit selectors, the force magnitude, the 90° reference, and the right-hand-rule direction.
- [Coulomb Force Calculator](https://elysiatools.com/en/tools/coulomb-force-calculator): Coulomb's law F = k·|q₁q₂|/r² with signed charges and unit selectors, reporting the force magnitude and whether the pair attracts or repels.
- [Electric Potential Calculator](https://elysiatools.com/en/tools/electric-potential-calculator): V = k·Q/r with the sign preserved, plus the electron potential energy U = −e·V in eV — at the Bohr radius this reproduces 27.2114 V, twice hydrogen's ionization energy.
- [Electron Configuration Calculator](https://elysiatools.com/en/tools/electron-configuration-calculator): Look up electron configurations, shell distributions, valence electrons, and orbital diagrams by element symbol or atomic number
- [Faraday Induction EMF Calculator](https://elysiatools.com/en/tools/faraday-induction-emf): Faraday's law |ε| = N·ΔΦ/Δt with turns, flux, and time selectors, plus the Lenz's-law sign explained — one turn and one weber per second induce exactly one volt.
- [Malus's Law Polarization Calculator](https://elysiatools.com/en/tools/polarization-malus-law): I = I₀·cos²θ: transmitted intensity and percentage for any polarizer angle, with the 0°/45°/90° landmarks.
- [Raoult's Law Calculator](https://elysiatools.com/en/tools/raoult-law-calculator): p_i = x_i·p_i* for ideal solutions, with total pressure and vapour-phase composition for binary mixtures.

## Samples

- [Android Image Processing Java Samples](https://elysiatools.com/en/samples/android-image-processing-java): Android Java image processing examples including reading/saving images, scaling, and format conversion
- [Android Image Processing Kotlin Samples](https://elysiatools.com/en/samples/android-image-processing-kotlin): Android Kotlin image processing examples including reading/saving images, scaling, and format conversion
- [Web Image Processing Python Samples](https://elysiatools.com/en/samples/web-image-processing-python): Web Python image processing examples using PIL/Pillow including reading, saving, resizing, and format conversion
- [Web Image Processing Rust Samples](https://elysiatools.com/en/samples/web-image-processing-rust): Web Rust image processing examples including image read/save, scaling, and format conversion
