Skill: curve-sketching
Curve Sketching Calculator
Read a graph from its derivatives: f′ tells you where the curve climbs and falls, f″ tells you how it bends. Find critical points, classify them, locate inflection points, and sketch with confidence.
1 Curve analyzer
Enter a cubic f(x) = ax3 + bx2 + cx + d
(a ≠ 0) and get its critical points, classification, inflection point, and intervals of increase/decrease and concavity.
Steps
Enter coefficients and press Analyze.
2 Reading the output
- Critical points come from f′(x) = 0; each is labeled max, min, or neither.
- Increasing/decreasing intervals come from the sign of f′ between critical points.
- Concavity flips at the inflection point, where f′′ changes sign.
(function(){ function $(id){ return document.getElementById(id); } function num(id){ var v = parseFloat($(id).value); return isNaN(v) ? 0 : v; } function iv(pair){ function e(v){ return (v === '-inf' ? '(\u2212\u221e' : (v === 'inf' ? '\u221e)' : v)); } return e(pair[0]) + ', ' + e(pair[1]); } $('tGo').addEventListener('click', function(){ var a = num('tA'), b = num('tB'), c = num('tC'), d = num('tD'); if (a === 0){ $('tSteps').innerHTML = '
Steps
a must be nonzero for a cubic.
'; return; } var R = TOOL_API.analyze(a, b, c, d); var steps = TOOL_API.describe(a, b, c, d); var h = '
Steps
- ';
for (var i = 0; i < steps.length; i++) h += '
- ' + steps[i] + '
'; $('tSteps').innerHTML = h + '
'; function r3(v){ return Math.round(v * 1000) / 1000; } var rh = '
'; rh += '
Critical points: ';
if (R.criticals.length === 0) rh += 'none';
else {
var cs = [];
for (var j = 0; j < R.criticals.length; j++) cs.push('x = ' + r3(R.criticals[j].x) + ' (' + R.criticals[j].type + ')');
rh += cs.join('; ');
}
rh += '
Increasing: ' + (R.increasing.length ? R.increasing.map(iv).join(' \u222a ') : 'never');
rh += '
Decreasing: ' + (R.decreasing.length ? R.decreasing.map(iv).join(' \u222a ') : 'never');
rh += '
Inflection at x = ' + r3(R.inflection);
rh += '
Concave up: ' + R.concaveUp.map(iv).join(' \u222a ');
rh += '
Concave down: ' + R.concaveDown.map(iv).join(' \u222a ') + '
'; $('tResult').style.display = ''; $('tResult').innerHTML = rh; }); })();