|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/drsuper/CalculusMechanics/ |
Upload File : |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width,initial-scale=1" name="viewport"/>
<title>Adventure 13 – Activity 2 (Student)</title>
<!-- ✅ ADD CALCULATOR CSS HERE -->
<link rel="stylesheet" href="images/calc-popup.css">
<style>
body {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
margin: 0; padding: 0;
background: #f5f5fb; color: #222;
}
.page{
width:100%;
box-sizing:border-box;
padding:1.8rem 5vw 3rem;
background:#fff;
max-width:none;
margin:0 auto;
}
h1{margin:0.2rem 0 0.25rem; font-size:2rem;}
.subtitle{color:#555; margin:0 0 1.2rem; line-height:1.45;}
h2{margin-top:1.4rem; margin-bottom:0.4rem; font-size:1.25rem;}
p{margin:0.35rem 0 0.7rem; line-height:1.55;}
ul{margin-top:0.3rem; padding-left:1.2rem;}
li{margin:0.25rem 0;}
a{color:#1f4ed8; text-decoration:none;}
a:hover{text-decoration:underline;}
.card{border:1px solid #dde3ff; background:#f6f7ff; border-radius:14px; padding:1rem 1rem 0.95rem; margin-top:0.7rem;}
code{background:#fff; border:1px solid #d9def5; padding:2px 6px; border-radius:8px;}
.footer{margin-top:2.2rem; font-size:0.9rem; color:#777; text-align:left; border-top:1px solid #eee; padding-top:0.8rem;}
.two-col{display:grid;grid-template-columns: minmax(520px, 1fr) 420px;gap: 1.5rem;align-items:start;}
.right-col{max-width:420px;text-align:center;}
.charts-stack img{width:100%;height:auto;border-radius:12px;border:1px solid #dde3ff;display:block;margin:0 auto 1rem;max-width:100%;}
.chart-sticky{ position: sticky; top: 1rem; }
@media (max-width: 900px){
.two-col{grid-template-columns: 1fr;}
.chart-sticky{ position: static; }
.charts-stack img{width:100%;height:auto;border-radius:12px;border:1px solid #dde3ff;display:block;margin:0 auto 1rem;max-width:100%;}
}
input[type="text"], input[type="number"]{
width:100%;
max-width:260px;
padding:0.35rem 0.45rem;
font-size:0.95rem;
border-radius:8px;
border:1px solid #c3cade;
margin-top:0.25rem;
box-sizing:border-box;
}
textarea{
width:100%;
max-width:640px;
padding:0.45rem 0.55rem;
font-size:0.95rem;
border-radius:10px;
border:1px solid #c3cade;
margin-top:0.25rem;
box-sizing:border-box;
line-height:1.45;
}
.row-grid{
display:grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 1rem 1.4rem;
margin-top:0.6rem;
clear:both;
}
@media (max-width: 900px){
.row-grid{ grid-template-columns:1fr; }
}
.buttons-row{
margin-top:1rem;
display:flex;
flex-wrap:wrap;
gap:0.6rem;
}
button {
background: #e9f0ff;
border: 2px solid #6b8cff;
border-radius: 0;
padding: 10px 18px;
font-size: 1rem;
cursor: pointer;
box-shadow: 0 3px 0 #4f6fe6;
transition: all 0.12s ease;
}
button:hover { background: #f3f7ff; }
button:active { background: #cddcff; box-shadow: 0 1px 0 #4f6fe6; transform: translateY(2px); }
button.checked {
background: #dff5e1;
border-color: #3a9b3a;
box-shadow: inset 0 2px 4px rgba(0,0,0,0.15);
}
button.sampled {
background: #fff3d9;
border-color: #d9a441;
box-shadow: inset 0 2px 4px rgba(0,0,0,0.15);
}
/* === SS13 single-column fix === */
.two-col { display:block; }
.left-col, .right-col { display:block; width:auto; }
.one-col{ max-width: 980px; margin: 0 auto; }
.chart-top{ max-width: 980px; margin: 0 auto 0.75rem; }
.chart-top img{ display:block; margin: 0 auto 0.75rem; width: 100%; height:auto; max-width: 920px; }
/* === Answer checking colors + smaller number/sign boxes === */
input.correct{
background:#dff5e1 !important;
border:2px solid #2f8f2f !important;
}
input.incorrect{
background:#ffe1e1 !important;
border:2px solid #c93434 !important;
}
/* Number boxes are about half the old width. */
input[type="number"]{
width:70px !important;
max-width:70px !important;
padding:0.28rem 0.35rem;
}
/* Table cells mostly expect numbers or signs, so keep them compact. */
.tbl input{
width:52px !important;
max-width:52px !important;
padding:0.25rem 0.3rem;
text-align:center;
}
/* The explicit sign boxes were 90px; make them about half. */
#signA10, #signA30{
width:45px !important;
max-width:45px !important;
text-align:center;
}
</style>
</head>
<body>
<div class="page">
<div style="display:flex; flex-wrap:wrap; gap:12px; margin-bottom:0.8rem;">
<a href="index.html"><button>🧭 Hub</button></a>
<a href="adventure_13_home.html"><button class="secondary">🏠 Home</button></a>
<a href="adventure_13_story.html"><button class="secondary">📜 Story</button></a>
<a href="adventure_13_activity2_solution.html"><button class="secondary">🧠 Solution</button></a>
</div>
<h1>🧩 Adventure 13 — Activity 2</h1>
<div class="subtitle">DiVA reasoning (no curve-drawing for V and A)</div>
<div class="chart-top"><img alt="ATP DiVA reference (curves + shading; D(t) only)" src="images/adventure_13_activity2_diva_reference.png"/></div>
<div class="one-col">
<div class="callout">
<b>Goal:</b> Build the ATP availability curve <b>D(t)</b> using calculus — derivatives, sign tables, and a few values.
You will sketch <b>D(t)</b> on the DiVA chart using <b>critical points</b> (max/min) and an <b>inflection point</b>.
</div>
<h2>Given (simplified units)</h2>
<div class="callout">
<div><b>D(t)</b> = <span class="mono">−(2/3)t³ + 40t² − 600t + 26,000</span></div>
<div><b>V(t)=D′</b> = <span class="mono">−2t² + 80t − 600</span></div>
<div><b>A(t)=V′=D″</b> = <span class="mono">−4t + 80</span></div>
</div>
<h2>Part 1 — Compute the derivatives</h2>
<p><b>V(t) = D′(t) =</b> <input id="vexpr" placeholder="your expression" style="max-width:420px;" type="text"/></p>
<p><b>A(t) = V′(t) = D″(t) =</b> <input id="aexpr" placeholder="your expression" style="max-width:420px;" type="text"/></p>
<h2>Part 2 — Critical points for D(t)</h2>
<p>1) Solve <b>V(t)=0</b> to find where D(t) has a maximum or minimum.</p>
<p><b>t values:</b>
t₁ = <input id="t1" step="any" style="max-width:140px;" type="number"/>
t₂ = <input id="t2" step="any" style="max-width:140px;" type="number"/>
</p>
<p>2) Use <b>A(t)=D″(t)</b> to decide which is a max and which is a min.</p>
<p><b>D(t) has a minimum at</b> t = <input id="tmin" step="any" style="max-width:160px;" type="number"/>
<b>and a maximum at</b> t = <input id="tmax" step="any" style="max-width:160px;" type="number"/>
</p>
<p>3) Inflection point for D(t): solve <b>A(t)=0</b>.</p>
<p><b>Inflection time:</b> t = <input id="tinf" step="any" style="max-width:160px;" type="number"/></p>
<h2>Part 3 — Reasoning about V(t) and A(t)</h2>
<ul>
<li>When A(t) is <b>positive</b>, V(t) is (increasing / decreasing) → <input id="vincr" placeholder="increasing or decreasing" style="max-width:220px;" type="text"/></li>
<li>When V(t) is <b>positive</b>, D(t) is (increasing / decreasing) → <input id="dincr" placeholder="increasing or decreasing" style="max-width:220px;" type="text"/></li>
<li>Where does V(t) reach its <b>maximum</b>? (Hint: A(t)=0) → t = <input id="tvmax" step="any" style="max-width:160px;" type="number"/></li>
</ul>
<div class="callout" style="margin-top:1rem;">
<b>Important idea:</b> You can understand max/min/inflection without sketching the whole curve — if you know how the derivatives behave.
</div>
</div>
<h2>Part 4 — Sign table (structure)</h2>
<div class="small">You will use signs of <b>V</b> and <b>A</b> to decide where <b>D</b> is decreasing/increasing and where it has min/max/inflection.</div>
<table class="tbl">
<tr>
<th>Interval (seconds)</th>
<th>0–10</th><th>10</th><th>10–20</th><th>20</th><th>20–30</th><th>30</th><th>30–40</th>
</tr>
<tr>
<th>D (ATP availability)</th>
<td><input id="d_0_10"/></td>
<td><input id="d_10"/></td>
<td><input id="d_10_20"/></td>
<td><input id="d_20"/></td>
<td><input id="d_20_30"/></td>
<td><input id="d_30"/></td>
<td><input id="d_30_40"/></td>
</tr>
<tr>
<th>V = D′</th>
<td><input id="v_0_10"/></td>
<td><input id="v_10"/></td>
<td><input id="v_10_20"/></td>
<td><input id="v_20"/></td>
<td><input id="v_20_30"/></td>
<td><input id="v_30"/></td>
<td><input id="v_30_40"/></td>
</tr>
<tr>
<th>A = V′ = D″</th>
<td><input id="a_0_10"/></td>
<td><input id="a_10"/></td>
<td><input id="a_10_20"/></td>
<td><input id="a_20"/></td>
<td><input id="a_20_30"/></td>
<td><input id="a_30"/></td>
<td><input id="a_30_40"/></td>
</tr>
</table>
<h2>Table 2 — Values for V(t) and A(t)</h2>
<div class="small">Use <b>V(t)</b> and <b>A(t)</b> formulas to compute values. Then use the sign of each value to fill Table 1.</div>
<table class="tbl">
<tr><th>t</th><th>0</th><th>5</th><th>10</th><th>15</th><th>20</th><th>25</th><th>30</th><th>35</th><th>40</th></tr>
<tr><th>V(t)</th>
<td><input id="v0"/></td><td><input id="v5"/></td><td><input id="v10"/></td><td><input id="v15"/></td><td><input id="v20"/></td>
<td><input id="v25"/></td><td><input id="v30"/></td><td><input id="v35"/></td><td><input id="v40"/></td>
</tr>
<tr><th>A(t)</th>
<td><input id="a0"/></td><td><input id="a5"/></td><td><input id="a10v"/></td><td><input id="a15"/></td><td><input id="a20v"/></td>
<td><input id="a25"/></td><td><input id="a30v"/></td><td><input id="a35"/></td><td><input id="a40v"/></td>
</tr>
</table>
<h2>Critical points from derivatives</h2>
<div class="small">
<b>First derivative</b> decides if there is an extremum (max/min). <b>Second derivative</b> decides which kind.
Also, an <b>inflection</b> happens when <b>A(t)=D″(t)=0</b> (and the concavity changes).
</div>
<div class="callout">
At <b>t = 10</b> we have a
<input id="kind10" placeholder="minimum/maximum" style="width:140px"/> because V(10)=0 and A(10) is
<input id="signA10" placeholder=">0 or <0" style="width:90px"/>.
<br/><br/>
At <b>t = 30</b> we have a
<input id="kind30" placeholder="minimum/maximum" style="width:140px"/> because V(30)=0 and A(30) is
<input id="signA30" placeholder=">0 or <0" style="width:90px"/>.
<br/><br/>
At <b>t = 20</b> we have an
<input id="kind20" placeholder="inflection point" style="width:160px"/> because A(20)=0.
</div>
<h2>Table 3 — Values for D(t)</h2>
<div class="small">Compute D(t) at these times (or use your calculator). These values help anchor your sketch.</div>
<table class="tbl">
<tr><th>t</th><th>0</th><th>10</th><th>20</th><th>30</th><th>40</th></tr>
<tr><th>D(t)</th>
<td><input id="d0"/></td><td><input id="d10"/></td><td><input id="d20"/></td><td><input id="d30"/></td><td><input id="d40"/></td>
</tr>
</table>
<h2>Part 5 — Sketch the ATP Availability Curve</h2>
<ul>
<a href="images/ATP_DiVA_Activity_2_Blank_Student_Template.pdf" target="_blank">
Open and print the template for <b> Diva Chart for ATP DiVA: A Study of Critical Points.</b>
</a>
<li>On the <b>top graph</b> of the DiVA, mark where <b>V(t)=0</b> (min/max).</li>
<li>Mark where <b>A(t)=0</b> (inflection).</li>
<li>Use <b>Table 1</b> (signs) and <b>Table 3</b> (values) to draw a smooth, reasoned sketch.</li>
</ul>
<h2>Part 6 — Compare with the ChatGPT DiVA</h2>
<div class="callout">
My chart is very similar to the DiVA Charts produced by ChatGPT:
<label><input name="sim" type="radio"> Yes</input></label>
<label style="margin-left:12px;"><input name="sim" type="radio"> No</input></label>
<br/><br/>
Explain what is happening with ATP availability:
<br/>
<textarea style="width:100%;height:90px;"></textarea>
</div>
<h2>Part 7 — The Parting Shot</h2>
<div class="callout">
Without recalculating any values: explain how you could sketch the shape of the ATP curve using only
zeros of <b>V(t)</b>, zeros of <b>A(t)</b>, and signs.
Why is this a powerful idea in calculus?
<br/><br/>
<textarea style="width:100%;height:90px;"></textarea>
</div>
<div class="buttons-row">
<button class="samplebtn" onclick="useSampleValues()">Use Sample Values</button>
<button class="checkbtn" onclick="checkAnswers()">Check key answers</button>
</div>
<div class="small" id="msg" style="margin-top:0.4rem;"></div>
</div>
<div class="footer">Dr. Super & Spark — Powered by ChatGPT</div>
<script>
function num(id){
const v = (document.getElementById(id).value||"").trim().replace(/,/g,"");
if(v==="") return null;
const n = Number(v);
return Number.isFinite(n) ? n : null;
}
function normtxt(id){
return (document.getElementById(id).value||"").trim().toLowerCase();
}
function approx(a,b,tol=1e-6){ return a!==null && Math.abs(a-b) <= tol; }
function setVal(id, value){
const el = document.getElementById(id);
if(!el) return;
el.value = value;
el.classList.remove("correct", "incorrect");
}
function useSampleValues(){
// Part 1: derivatives
setVal("vexpr", "-2t^2 + 80t - 600");
setVal("aexpr", "-4t + 80");
// Part 2: critical and inflection times
setVal("t1", "10");
setVal("t2", "30");
setVal("tmin", "10");
setVal("tmax", "30");
setVal("tinf", "20");
// Part 3: reasoning
setVal("vincr", "increasing");
setVal("dincr", "increasing");
setVal("tvmax", "20");
// Table 1: signs and structure
setVal("d_0_10", "decreasing");
setVal("d_10", "min");
setVal("d_10_20", "increasing");
setVal("d_20", "inflection");
setVal("d_20_30", "increasing");
setVal("d_30", "max");
setVal("d_30_40", "decreasing");
setVal("v_0_10", "-");
setVal("v_10", "0");
setVal("v_10_20", "+");
setVal("v_20", "+");
setVal("v_20_30", "+");
setVal("v_30", "0");
setVal("v_30_40", "-");
setVal("a_0_10", "+");
setVal("a_10", "+");
setVal("a_10_20", "+");
setVal("a_20", "0");
setVal("a_20_30", "-");
setVal("a_30", "-");
setVal("a_30_40", "-");
// Table 2: V(t) and A(t) values
setVal("v0", "-600");
setVal("v5", "-250");
setVal("v10", "0");
setVal("v15", "150");
setVal("v20", "200");
setVal("v25", "150");
setVal("v30", "0");
setVal("v35", "-250");
setVal("v40", "-600");
setVal("a0", "80");
setVal("a5", "60");
setVal("a10v", "40");
setVal("a15", "20");
setVal("a20v", "0");
setVal("a25", "-20");
setVal("a30v", "-40");
setVal("a35", "-60");
setVal("a40v", "-80");
// Critical point explanations
setVal("kind10", "minimum");
setVal("signA10", ">0");
setVal("kind30", "maximum");
setVal("signA30", "<0");
setVal("kind20", "inflection point");
// Table 3: D(t) values
setVal("d0", "26000");
setVal("d10", "23333.3");
setVal("d20", "24666.7");
setVal("d30", "26000");
setVal("d40", "23333.3");
const sampleBtn = document.querySelector(".samplebtn");
if(sampleBtn) sampleBtn.classList.add("sampled");
const checkBtn = document.querySelector(".checkbtn");
if(checkBtn) checkBtn.classList.remove("checked");
const msg = document.getElementById("msg");
msg.textContent = "Sample values filled in. You can still edit them, then check key answers.";
msg.style.color = "#555";
}
function setMark(id, isCorrect){
const el = document.getElementById(id);
if(!el) return false;
el.classList.remove("correct", "incorrect");
el.classList.add(isCorrect ? "correct" : "incorrect");
return isCorrect;
}
function checkNum(id, answer, tol=1e-6){
return setMark(id, approx(num(id), answer, tol));
}
function cleanTextValue(v){
return (v || "")
.trim()
.toLowerCase()
.replace(/−/g,"-")
.replace(/–/g,"-")
.replace(/—/g,"-")
.replace(/\s+/g," ");
}
function checkText(id, test){
return setMark(id, test(cleanTextValue(document.getElementById(id).value)));
}
function isPlus(v){ return v === "+" || v.includes("positive") || v.includes(">0") || v.includes("above"); }
function isMinus(v){ return v === "-" || v.includes("negative") || v.includes("<0") || v.includes("below"); }
function isZero(v){ return v === "0" || v === "zero"; }
function isIncreasing(v){ return v.startsWith("increas") || v === "+" || v.includes("going up"); }
function isDecreasing(v){ return v.startsWith("decreas") || v === "-" || v.includes("going down"); }
function isMin(v){ return v.startsWith("min"); }
function isMax(v){ return v.startsWith("max"); }
function isInflection(v){ return v.includes("inflect"); }
function checkExpr(id, requiredPieces){
const raw = cleanTextValue(document.getElementById(id).value).replace(/\s+/g, "");
const ok = requiredPieces.every(piece => raw.includes(piece));
return setMark(id, ok);
}
function checkAnswers(){
let ok=0, total=0;
function need(result){ total++; if(result) ok++; }
// Part 1: derivative expressions.
need(checkExpr("vexpr", ["-2t^2", "+80t", "-600"]));
need(checkExpr("aexpr", ["-4t", "+80"]));
// Part 2: critical and inflection times.
need(checkNum("t1", 10));
need(checkNum("t2", 30));
need(checkNum("tmin", 10));
need(checkNum("tmax", 30));
need(checkNum("tinf", 20));
// Part 3: reasoning.
need(checkText("vincr", isIncreasing));
need(checkText("dincr", isIncreasing));
need(checkNum("tvmax", 20));
// Table 1: signs and structure.
need(checkText("d_0_10", isDecreasing));
need(checkText("d_10", isMin));
need(checkText("d_10_20", isIncreasing));
need(checkText("d_20", isInflection));
need(checkText("d_20_30", isIncreasing));
need(checkText("d_30", isMax));
need(checkText("d_30_40", isDecreasing));
need(checkText("v_0_10", isMinus));
need(checkText("v_10", isZero));
need(checkText("v_10_20", isPlus));
need(checkText("v_20", isPlus));
need(checkText("v_20_30", isPlus));
need(checkText("v_30", isZero));
need(checkText("v_30_40", isMinus));
need(checkText("a_0_10", isPlus));
need(checkText("a_10", isPlus));
need(checkText("a_10_20", isPlus));
need(checkText("a_20", isZero));
need(checkText("a_20_30", isMinus));
need(checkText("a_30", isMinus));
need(checkText("a_30_40", isMinus));
// Table 2: all V(t) and A(t) values.
need(checkNum("v0", -600));
need(checkNum("v5", -250));
need(checkNum("v10", 0));
need(checkNum("v15", 150));
need(checkNum("v20", 200));
need(checkNum("v25", 150));
need(checkNum("v30", 0));
need(checkNum("v35", -250));
need(checkNum("v40", -600));
need(checkNum("a0", 80));
need(checkNum("a5", 60));
need(checkNum("a10v", 40));
need(checkNum("a15", 20));
need(checkNum("a20v", 0));
need(checkNum("a25", -20));
need(checkNum("a30v", -40));
need(checkNum("a35", -60));
need(checkNum("a40v", -80));
// Critical point explanations.
need(checkText("kind10", isMin));
need(checkText("signA10", isPlus));
need(checkText("kind30", isMax));
need(checkText("signA30", isMinus));
need(checkText("kind20", isInflection));
// Table 3: all D(t) values. Rounded answers are accepted.
need(checkNum("d0", 26000, 1));
need(checkNum("d10", 23333.3333333333, 1));
need(checkNum("d20", 24666.6666666667, 1));
need(checkNum("d30", 26000, 1));
need(checkNum("d40", 23333.3333333333, 1));
const checkBtn = document.querySelector(".checkbtn");
if(checkBtn) checkBtn.classList.add("checked");
const msg = document.getElementById("msg");
msg.textContent = `Checked: ${ok}/${total} answers correct.`;
msg.style.color = ok === total ? "#2f8f2f" : "#c93434";
}
</script>
<script src="images/calc-popup.js"></script>
</body>
</html>