Finding Function Equation from Graph

Finding Function Equation from Graph
Loading the math board and drawing, please wait…
2025-12-17 21:51
In collections Lineare Funktionen
This example demonstrates the process of finding the function equation from a given graph. Key math concepts include function graphs, linear functions, slope, and y-intercept. GeoGebra commands used in construction are Sequence, Element, Textfield, Join, PolyLine, Segment, Text, Point, If, Rotate. Suitable for 7th-8th grade students to practice coordinate geometry and understanding of function gra

GeoGebra Commands & Parameters

  1. Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {3, 1, 7, 2, 4, 4, 4, 10, 7, 9}
  2. Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumber
  3. Textfield(input) → inputBox
  4. Join({Sequence[Segment[Corner[4] + (RasterPixMat * ((k * RasterStepXY), 0)), Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY))], k, 0, RasterMaxX / RasterStepXY], Sequence[Segment[Corner[4] + (RasterPixMat * (0, (k * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], k, 0, RasterMaxY / RasterStepXY]}) → RasterStrecken
  5. Join({Sequence[Text[UnicodeToLetter[65 + k], Midpoint[Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY)), Corner[4] + (RasterPixMat * (((k + 1) * RasterStepXY), RasterMaxY))], false, true, 0, -1], k, 0, RasterMaxX / RasterStepXY - 1], Sequence[Text[("" * k), Midpoint[Corner[4] + (RasterPixMat * (RasterMaxX, ((k - 1) * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], false, true, 1, 0], k, 1, RasterMaxY / RasterStepXY]}) → RasterBeschriftung
  6. Sequence(Sequence[Corner[4] + (RasterPixMat * ((k * RasterStepXY), (m * RasterStepXY))), k, 0, RasterMaxX / RasterStepXY], m, 0, RasterMaxY / RasterStepXY) → RasterPunkte
  7. Textfield(input021) → InputBox021
  8. Textfield(input022) → InputBox022
  9. Textfield(input041) → InputBox041
  10. Textfield(input042) → InputBox042
  11. PolyLine(PosSB, Corner[txt011, 1] + (0.25, -0.1), Corner[txt011, 2] + (0.1, -0.1), Corner[txt011, 3] + (0.1, 0.1), Corner[txt011, 4] + (-0.1, 0.1), Corner[txt011, 1] + (-0.1, 0.25), PosSB) → sb01
  12. PolyLine(PosSB, Corner[txt031, 1] + (0.25, -0.1), Corner[txt031, 2] + (0.1, -0.1), Corner[txt031, 3] + (0.1, 0.1), Corner[txt031, 4] + (-0.1, 0.1), Corner[txt031, 1] + (-0.1, 0.25), PosSB) → sb03
  13. Segment(Origin + ((minX / stepX * disX) - edgeAxisX, 0), Origin + ((maxX / stepX * disX) + edgeAxisX, 0)) → segAxisX
  14. Segment(Origin + (0, (minY / stepY * disY) - edgeAxisY), Origin + (0, (maxY / stepY * disY) + edgeAxisY)) → segAxisY
  15. Sequence(Origin + ((minX / stepX * disX), 0) + (k * (disX, 0)), k, 0, maxX / stepX - minX / stepX) → PointsXAxis
  16. Sequence(Origin + (0, (minY / stepY * disY)) + (k * (0, disY)), k, 0, maxY / stepY - minY / stepY) → PointsYAxis
  17. Sequence(Segment[PointsXAxis(k) + (0, (-disSeg)), PointsXAxis(k) + (0, disSeg)], k, 1, Length[PointsXAxis]) → segXAxis
  18. Sequence(Segment[PointsYAxis(k) + ((-disSeg), 0), PointsYAxis(k) + (disSeg, 0)], k, 1, Length[PointsYAxis]) → segYAxis
  19. Sequence(m, m, minX, maxX, stepX) → numbersXAxis
  20. Sequence(Text[((("\textsf{\footnotesize{\(" * If[numbersXAxis(k) ≥ 0, "\phantom{\(-\)}", ""]) * If[Element[numbersXAxis, k] ≟ 0, "", ("" * Element[numbersXAxis, k])]) * "\)}}"), PointsXAxis(k) + (-0.12, (-disSeg)), false, true, 0, -1], k, 1, (maxX - minX) / stepX + 1) → CapX
  21. Sequence(m, m, minY, maxY, stepY) → numbersYAxis
  22. Sequence(Text[((("\textsf{\footnotesize{\(" * If[numbersYAxis(k) ≥ 0, "\phantom{\(-\)}", ""]) * If[Element[numbersYAxis, k] ≟ 0, "", ("" * Element[numbersYAxis, k])]) * "\)}}"), PointsYAxis(k) + ((-disSeg) + 0.05, 0), false, true, -1, 0], k, 1, (maxY - minY) / stepY + 1) → CapY
  23. Element({Polygon[(x(PointsXAxis(1)), y(PointsYAxis(1))) + ((-edgeAxisX) - 0.05, (-edgeAxisY) - 0.05), (x(PointsXAxis(Length[PointsXAxis])), y(PointsYAxis(1))) + (edgeAxisX + 0.05, (-edgeAxisY) - 0.05), (x(PointsXAxis(Length[PointsXAxis])), y(PointsYAxis(Length[PointsYAxis]))) + (edgeAxisX + 0.05, edgeAxisY + 0.05), (x(PointsXAxis(1)), y(PointsYAxis(Length[PointsYAxis]))) + ((-edgeAxisX) - 0.05, edgeAxisY + 0.05)]}, 1) → polyAxis
  24. Segment(Origin, PointD) → segd
  25. Text("\textsf{\textcolor{#1565c0}{\bold{d}}}", Midpoint[Origin, PointD] + ((-disX), 0), false, true, 0, 0) → Capd
  26. Segment(PointD + (disX, 0), PointD + ((7 * disX), 0)) → segPSD
  27. Point(segPSD) → PointSD
  28. Segment(PointD, PointSD) → segSD1
  29. Segment((x(PointSD), FuncTransform(x(PointSD))), PointSD) → segSD2
  30. Text("\bold{\textsf{f}}", PointD + ((6 * disX), (4 * disY)), false, true, 1, 0) → CapF
  31. Text("\textsf{\bold{\textcolor{#50c1ce}{Zieh mich!}}}", PointSD, false, true, 1, -1) → CapZiehMich03
  32. If(step ≟ 2 ∧ (¬correct021), PosImgKind1 + (3.75, -1.6), step ≟ 2, PosImgKind1 + (2.5, -2.85), PosImgKind1 + (4.5, -0.6)) → PosSolution
  33. If(step ≟ 2, correct021 ∧ correct022 ∧ sub02, step ≟ 3, showSD ∧ PointSD ∈ PointD + {((3 * disX), 0), ((6 * disX), 0)}, step ≟ 4, correct04 ∧ sub04, true) → clickableBtnNext
  34. PolyLine(PosSB, Corner[txt041, 1] + (0.25, -0.1), Corner[txt041, 2] + (0.1, -0.1), Corner[txt041, 3] + (0.1, 0.1), Corner[txt041, 4] + (-0.1, 0.1), Corner[txt041, 1] + (-0.1, 0.25), PosSB) → sb04
  35. PolyLine(PosSB, Corner[txt052, 1] + (0.25, 0.05), Corner[txt052, 2] + (0.1, 0.05), Corner[txt052, 3] + (0.1, 0.1), Corner[txt052, 4] + (-0.1, 0.1), Corner[txt052, 1] + (-0.1, 0.25), PosSB) → sb05
  36. Text((("\textsf{\bold{\textcolor{#9c4381}{\footnotesize{" * ReplaceAll[(round(x(PointSD - PointD) / disX, 1) * ""), ".", ","]) * "}}}}"), Midpoint[segSD1], false, true, 0, -1) → CapSD1
  37. Text((("\textsf{\bold{\textcolor{#db6114}{\footnotesize{" * ReplaceAll[(round(y(Point[segSD2, 0] - PointSD) / disY, 1) * ""), ".", ","]) * "}}}}"), Midpoint[segSD2], false, true, 1, 0) → CapSD2
  38. Rotate(Segment[ArrowCenter + (ArrowDistance, 0), ArrowCenter + (ArrowDistance + ArrowLength, 0)], ArrowAngle + ((1 - 1) * (360°) / ArrowNumber), ArrowCenter) → arrow1
  39. Rotate(Segment[ArrowCenter + (ArrowDistance, 0), ArrowCenter + (ArrowDistance + ArrowLength, 0)], ArrowAngle + ((3 - 1) * (360°) / ArrowNumber), ArrowCenter) → arrow3
  40. Segment(PointD, (x(PointD) + (Min[anim04, 1] * x(PointSD - PointD)), y(PointSD))) → segSD1Anim
  41. Segment(PointSD, (x(PointSD), y(PointSD) + (Min[1, anim04 - 1] * y((x(PointSD), FuncTransform(x(PointSD))) - PointSD)))) → segSD2Anim
  42. PolyLine(PosSB, Corner[txt021, 1] + (0.25, 0.23), Corner[txt021, 2] + (0.1, 0.23), Corner[txt021, 3] + (0.1, 0.1), Corner[txt021, 4] + (-0.1, 0.1), Corner[txt021, 1] + (-0.1, 0.35), PosSB) → sb02
  43. Segment(AnimArrow042A, AnimArrow042A + (anim042 * Direction[Line[AnimArrow042A, AnimArrow042B]])) → AnimArrow042
  44. Segment(AnimArrow02A, AnimArrow02A + (anim02 * Direction[Line[AnimArrow02A, AnimArrow02B]])) → AnimArrow02