函数与其导数匹配 by cemccourseware

函数与其导数匹配 by cemccourseware
几何画板及绘图内容加载中,请稍等……
2019-07-06 08:03
本范例演示如何匹配常见函数与其导数图像。涉及的核心数学概念包括导数的几何意义和函数的单调性。作图要点使用了GeoGebra的Random, Flatten, Zip, Shuffle, Polygon, Join, If, LaTeX, Translate, UnicodeToLetter, Sequence等命令和对象来随机生成函数和导数对,并通过图形化展示匹配过程。适合高中及大学初学者学习微积分和函数分析。

GeoGebra 命令及参数

  1. Random(-4, 4) → a2
  2. Random(a2 + 1, a2 + 4) → a3
  3. Random(-8, -2) → c2
  4. Random(c2 + 1, c2 + 3) → c3
  5. Random(c3 + 1, c3 + 3) → c4
  6. Random(c4 + 1, c4 + 3) → c5
  7. Random(-8, 0) → b2
  8. Random(b2 + 1, b2 + 4) → b3
  9. Random(b3 + 1, b3 + 4) → b4
  10. Flatten(Sequence[Sequence[(i, j), i, -15, -15 + (2 * 25), 25], j, 10, 10 - 26, -26]) → transVectors
  11. Zip(Derivative[A], A, allFuncs) → allDiffs
  12. Zip({Root[A]}, A, allDiffs) → allDerivativeRoots
  13. Shuffle({1, 2, 3}) → questionOrder, {3, 1, 2}
  14. Polygon((-11, -11), (-11, 11), (11, 11), (11, -11)) → polygonTemplate, f, g, h, i
  15. Shuffle({-1, 2, -2, 1}) → aVals, {2, 1, -2, -1}
  16. Shuffle({2, 3, 4, 5, 6, -2, -3, -4, -5, -6}) → hVals, {-2, -4, 5, 6, -5, 4, 2, 3, -3, -6}
  17. Shuffle({2, 3, 4, 5, 6, -2, -3, -4, -5, -6}) → kVals, {3, 4, -5, 2, 5, -6, -4, 6, -3, -2}
  18. Join({allFuncs, allDiffs}) → allDisplayFuncs
  19. Random(1, 4) → caseNum
  20. Join({Zip[Element[transVectors, A], A, questionOrder], Zip[Element[transVectors, B], B, matchOrder]}) → displayOrder
  21. If(Random[0, 1] ≟ 1, 1, -1) → a
  22. If(Random[0, 1] ≟ 1, 1, -1) → b
  23. LaTeX((((("\text{\textbf{Question: }" * QUESTION) * "\\\textbf{Instructions: }") * INSTRUCTIONS) * "}")) → allInstruc
  24. Translate(polygonTemplate, Vector[Element[displayOrder, 1]]) → graph1
  25. Translate(polygonTemplate, Vector[Element[displayOrder, 2]]) → graph2
  26. Translate(polygonTemplate, Vector[Element[displayOrder, 3]]) → graph3
  27. Translate(polygonTemplate, Vector[Element[displayOrder, 4]]) → graph4
  28. UnicodeToLetter(10003) → cmark
  29. UnicodeToLetter(10007) → xmark
  30. Translate(polygonTemplate, Vector[Element[displayOrder, 5]]) → graph5
  31. Translate(polygonTemplate, Vector[Element[displayOrder, 6]]) → graph6
  32. Shuffle({-2, -3, -4, -6}) → r1Vals, {-2, -6, -3, -4}
  33. Shuffle({1, 2, 3, 4, 5, 6}) → r2Vals, {3, 4, 5, 2, 1, 6}
  34. Zip(Sort[{Intersect[A, polygonTemplate]}], A, allDisplayFuncs) → endPoints
  35. Zip(Translate[If[x > x(Element[B, 1]) ∧ x < x(Element[B, 2]), C(x)], Vector[D]], B, endPoints, C, allDisplayFuncs, D, displayOrder) → funcSegments
  36. Translate(polygonTemplate, Vector[Element[displayOrder, graphChosen]]) → highlightQuestion
  37. Polygon({(-11, -34), (-11, 11), (11, 11), (11, -34)}) → matchBoxTemplate
  38. Translate(matchBoxTemplate, Element[transVectors, 1]) → match1
  39. Translate(matchBoxTemplate, Element[transVectors, 2]) → match2
  40. Translate(matchBoxTemplate, Element[transVectors, 3]) → match3
  41. Sequence(i + 3 ≟ Element[matches, i], i, 1, 3) → correctMatches
  42. Translate(polygonTemplate, Element[displayOrder, 1]) → q1Box
  43. Translate(polygonTemplate, Element[displayOrder, 2]) → q2Box
  44. Translate(polygonTemplate, Element[displayOrder, 3]) → q3Box
  45. Translate(polygonTemplate, Element[displayOrder, Element[matches, 3]]) → q3MatchingBox
  46. Translate(polygonTemplate, Element[displayOrder, Element[matches, 2]]) → q2MatchingBox
  47. Translate(polygonTemplate, Element[displayOrder, Element[matches, 1]]) → q1MatchingBox
  48. Random(c2 + 1, c2 + 4) → d2
  49. Zip(Translate[Join[{Zip[Segment[(A, -0.3), (A, 0.3)], A, {-10, -5, 5, 10}], Zip[Segment[(0.3, B), (-0.3, B)], B, {10, 5, -5, -10}]}], C], C, transVectors) → axisTicks
  50. Zip(Translate[{Segment[(-11, 0), (11, 0)], Segment[(0, -11), (0, 11)]}, A], A, transVectors) → axis
  51. Zip(Translate[Sequence[Segment[(-11, i), (11, i)], i, -10, 10], Vector[A]], A, transVectors) → allHorizGrids
  52. Zip(Translate[Sequence[Segment[(i, -11), (i, 11)], i, -10, 10], Vector[A]], A, transVectors) → allVertGrids
  53. Zip(Zip[Text[A, B + V, true, true], A, {"-10", "-5", "5", "10", "x"}, B, {(-13, -0.5), (-7, -0.5), (4.5, -0.5), (9, -0.5), (11, 1)}], V, transVectors) → allTxtX
  54. Zip(Zip[Text[A, B + V, true, true], A, {"-10", "-5", "5", "10", "y"}, B, {(-4, -9), (-3, -4), (-2, 6), (-3, 11), (0, 12)}], V, transVectors) → allTxtY
  55. Zip(Translate[Zip[Rotate[{Segment[(11, 0), (10.5, 0.5)], Segment[(11, 0), (10.5, -0.5)]}, A, (0, 0)], A, {0, 90°, 180°, 270°}], B], B, transVectors) → axisArrows
  56. Zip(Text[A, (1.5, 14.5) + V, true, true], A, graphTitles, V, transVectors) → allTitles
  57. LaTeX(("\text{\textbf{Feedback: } (A checkmark in a column indicates a correct match.)\\" * If[IndexOf[fbIndx, questionOrder] ≟ 1, fbfunc1, If[IndexOf[fbIndx, questionOrder] ≟ 2, fbFunc2, fbFunc3]])) → fbDisplay
  58. Zip(Text[If[A, ("" * cmark)], V + (7.5, 14.5), true, true], A, correctMatches, V, displayOrder) → checkMarks
  59. Zip(Text[If[A, "", ("" * xmark)], V + (7.5, 14.5), true, true], A, correctMatches, V, displayOrder) → xMarks