Graphical Derivation of the Third Binomial Formula
Loading the math board and drawing, please wait…
In collections
Binomische Formeln
This example graphically derives the third binomial formula, illustrating how to visually understand algebraic formulas through geometric shapes. By constructing two trapezoids and a rectangle, students can see the geometric meaning of (a + b) ⋅ (a - b) = a² - b². GeoGebra commands used include Point, Polygon, Rotate, Mirror, Segment, and Text. Suitable for 7-8 grade students and teachers.
GeoGebra Commands & Parameters
Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {3, 3, 10, 4, 9, 2, 4, 8, 1, 3}Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumberTextfield(input) → inputBoxPolyLine(PosSB, Corner[txt021, 2] + (-0.5, 0), Corner[txt021, 1], Corner[txt021, 4] + (0, 0.1), Corner[txt021, 3] + (0, 0.1), Corner[txt021, 2] + (0, 0.5), PosSB) → sb02SelectedIndex(dropdown031) → index031SelectedIndex(dropdown032) → index032SelectedIndex(dropdown033) → index033If(correct031 ∧ correct032 ∧ correct033, 4, correct031 ∧ correct032, 3, correct031, 2, 1) → step3CircleArc(Midpoint[PosCalc11, PosCalc13] + (0, dis3), PosCalc13, PosCalc11) → arc031CircleArc(Midpoint[PosCalc11, PosCalc14] + (0, dis3), PosCalc14, PosCalc11) → arc032SelectedIndex(dropdown034) → index034PolyLine(PosSB, Corner[txt072, 2] + (0.1, 0.25), Corner[txt072, 2] + (0.1, 0), Corner[txt072, 1] + (-0.1, 0), Corner[txt072, 4] + (-0.1, 0.1), Corner[txt072, 3] + (0.1, 0.1), Corner[txt072, 2] + (0.1, 0.75), PosSB) → sb07Segment(PosA + (0, (-disCap1)), PosB + (0, (-disCap1))) → segCap081Text("\textsf{a}", Midpoint[segCap081] + (0, 0.05), false, true, 0, -1) → Cap081Segment(PosB + (disCap1, 0), PosP2 + (disCap1, 0)) → segCap091Text("\textsf{b}", Midpoint[segCap091] + (0, 0.05), false, true, 1, 0) → Cap091SelectedIndex(dropdown101) → index101Segment(PosC + (disCap1, 0), PosP2 + (disCap1, 0)) → segCap101SelectedIndex(dropdown111) → index111SelectedIndex(dropdown112) → index112Textfield(input121) → InputBox121Flatten({1, Shuffle[2…5]}) → OrderDD121Sort({"$\textsf{\phantom{ a \(-\) b }\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{\(-\) }b\phantom{ a}\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{ \(-\) }a\phantom{ b}\vphantom{(b\(-\)a)}}$", "$\textsf{(a \(-\) b) \vphantom{(b\(-\)a)}}$", "$\textsf{(b \(-\) a) \vphantom{(b\(-\)a)}}$"}, OrderDD121) → dropdown121SelectedIndex(dropdown121) → index121Segment(PosA + (0, (-disCap2)), PosB + (0, (-disCap2))) → segCap121Segment(PosP1 + (0, (-disCap1)), PosB + (0, (-disCap1))) → segCap122Text("\textsf{a}", Midpoint[segCap121] + (0, 0.05), false, true, 0, -1) → Cap121Text("\textsf{b}", Midpoint[segCap122] + (0, 0.05), false, true, 0, -1) → Cap122Segment(PosP1, PosP1 + (4, 2)) → seg131Point(seg131) → PosQPolygon(PosQ, PosQ + ((parab * sidelength), 0), PosQ + ((parab * sidelength), (parab * sidelength)), PosQ + (0, (parab * sidelength))) → Quadrat2, segQ23, segQ21, segQ22, segQ24Text("\textsf{b²}", Midpoint[PosQ, PosQ + ((parab * sidelength), (parab * sidelength))] + (0, 0.05), false, true, 0, 0) → CapQ2SelectedIndex(dropdown141) → index141SelectedIndex(dropdown142) → index142Rotate(PosA + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2) → PosR11Rotate(PosP1 + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2) → PosR12Rotate(PosP + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2) → PosR13Rotate(PosP4 + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2) → PosR14Segment(Rotate[PosA + ((-disCap1), 0) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2], Rotate[PosP4 + ((-disCap1), 0) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2]) → segCap151Text("\textsf{b}", Midpoint[Segment[Rotate[PosA + ((-disCap1) - 0.3, 0.05) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2], Rotate[PosP4 + (-0.3 - disCap1, 0.05) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2]]], false, true, 0, 0) → Cap151Segment(Rotate[PosA + (0, (-disCap1)) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2], Rotate[PosP1 + (0, (-disCap1)) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2]) → segCap152Text("\textsf{a \(-\) b}", Midpoint[Segment[Rotate[PosA + (0, (-disCap1) + If[slider151 > 1, -0.75, -0.25]) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2], Rotate[PosP1 + (0, (-disCap1) + If[slider151 > 1, -0.75, -0.25]) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2]]], false, true, 0, 0) → Cap152PolyLine(PosSB, Corner[txt161, 2] + (-0.5, 0), Corner[txt161, 1], Corner[txt161, 4] + (0, 0.1), Corner[txt161, 3] + (0, 0.1), Corner[txt161, 2] + (0, 0.5), PosSB) → sb16SelectedIndex(dropdown161) → index161SelectedIndex(dropdown162) → index162PolyLine(PosSB + (0.5, -0.5), Corner[txt171, 2] + (0, 0.5), Corner[txt171, 2] + (0, 0), Corner[txt171, 1], Corner[txt171, 4] + (0, 0.1), Corner[txt171, 3] + (0, 0.1), Corner[txt171, 2] + (0, 1), PosSB + (0.5, -0.5)) → sb17Flatten({1, Shuffle[2…5]}) → OrderDD122Sort({"$\textsf{\phantom{ a \(-\) b }\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{\(-\) }b\phantom{ a}\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{ \(-\) }a\phantom{ b}\vphantom{(b\(-\)a)}}$", "$\textsf{(a \(-\) b) \vphantom{(b\(-\)a)}}$", "$\textsf{(b \(-\) a) \vphantom{(b\(-\)a)}}$"}, OrderDD122) → dropdown122SelectedIndex(dropdown122) → index122PolyLine(PosSB + (0.4, -0.25), Corner[txt011, 2] + (-0.5, 0), Corner[txt011, 1], Corner[txt011, 4] + (0, 0.1), Corner[txt011, 3] + (0, 0.1), Corner[txt011, 2] + (0, 0.5), PosSB + (0.4, -0.25)) → sb01Mirror(CircleArc[Midpoint[PosCalc12, PosCalc13] + (0, dis3), PosCalc13, PosCalc12], SpiegelGerade) → arc033Mirror(CircleArc[Midpoint[PosCalc12, PosCalc14] + (0, dis3), PosCalc14, PosCalc12], SpiegelGerade) → arc034PointIn(Polygon[PPolyLight1, PPolyLight2, PPolyLight3, PPolyLight4]) → PLightCircle(PLight, LightRadius) → LightCircle1Point(Segment[PosDDStart052, PosDDEnd052]) → PosDD052Point(Segment[PosDDStart053, PosDDEnd053]) → PosDD053Segment(PosA + ((-disCap1), 0), PosD + ((-disCap1), 0)) → segCap082Text("\textsf{a}", Midpoint[segCap082] + (0, 0.05), false, true, -1, 0) → Cap082Text("\textsf{a \cdot b}", Midpoint[PosB, PosP4] + (0, 0.05), false, true, 0, 0) → Cap092Text((If[step ≟ 10, "\textcolor{#db6114}{\bold{", "{{"] * "\textsf{a \(-\) b}}}"), Midpoint[segCap101] + (0, 0.05), false, true, 1, 0) → Cap101Text("\textsf{a \cdot (a \(-\) b)}", Midpoint[PosC, PosP4] + (0, 0.05), false, true, 0, 0) → Cap111Text("$\textsf{Zieh mich!}$", Midpoint[PosB, PosP2] + (1, 0), false, true, 1, -1) → txtCap13Segment(Midpoint[Corner[txtCap13, 1], Corner[txtCap13, 4]], Midpoint[Corner[txtCap13, 1], Corner[txtCap13, 4]] + (-1.5, 0)) → arrow13Text("\textsf{(a \(-\) b) \cdot b}", Midpoint[PosP4, PosP1] + (0, 0.05), false, true, 0, 0) → Cap141Text("\textsf{(a + b) \cdot (a \(-\) b)}", Midpoint[PosD, PosP2] + (PosP2 - PosP) / 2 + (0, 0.05), false, true, 0, 0) → Cap161PolyLine(PosSB + (0.4, -0.25), Corner[txt032, 2] + (-0.5, 0), Corner[txt032, 1], Corner[txt032, 4] + (0, 0.1), Corner[txt032, 3] + (0, 0.1), Corner[txt032, 2] + (0, 0.5), PosSB + (0.4, -0.25)) → sb03PolyLine(PosSB, Corner[txt041, 2] + (0.1, 0.35), Corner[txt041, 2] + (0.1, -0.1), Corner[txt041, 1] + (0, -0.1), Corner[txt041, 4] + (0, 0.1), Corner[txt041, 3] + (0.1, 0.1), Corner[txt041, 3] + (0.1, -0.5), PosSB) → sb04PolyLine(PosSB, Corner[txt043, 2] + (0.1, 0.35), Corner[txt043, 2] + (0.1, -0.1), Corner[txt043, 1] + (0, -0.1), Corner[txt043, 4] + (0, 0.1), Corner[txt043, 3] + (0.1, 0.1), Corner[txt043, 3] + (0.1, -0.5), PosSB) → sb04bCircle(PLight, LightRadius) → LightCircle2Circle(PTorch, TorchSize) → TorchCircleLine(PLight, PTorch) → LightLineIntersect(TorchCircle, LightLine) → PosTorch_{1}, PosTorch_{2}Tangent(PosTorch_{2}, LightCircle1) → LightTangent_{1}, LightTangent_{2}Rotate(PosTorch_{2} - (0.2 * UnitOrthogonalVector[LightLine]), -68°, PTorch) → PosImgTorch2IsInRegion(PLight, Polygon[Corner[text1, 1], Corner[text1, 2], Corner[text1, 3], Corner[text1, 4]]) → clickableBtnValidateLightText("\textsf{\bold{Zieh mich!}}", PLight + (0, -0.25), false, true, 0, -1) → CapLightZiehMichPoint(Segment[PosDDStart051, PosDDEnd051]) → PosDD051Text((("\textcolor{" * If[PosDD051 ≟ PosDDEnd051, "#616161", "#000000"]) * "}{\textsf{\(-\) a \cdot b + a \cdot b}}"), PosDD051, false, true, 0, 0) → txtDD051Text("\textsf{\bold{Zieh mich!}}", PosDD051 + (0, -0.35), false, true, 0, -1) → CapZiehMich051Text("{\textsf{a²}", PosDD052, false, true, 0, 0) → txtDD052Text("{\textsf{\(-\) b²}", PosDD053, false, true, 0, 0) → txtDD053PolyLine(PosSB, Corner[txt052, 2] + (0.1, 0.35), Corner[txt052, 2] + (0.1, -0.1), Corner[txt052, 1] + (0, -0.1), Corner[txt052, 4] + (0, 0.1), Corner[txt052, 3] + (0.1, 0.1), Corner[txt052, 2] + (0.1, 0.75), PosSB) → sb051PolyLine(Vertex[polyDD052(1), 2], Vertex[polyDD052(1), 3], Vertex[polyDD052(1), 4], Vertex[polyDD052(1), 5], Vertex[polyDD052(1), 2]) → segDrag052PolyLine(Vertex[polyDD053(1), 2], Vertex[polyDD053(1), 3], Vertex[polyDD053(1), 4], Vertex[polyDD053(1), 5], Vertex[polyDD053(1), 2]) → segDrag053PolyLine(PosDDEnd052 - PosDD052 + {Vertex[polyDD052(1), 2], Vertex[polyDD052(1), 3], Vertex[polyDD052(1), 4], Vertex[polyDD052(1), 5], Vertex[polyDD052(1), 2]}) → segDragEnd052PolyLine(PosDDEnd053 - PosDD053 + {Vertex[polyDD053(1), 2], Vertex[polyDD053(1), 3], Vertex[polyDD053(1), 4], Vertex[polyDD053(1), 5], Vertex[polyDD053(1), 2]}) → segDragEnd053Text("\textsf{\bold{Zieh mich!}}", PosDD052 + (0, 0.15), false, true, 0, 1) → CapZiehMich052Text("\textsf{\bold{Zieh mich!}}", PosDD053 + (0, 0.15), false, true, 0, 1) → CapZiehMich053PolyLine(PosSB, Corner[txt053, 2] + (0.1, 0.35), Corner[txt053, 2] + (0.1, -0.1), Corner[txt053, 1] + (0, -0.1), Corner[txt053, 4] + (0, 0.1), Corner[txt053, 3] + (0.1, 0.1), Corner[txt053, 2] + (0.1, 0.75), PosSB) → sb052Sequence(PosQ4 + (k / 20 * (PosQ41 - PosQ4)), k, 0, 20) → PointsP08Point(PointsP08) → Pos08Text("\textsf{\bold{\begin{array}{c}Zieh mich!\\↓\end{array}}}", Pos08 + (-0.25, 0), false, true, 1, -1) → CapZiehMich08PolyLine(PosSB + (0.25, -0.25), Corner[txt082, 2] + (0, 0.4), Corner[txt082, 2] + (0, 0), Corner[txt082, 1] + (0, 0), Corner[txt082, 4] + (0, 0.1), Corner[txt082, 3] + (0, 0.1), Corner[txt082, 3] + (0, -0.25), PosSB + (0.25, -0.25)) → sb08Segment(PosQ4 + (0, disQ1 + 0.65), PosQ4 + ((dimQ * (1 + parQ)), disQ1 + 0.65)) → segQ081Segment(PosQ4 + (0, disQ1 + If[step ∈ {10, 11, 12, 13, 14, 15}, 0.65, 0]), PosQ4 + ((dimQ * 1), disQ1 + If[step ∈ {10, 11, 12, 13, 14, 15}, 0.65, 0])) → segQ082Segment(PosQ4 + (dimQ, disQ1), PosQ4 + ((dimQ * (1 + parQ)), disQ1)) → segQ083Text("\textsf{(a \(+\) b)}", Midpoint[segQ081] + (0, disQ1), false, true, 0, 0) → CapQ081Text("\textsf{a}", Midpoint[segQ082] + (0, disQ1), false, true, 0, 0) → CapQ082Text("\textsf{b}", Midpoint[segQ083] + (0, disQ1 + 0.075), false, true, 0, 0) → CapQ083Segment(PosQ4 + ((-disQ1) - If[step ∈ {8, 17}, 1.65, step ≟ 9, 0, 0.65], 0), PosQ4 + ((-disQ1) - If[step ∈ {8, 17}, 1.65, step ≟ 9, 0, 0.65], (-dimQ))) → segQ084Segment(PosQ4 + ((-disQ1), 0), PosQ4 + ((-disQ1), ((-dimQ) * (1 - parQ)))) → segQ085Segment(PosQ4 + ((-disQ1), ((-dimQ) * (1 - parQ))), PosQ4 + ((-disQ1), ((-dimQ) * 1))) → segQ086Text("\textsf{(a \(-\) b)}", Midpoint[segQ085] + (0.1, 0), false, true, -1, 0) → CapQ085Text("\textsf{b}", Midpoint[segQ086] + (0, 0), false, true, -1, 0) → CapQ086Text("\textsf{a}", Midpoint[segQ084] + (0, 0), false, true, -1, 0) → CapQ084If(step ≟ 3, correct03, step ≟ 14, correct141 ∧ correct142, step ≟ 15, slider151 ≟ 2, step ≟ 16, correct161 ∧ correct162, step ≟ 5, PosDD051 ≟ PosDDEnd051 ∧ PosDD052 ≟ PosDDEnd052 ∧ PosDD053 ≟ PosDDEnd053, true, step ≟ 4.5, validateLight ∧ (correctLight ∨ attemptCountLight ≥ 2), step ≟ 8, Pos08 ≟ PosQ41, step ≟ 11, PosP111 ≟ PosDD111, step ≟ 13, PosQ ≟ Point[seg131, 1]) → clickableBtnNextPolyLine(PosSB, Corner[txt091, 2] + (-0.25, 0), Corner[txt091, 1] + (-0.1, 0), Corner[txt091, 4] + (-0.1, 0.1), Corner[txt091, 3] + (0.1, 0.1), Corner[txt091, 2] + (0.1, 0.35), PosSB) → sb09PolyLine(PosSB, Corner[txt101, 2] + (-0.25, -0.1), Corner[txt101, 1] + (-0.1, -0.1), Corner[txt101, 4] + (-0.1, 0.1), Corner[txt101, 3] + (0.1, 0.1), Corner[txt101, 2] + (0.1, 0.25), PosSB) → sb10Segment(PosQ3 + (0, disQ1), PosQ3 + (((-parQ) * dimQ), disQ1)) → segQ091Text("\textsf{b}", Midpoint[segQ091] + (0, disQ1 + 0.075), false, true, 0, 0) → CapQ091PolyLine(PosSB, Corner[txt111, 2] + (-0.25, 0), Corner[txt111, 1] + (-0.1, 0), Corner[txt111, 4] + (-0.1, 0.1), Corner[txt111, 3] + (0.1, 0.1), Corner[txt111, 2] + (0.1, 0.35), PosSB) → sb11PolyLine(PosSB, Corner[txt131, 2] + (-0.25, 0), Corner[txt131, 1] + (-0.1, 0), Corner[txt131, 4] + (-0.1, 0.1), Corner[txt131, 3] + (0.1, 0.1), Corner[txt131, 2] + (0.1, 0.35), PosSB) → sb13PolyLine(PosSB, Corner[txt141, 2] + (-0.25, -0.1), Corner[txt141, 1] + (-0.1, -0.1), Corner[txt141, 4] + (-0.1, 0.1), Corner[txt141, 3] + (0.1, 0.1), Corner[txt141, 2] + (0.1, 0.25), PosSB) → sb14Segment(PosQ1 + (0, (-disQ1)), PosQ1 + (((1 - parQ) * dimQ), (-disQ1))) → segQ141Segment(PosQ3 + (disQ1, 0), PosQ3 + (disQ1, ((-(1 - parQ)) * dimQ))) → segQ142PolyLine(PosSB, Corner[txt151, 2] + (-0.25, 0), Corner[txt151, 1] + (-0.1, 0), Corner[txt151, 4] + (-0.1, 0.1), Corner[txt151, 3] + (0.1, 0.1), Corner[txt151, 2] + (0.1, 0.35), PosSB) → sb15Circle((7.345, 4.43), LightRadius) → cText("\textsf{b²\vphantom{g}}", PosP111 + (0, 0.05), false, true, 0, 0) → txtDD111Text("\textsf{\bold{Zieh mich!}}", PosP111 + (0, 0.5), false, true, 0, 1) → CapZiehMich11
AI Drawing Prompt Reference
Draw a diagram to derive the binomial formula (a+b)(a-b)=a²-b², including two trapezoids and a rectangle, to illustrate the relationship between algebraic formulas and geometric shapes. Start by drawing two trapezoids and a rectangle, label the positions of a and b, then combine the trapezoids and rectangle through rotation and reflection operations to form the geometric representation of a²-b², finally label the areas of each part to help the audience intuitively understand the formula.
The prompt above was compiled from the original drawing commands and is for reference only.