Transfer Function Poles and Zeros Calculator

Find the poles and zeros of a 2nd-order transfer function, with a left-half-plane stability verdict and a plotted pole-zero map.

🎯 Transfer Function Poles and Zeros Calculator
b₂
b₁
b₀
a₂
a₁
a₀
Stability
Zeros
Poles
Step-by-step working

🎯 What are Transfer Function Poles and Zeros?

A transfer function's poles and zeros are the values of the complex variable s where its denominator or numerator, respectively, equal zero. For G(s) = N(s)/D(s), poles are the roots of D(s) = 0 and zeros are the roots of N(s) = 0. Poles determine a system's natural (unforced) response and, critically, its stability: a linear time-invariant system is stable if and only if every pole has a strictly negative real part, placing it in the left half of the complex s-plane.

Control engineers use pole-zero analysis constantly when designing and evaluating feedback systems. A controller designer checks a closed-loop transfer function's poles after adding a compensator to confirm the loop is still stable, and to see how much the poles moved compared to the open-loop system. A filter designer places zeros deliberately to cancel out unwanted poles or to shape a frequency response. Anyone debugging an oscillating or diverging control loop starts by finding the poles, since their real parts directly explain whether the system decays, oscillates forever, or blows up.

A common misconception is that zeros affect stability the same way poles do. They do not: stability depends entirely on the poles (the denominator's roots). Zeros shape the transient response, things like overshoot or an initial undershoot, but a system is exactly as stable or unstable as its poles say, regardless of where its zeros sit, even a zero in the right-half plane (a so-called non-minimum-phase zero) does not by itself make the closed-loop system unstable.

This calculator takes the six coefficients of a general 2nd-order transfer function, computes its poles and zeros using the quadratic formula (handling both real and complex-conjugate cases), states a clear stability verdict, and plots every pole and zero on a pole-zero map so you can see their position relative to the imaginary-axis stability boundary at a glance.

📐 Formula

G(s) = (b2s² + b1s + b0) / (a2s² + a1s + a0)
Zeros solve b2s² + b1s + b0 = 0. Poles solve a2s² + a1s + a0 = 0.
For a quadratic as²+bs+c = 0, if b² ≥ 4ac the roots are real: s = (−b ± √(b²−4ac)) / (2a)
If b² < 4ac the roots are a complex-conjugate pair: Re(s) = −b/(2a), Im(s) = ±√(4ac−b²) / (2a)
Example: D(s) = s² + 4s + 13 → discriminant = 16 − 52 = −36 → poles = −2 ± 3j (stable, negative real part).

📖 How to Use This Calculator

Steps

1
Enter the numerator coefficients. Type the coefficients b2, b1, and b0 for the numerator N(s) = b2*s^2 + b1*s + b0.
2
Enter the denominator coefficients. Type the coefficients a2, a1, and a0 for the denominator D(s) = a2*s^2 + a1*s + a0.
3
Read the poles, zeros, and stability verdict. See the computed zeros, poles, a stable/unstable verdict, and a pole-zero map on the complex s-plane.

💡 Example Calculations

Example 1 — Real Zeros, Complex Stable Poles

N(s) = s² + 3s + 2, D(s) = s² + 4s + 13

1
Zeros: discriminant = 3² − 4(1)(2) = 1 ≥ 0, so s = (−3 ± 1)/2 = −1, −2 (real)
2
Poles: discriminant = 4² − 4(1)(13) = −36 < 0, so Re = −4/2 = −2, Im = √36/2 = ±3 → −2 ± 3j
3
All poles have negative real part (−2), so the system is stable
Zeros = −1, −2, Poles = −2 ± 3j, verdict = Stable
Try this example →

Example 2 — Complex Zeros, Real Stable Poles

N(s) = s² + 2s + 5, D(s) = s² + 5s + 6

1
Zeros: discriminant = 2² − 4(1)(5) = −16 < 0, so Re = −2/2 = −1, Im = √16/2 = ±2 → −1 ± 2j
2
Poles: discriminant = 5² − 4(1)(6) = 1 ≥ 0, so s = (−5 ± 1)/2 = −2, −3 (real)
3
Both poles are negative (−2 and −3), so the system is stable
Zeros = −1 ± 2j, Poles = −2, −3, verdict = Stable
Try this example →

Example 3 — Unstable System (Right-Half-Plane Poles)

N(s) = s² + 4, D(s) = s² − 2s + 5

1
Zeros: discriminant = 0² − 4(1)(4) = −16 < 0, so Re = 0/2 = 0, Im = √16/2 = ±2 → 0 ± 2j (on the imaginary axis)
2
Poles: discriminant = (−2)² − 4(1)(5) = −16 < 0, so Re = 2/2 = 1, Im = √16/2 = ±2 → 1 ± 2j
3
Both poles have a positive real part (+1), placing them in the right-half plane, so the system is unstable
Zeros = 0 ± 2j, Poles = 1 ± 2j, verdict = Unstable
Try this example →

❓ Frequently Asked Questions

What are poles and zeros of a transfer function?+
Poles are the values of s that make the denominator D(s) of a transfer function G(s) = N(s)/D(s) equal to zero, and zeros are the values of s that make the numerator N(s) equal to zero. Poles determine a system's stability and natural response; zeros shape the transient response.
How do you find the poles of a transfer function?+
Set the denominator equal to zero and solve. For a 2nd-order denominator a2*s^2 + a1*s + a0, use the quadratic formula: s = (-a1 plus-or-minus sqrt(a1^2 - 4*a2*a0)) / (2*a2). If the discriminant is negative, the poles are a complex-conjugate pair.
What determines if a system is stable from its poles?+
A linear time-invariant system is stable if and only if every pole has a strictly negative real part, meaning all poles sit in the left half of the complex s-plane. Even one pole with a zero or positive real part makes the system marginally stable or unstable.
What happens when a pole has a positive real part?+
A pole with a positive real part means that mode of the system's response grows without bound over time (an exponentially increasing term in the time-domain solution), making the overall system unstable regardless of what any other pole or zero does.
What does a pole on the imaginary axis mean?+
A pole with exactly zero real part (sitting on the imaginary axis) produces a response that oscillates forever at constant amplitude, neither decaying nor growing. This is called marginally stable, a boundary case between stable and unstable.
Do zeros affect the stability of a system?+
No. Stability is determined entirely by the poles (the denominator's roots). Zeros (the numerator's roots) only shape the transient response, such as overshoot or undershoot, they never determine whether a linear time-invariant system is stable or unstable.
Why do complex poles always appear in conjugate pairs?+
For a transfer function with real-valued coefficients, complex roots of a polynomial always occur in conjugate pairs (a+bj and a-bj together). This is a direct consequence of the quadratic formula applied to real coefficients, and it guarantees the system's time-domain response stays real-valued.
What is the difference between a pole-zero map and a Bode plot?+
A pole-zero map plots the locations of a transfer function's poles and zeros as points on the complex s-plane, showing stability and qualitative response shape at a glance. A Bode plot instead shows magnitude and phase versus frequency along the imaginary axis, a different (though related) view of the same system.
What order transfer function does this calculator support?+
This calculator handles a general 2nd-order transfer function, with up to two poles and two zeros. Setting the leading coefficient (a2 or b2) to zero drops that polynomial to 1st order, giving a single real pole or zero instead of a pair.
Can a transfer function have more zeros than poles?+
Not for a physically realizable (proper) system. A proper transfer function has at most as many zeros as poles. This calculator does not enforce that restriction directly since it is scoped to a fixed 2nd-over-2nd order structure, but entering a lower-order numerator than denominator always keeps the function proper.

What are poles and zeros of a transfer function?

Poles are the values of s that make the denominator D(s) of a transfer function G(s) = N(s)/D(s) equal to zero, and zeros are the values of s that make the numerator N(s) equal to zero. Poles determine a system's stability and natural response; zeros shape the transient response.

How do you find the poles of a transfer function?

Set the denominator equal to zero and solve. For a 2nd-order denominator a2*s^2 + a1*s + a0, use the quadratic formula: s = (-a1 plus-or-minus sqrt(a1^2 - 4*a2*a0)) / (2*a2). If the discriminant is negative, the poles are a complex-conjugate pair.

What determines if a system is stable from its poles?

A linear time-invariant system is stable if and only if every pole has a strictly negative real part, meaning all poles sit in the left half of the complex s-plane. Even one pole with a zero or positive real part makes the system marginally stable or unstable.

What happens when a pole has a positive real part?

A pole with a positive real part means that mode of the system's response grows without bound over time (an exponentially increasing term in the time-domain solution), making the overall system unstable regardless of what any other pole or zero does.

What does a pole on the imaginary axis mean?

A pole with exactly zero real part (sitting on the imaginary axis) produces a response that oscillates forever at constant amplitude, neither decaying nor growing. This is called marginally stable, a boundary case between stable and unstable.

Do zeros affect the stability of a system?

No. Stability is determined entirely by the poles (the denominator's roots). Zeros (the numerator's roots) only shape the transient response, such as overshoot or undershoot, they never determine whether a linear time-invariant system is stable or unstable.

Why do complex poles always appear in conjugate pairs?

For a transfer function with real-valued coefficients, complex roots of a polynomial always occur in conjugate pairs (a+bj and a-bj together). This is a direct consequence of the quadratic formula applied to real coefficients, and it guarantees the system's time-domain response stays real-valued.

What is the difference between a pole-zero map and a Bode plot?

A pole-zero map plots the locations of a transfer function's poles and zeros as points on the complex s-plane, showing stability and qualitative response shape at a glance. A Bode plot instead shows magnitude and phase versus frequency along the imaginary axis, a different (though related) view of the same system.

What order transfer function does this calculator support?

This calculator handles a general 2nd-order transfer function, with up to two poles and two zeros. Setting the leading coefficient (a2 or b2) to zero drops that polynomial to 1st order, giving a single real pole or zero instead of a pair.

Can a transfer function have more zeros than poles?

Not for a physically realizable (proper) system. A proper transfer function has at most as many zeros as poles. This calculator does not enforce that restriction directly since it is scoped to a fixed 2nd-over-2nd order structure, but entering a lower-order numerator than denominator always keeps the function proper.