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