利用一阶和二阶导数绘制曲线
几何画板及绘图内容加载中,请稍等……
本范例演示如何利用一阶和二阶导数绘制函数图像。涉及的核心数学概念包括导数、函数图像、直线、伸缩变换等。作图要点——从下方『构造摘要』提炼用到了哪些 GeoGebra 命令/对象:Zip, Random, If, Element, UnicodeToLetter, Shuffle, Polygon, TableText, Translate, IndexOf, Sequence, Join, LaTeX;对象:xVals, axisArrows, multiplier, Afx1, Afx3, Afx2, Afpx1, caseNum, Ax1Indx, Ax1, Mf23, Mf22, Mf21, Case2Matrices, Case2Solutions, Case2Coeffs, f23, f22, f21, Case2, Ax3Indx, Ax2Indx, Ax2, Mf13, Ax3, Mf11, Mf12, Case1Matrices, Case1Solutions, Case1Coeffs, f13, f12, f11, Case1, bullet, chosenGraphs, inequality1, questionOrder, transVectors, displayOrder。适合高中及以上学段学习微积分和函数图像绘制。
GeoGebra 命令及参数
Zip(Rotate[{Segment[(11, 0), (10.5, 0.5)], Segment[(11, 0), (10.5, -0.5)]}, A, (0, 0)], A, {0, 90°, 180°, 270°}) → axisArrowsRandom(1, 6) → Ax1IndxIf(caseNum ≟ 1, Element[xVals, Ax1Indx], (Random[1, 3] * (-1)^(Random[0, 1]))) → Ax1Zip(ReducedRowEchelonForm[A], A, Case2Matrices) → Case2SolutionsZip(Sequence[Element[A, i, 5], i, 1, 4], A, Case2Solutions) → Case2CoeffsZip(If[-11 < x < 11, A(x)], A, {f21, f22, f23}) → Case2Random(Ax1Indx + 2, 8) → Ax3IndxRandom(Ax1Indx + 1, Ax3Indx - 1) → Ax2IndxElement(xVals, Ax2Indx) → Ax2Element(xVals, Ax3Indx) → Ax3Zip(ReducedRowEchelonForm[A], A, Case1Matrices) → Case1SolutionsZip(Sequence[Element[A, i, 6], i, 1, 5], A, Case1Solutions) → Case1CoeffsZip(If[-11 < x < 11, A(x)], A, {f11, f12, f13}) → Case1UnicodeToLetter(9679) → bulletIf(multiplier < 1, "<", ">") → inequality1Shuffle({1, 2, 3}) → questionOrderZip(Element[transVectors, A], A, questionOrder) → displayOrderPolygon({(-11, -11), (-11, 11), (11, 11), (11, -11)}) → graphFrameIf(multiplier < 1, ">", "<") → inequality2TableText({{(((("\text{ " * bullet) * " ") * Case2Condition1) * "}"), (((("\text{" * bullet) * " ") * Case2Condition2) * "}")}, {(((("\text{" * bullet) * " ") * Case2Condition3) * "}"), (((("\text{" * bullet) * " ") * Case2Condition4) * "}")}}) → Case2ConditionsTableText({{Case1Condition1, Case1Condition2}, {Case1Condition3, Case1Condition4}}) → Case1ConditionsUnicodeToLetter(10007) → xmarkUnicodeToLetter(10003) → cmarkIf(caseNum ≟ 1, Case1, Case2) → selectedFuncsZip(Translate[C, Vector[D]], C, selectedFuncs, D, displayOrder) → allDisplayFuncsZip(Translate[graphFrame, Vector[Element[displayOrder, A]]], A, chosenGraphs) → highlightQuestionsTranslate(graphFrame, Vector[Element[displayOrder, 1]]) → graph1Translate(graphFrame, Vector[Element[displayOrder, 2]]) → graph2Translate(graphFrame, Vector[Element[displayOrder, 3]]) → graph3IndexOf(1, questionOrder) → letterIndxIf(caseNum ≟ 1, Case1Conditions, Case2Conditions) → questionConditionsSequence(Defined[IndexOf[i, answers]], i, 1, 3) → whichCorrectZip(Text[A, (3, 14) + V, true, true], A, graphTitles, V, transVectors) → allTitlesJoin({axisArrows, {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}], {Segment[(-11, 0), (11, 0)], Segment[(0, -11), (0, 11)]}}}) → TemplateAxisZip(Translate[Join[{Sequence[Segment[(-11, i), (11, i)], i, -10, 10], Sequence[Segment[(i, 11), (i, -11)], i, -10, 10]}], Vector[A]], A, transVectors) → allGridsZip(Translate[TemplateAxis, A], A, transVectors) → allAxisZip(Zip[Text[A, B + V, true, true], A, {"-10", "-5", "5", "10", "x", "-10", "-5", "5", "10", "y"}, B, {(-12, -0.5), (-6.4, -0.5), (4.5, -0.5), (9, -0.5), (11, 1), (-4, -9.2), (-3, -4.2), (-2, 5.8), (-3, 10.8), (0, 12)}], V, transVectors) → allTxtLaTeX(If[isCorrect, txtCorrect, txtIncorrect]) → txtAnswerLaTeX((((((((("\text{" * txtAnswer) * " ") * fbConcavity) * "\\") * fbSlope) * "\\") * fbCorrectGraph) * "}")) → fbAll