The specific rate constant for the reaction temperature
Calculation Results
Calculated Reaction Rate:
Rate Equation Used:
Total Reaction Order:
Understanding Rate Laws in Chemical Kinetics
The rate law is a fundamental equation in chemistry that links the reaction rate with the concentrations or pressures of the reactants and constant parameters (normally rate coefficients and partial reaction orders). Unlike stoichiometry, the rate law can usually only be determined experimentally.
Rate = k [A]m [B]n
Where:
Rate is the speed of the reaction (usually M/s or mol/(L·s)).
k is the rate constant, which depends on temperature and the specific reaction.
[A] and [B] are the molar concentrations of the reactants.
m and n are the partial reaction orders (typically integers like 0, 1, or 2, but can be fractions).
Reaction Orders Explained
The exponents m and n determine how sensitive the reaction rate is to changes in concentration.
Order
Description
Effect on Rate
Zero Order (0)
Rate is independent of concentration.
Doubling concentration has no effect on rate.
First Order (1)
Rate is directly proportional to concentration.
Doubling concentration doubles the rate.
Second Order (2)
Rate is proportional to the square of concentration.
Doubling concentration quadruples (x4) the rate.
The Rate Constant (k)
The units of the rate constant k change depending on the overall order of the reaction. The overall order is the sum of the exponents (m + n).
Zero Order: M/s (Molar per second)
First Order: 1/s (per second)
Second Order: 1/(M·s) (per Molar per second)
How to Use This Calculator
This tool allows you to predict the initial rate of a reaction if you know the kinetic parameters.
Input the Concentration of your reactants (usually in Molarity, mol/L).
Input the Reaction Order for each reactant. These are determined experimentally. If you only have one reactant (decomposition), you can set the concentration of Reactant B to 0 or its order to 0.
Enter the Rate Constant (k). Ensure the units of k match your concentration units to get a rate in M/s.
Click Calculate to obtain the reaction rate.
function calculateRateLaw() {
// 1. Get input values
var concA = document.getElementById('concA').value;
var orderA = document.getElementById('orderA').value;
var concB = document.getElementById('concB').value;
var orderB = document.getElementById('orderB').value;
var k = document.getElementById('rateK').value;
// 2. Validate essential inputs
if (concA === "" || orderA === "" || k === "") {
alert("Please enter values for Reactant A and the Rate Constant.");
return;
}
// 3. Parse floats
var valConcA = parseFloat(concA);
var valOrderA = parseFloat(orderA);
var valConcB = concB === "" ? 0 : parseFloat(concB); // Default to 0 if empty
var valOrderB = orderB === "" ? 0 : parseFloat(orderB); // Default to 0 if empty
var valK = parseFloat(k);
// 4. Logic Validation
if (isNaN(valConcA) || isNaN(valOrderA) || isNaN(valK)) {
alert("Please ensure all inputs are valid numbers.");
return;
}
if (valConcA < 0 || (valConcB < 0 && concB !== "")) {
alert("Concentrations cannot be negative.");
return;
}
// 5. Calculate Rate
// Formula: Rate = k * [A]^m * [B]^n
// If B is effectively unused (conc=0 or order=0), handle math correctly.
// Math.pow(0, 0) is 1 in JS, which is mathematically convenient here for ignoring terms.
var termA = Math.pow(valConcA, valOrderA);
var termB = 1;
// Only calculate term B if concentration is provided or order is non-zero
// If user left B blank, we treat it as not existing in the rate law (effectively * 1)
if (concB !== "") {
termB = Math.pow(valConcB, valOrderB);
} else {
// If B is empty, we assume the user only has 1 reactant.
// Reset valOrderB to 0 for display purposes
valOrderB = 0;
}
var rate = valK * termA * termB;
// 6. Formatting Equation String
var eqString = "Rate = " + valK + " × [" + valConcA + "]" + valOrderA + "";
if (concB !== "") {
eqString += " × [" + valConcB + "]" + valOrderB + "";
}
// 7. Calculate Total Order
var totalOrder = valOrderA + valOrderB;
// 8. Display Results
var resultBox = document.getElementById('resultBox');
var rateDisplay = document.getElementById('rateResult');
var equationDisplay = document.getElementById('equationDisplay');
var orderDisplay = document.getElementById('totalOrderResult');
// Scientific notation for very small or large numbers
if (rate 10000) {
rateDisplay.innerHTML = rate.toExponential(4) + " M/s";
} else {
rateDisplay.innerHTML = rate.toFixed(6) + " M/s";
}
equationDisplay.innerHTML = eqString;
orderDisplay.innerText = totalOrder;
resultBox.style.display = "block";
}