Average Rate of Change Table Calculator

Average Rate of Change Table Calculator

The average rate of change of a function over an interval tells us how much the function's output changes, on average, for each unit of change in the input. For a function \(f(x)\), the average rate of change over the interval \([a, b]\) is calculated as: \[ \text{Average Rate of Change} = \frac{f(b) – f(a)}{b – a} \] This calculator helps you compute the average rate of change for a given function by inputting specific interval points.

function calculateAverageRateOfChange() { var functionString = document.getElementById("functionInput").value; var a = parseFloat(document.getElementById("startInterval").value); var b = parseFloat(document.getElementById("endInterval").value); var resultDiv = document.getElementById("result"); if (isNaN(a) || isNaN(b)) { resultDiv.innerHTML = "Error: Please enter valid numbers for the interval endpoints."; return; } if (a === b) { resultDiv.innerHTML = "Error: The start and end of the interval cannot be the same."; return; } if (!functionString) { resultDiv.innerHTML = "Error: Please enter a function."; return; } try { // Function to evaluate the user-provided function string // This is a simplified parser and might not handle all complex JS expressions. // For a robust solution, consider a dedicated math expression parser library. var evaluateFunction = function(x_val) { // Basic sanitization: replace 'x' with the value, handle basic operators // IMPORTANT: eval() is dangerous if input is not controlled. // In a real-world scenario, use a safer parsing method. var substitutedString = functionString.replace(/x/g, '(' + x_val + ')'); substitutedString = substitutedString.replace(/\^/g, '**'); // For exponentiation return eval(substitutedString); }; var fa = evaluateFunction(a); var fb = evaluateFunction(b); if (isNaN(fa) || isNaN(fb)) { resultDiv.innerHTML = "Error: Could not evaluate the function at the given interval points. Check your function and input values."; return; } var rateOfChange = (fb – fa) / (b – a); resultDiv.innerHTML = "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "
Intervalf(a)f(b)Change in x (b-a)Change in f(x) (f(b)-f(a))Average Rate of Change
[" + a + ", " + b + "]" + fa.toFixed(4) + "" + fb.toFixed(4) + "" + (b – a).toFixed(4) + "" + (fb – fa).toFixed(4) + "" + rateOfChange.toFixed(4) + "
"; } catch (error) { resultDiv.innerHTML = "Error evaluating function: " + error.message + ". Please check your function syntax."; } } .calculator-container { font-family: sans-serif; max-width: 600px; margin: 20px auto; padding: 20px; border: 1px solid #ccc; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); } .calculator-container h2 { text-align: center; margin-bottom: 15px; color: #333; } .calculator-container p { margin-bottom: 20px; color: #555; line-height: 1.6; } .calculator-inputs { display: flex; flex-wrap: wrap; gap: 15px; justify-content: center; margin-bottom: 20px; } .input-group { display: flex; flex-direction: column; min-width: 150px; flex: 1; } .input-group label { margin-bottom: 5px; font-weight: bold; color: #333; } .input-group input[type="text"] { padding: 8px; border: 1px solid #ccc; border-radius: 4px; font-size: 1em; } .calculator-inputs button { padding: 10px 20px; background-color: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 1em; transition: background-color 0.3s ease; } .calculator-inputs button:hover { background-color: #0056b3; } .calculator-result { margin-top: 20px; padding: 15px; background-color: #f8f9fa; border: 1px solid #e0e0e0; border-radius: 4px; overflow-x: auto; /* For tables that might be wide */ } .calculator-result table { width: 100%; border-collapse: collapse; text-align: center; } .calculator-result th, .calculator-result td { padding: 10px; border: 1px solid #ddd; } .calculator-result th { background-color: #e9ecef; font-weight: bold; } .calculator-result tr:nth-child(even) { background-color: #f2f2f2; }

Leave a Comment