LazyTools

🔒 Every tool runs in your browser, the files and values you enter are never uploaded to any server. How it works

⚗️ Chemical Equation Balancer

Enter an unbalanced equation and get exact, smallest-integer coefficients, computed from the reaction’s linear system, not guessed.

Balanced equation

2KMnO4+16HCl2KCl+2MnCl2+8H2O+5Cl2

2

KMnO4

16

HCl

2

KCl

2

MnCl2

8

H2O

5

Cl2

Exact integer coefficients from the reaction’s null-space (BigInt rational Gaussian elimination, no floating point). 🔒 Computed in your browser.

Rate this tool:
Anonymous, no account, no identifier

How the chemical equation balancer works

Each species is parsed into an element-count vector; these form a stoichiometric matrix (products negated). The tool solves the homogeneous system A·x = 0 by exact rational Gaussian elimination (BigInt fractions, no floating point) for the null-space vector, then scales it to the smallest positive integers via the LCM of denominators divided by the GCD. It detects reactions that cannot balance or are under-determined.

This is the flagship exact tool: balancing is an integer linear-algebra problem with one right answer, and it is precisely what chatbots get wrong, mis-applying coefficients on redox reactions like KMnO₄ + HCl. Here the coefficients are byte-exact.

Frequently asked questions

How do I balance a chemical equation?

Write it as reactants → products (e.g. “H2 + O2 -> H2O”). The tool converts each species to an element-count vector, solves the resulting linear system exactly, and returns the smallest whole-number coefficients. Here 2 H₂ + O₂ → 2 H₂O.

Can it balance redox equations?

Yes. Complex reactions like KMnO₄ + HCl → KCl + MnCl₂ + H₂O + Cl₂ balance to 2, 16, 2, 2, 8, 5, the exact null-space solution, which chatbots frequently get wrong.

How do I type an equation?

Use element symbols and subscripts as numbers (H2O, Fe2O3), separate species with +, and use -> or = between the two sides. Parentheses and hydrates are supported.

What if the equation can’t be balanced?

The tool tells you: either no solution exists (the elements don’t reconcile) or the system is under-determined (more than one independent balance), which usually means a species is missing or mistyped.

Why is this more reliable than a chatbot?

Balancing is exact integer linear algebra with a unique smallest-integer answer. This computes the null-space over exact fractions and scales to integers; a language model pattern-matches and regularly produces coefficients that don’t actually balance.

Are the coefficients always the smallest whole numbers?

Yes, the solution is divided by the greatest common divisor, so you get the simplest integer ratio.

Related chemistry tools

From the blog