A quadratic equation is a second-order polynomial equation in a single variable x. The general form is ax² + bx + c = 0, where a is not equal to zero. Solving these equations is a fundamental skill in algebra, physics, and engineering.
The Quadratic Formula
x = [-b ± √(b² – 4ac)] / 2a
How the Math Calculator Works
This math calculator app uses the Discriminant method to identify the nature of the roots:
The Discriminant (D = b² – 4ac): This value determines how many solutions exist.
If D > 0: There are two distinct real roots. The parabola crosses the x-axis twice.
If D = 0: There is exactly one real root (a repeated root). The vertex of the parabola touches the x-axis.
If D < 0: There are two complex (imaginary) roots. The parabola never touches the x-axis.
Step-by-Step Example
Let's solve the equation: x² + 5x + 6 = 0
Identify coefficients: a = 1, b = 5, c = 6.
Calculate the discriminant: D = 5² – 4(1)(6) = 25 – 24 = 1.
Since D > 0, calculate the two roots:
x₁ = (-5 + √1) / (2 * 1) = (-5 + 1) / 2 = -2
x₂ = (-5 – √1) / (2 * 1) = (-5 – 1) / 2 = -3
Pro Tip for Students
Always check the value of "a". If "a" is zero, the equation becomes linear (bx + c = 0), and the quadratic formula no longer applies! Our calculator handles this edge case to ensure accuracy in your homework and projects.
function solveQuadratic() {
var a = parseFloat(document.getElementById('coeff_a').value);
var b = parseFloat(document.getElementById('coeff_b').value);
var c = parseFloat(document.getElementById('coeff_c').value);
var resultBox = document.getElementById('math-result-box');
var discVal = document.getElementById('discriminant-val');
var rootsVal = document.getElementById('roots-val');
var stepsVal = document.getElementById('steps-val');
resultBox.style.display = 'block';
resultBox.style.backgroundColor = '#fff';
resultBox.style.border = '1px solid #ddd';
if (isNaN(a) || isNaN(b) || isNaN(c)) {
rootsVal.innerHTML = "Error: Please enter valid numbers.";
rootsVal.style.color = "#c0392b";
discVal.innerHTML = "";
stepsVal.innerHTML = "";
return;
}
if (a === 0) {
if (b !== 0) {
var linearRoot = -c / b;
rootsVal.innerHTML = "Linear Root: x = " + linearRoot.toFixed(4);
rootsVal.style.color = "#2c3e50";
discVal.innerHTML = "Note: This is a linear equation (a=0).";
stepsVal.innerHTML = "Calculation: x = -c / b";
} else {
rootsVal.innerHTML = "Invalid Equation";
rootsVal.style.color = "#c0392b";
discVal.innerHTML = "a and b cannot both be zero.";
stepsVal.innerHTML = "";
}
return;
}
var discriminant = (b * b) – (4 * a * c);
discVal.innerHTML = "Discriminant (Δ) = " + discriminant.toFixed(4);
rootsVal.style.color = "#2c3e50";
if (discriminant > 0) {
var x1 = (-b + Math.sqrt(discriminant)) / (2 * a);
var x2 = (-b – Math.sqrt(discriminant)) / (2 * a);
rootsVal.innerHTML = "x₁ = " + x1.toFixed(4) + "x₂ = " + x2.toFixed(4);
stepsVal.innerHTML = "The equation has two distinct real roots.";
resultBox.style.borderLeft = "5px solid #27ae60";
} else if (discriminant === 0) {
var x = -b / (2 * a);
rootsVal.innerHTML = "x = " + x.toFixed(4);
stepsVal.innerHTML = "The equation has one repeated real root.";
resultBox.style.borderLeft = "5px solid #2980b9";
} else {
var realPart = (-b / (2 * a)).toFixed(4);
var imagPart = (Math.sqrt(-discriminant) / (2 * a)).toFixed(4);
rootsVal.innerHTML = "x₁ = " + realPart + " + " + imagPart + "ix₂ = " + realPart + " – " + imagPart + "i";
stepsVal.innerHTML = "The equation has two complex (imaginary) roots.";
resultBox.style.borderLeft = "5px solid #8e44ad";
}
}