Testing Solutions of a System: Line–Parabola Intersections

Testing Solutions of a System: Line–Parabola Intersections
Loading the math board and drawing, please wait…
2024-06-13 03:47
This GeoGebra example visualizes how the intersection points of a line and a parabola correspond exactly to the solutions of a system of equations. Students test whether a given coordinate pair satisfies both equations, reinforcing the equivalence between “graph intersections” and “system solutions.” Key concepts include systems of linear and quadratic (nonlinear) equations, solution verification via substitution, and interpreting intersection counts/locations on function graphs. Construction-wise, it leverages randomized parameter generation (RandomUniform, Sequence, Flatten, KeepIf, First, Element) to create multiple equation scenarios, forms the needed polynomial expressions (Polynomial), filters and manages candidate sets (RemoveUndefined, KeepIf, First, Element), and then constructs geometric/graphical elements such as points and connecting segments/polygons (Point, Segment, Polygon). It also uses text handling and layout adjustments (Text, Translate, Rotate, PointToPixels, Unicode conversions) to present interactive questions and feedback. Suitable for Grades 9–12 and for algebra/graphing lessons on solving systems with nonlinear relationships.

GeoGebra Commands & Parameters

  1. RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.3853180500635086, 0.36786167154423083, 0.3314899008851462, 0.4495898113206599, 0.7062391257328886, 0.8344662421036378, 0.22918499003983894, 0.079953373668172, 0.5209780387007789, 0.2735134895943693, 0.659835476913766, 0.967471125139848, 0.5120405543162071, 0.1878068650045772, 0.6425084400793382, 0.05588990138577263, 0.4953026774237742, 0.7183547614533085, 0.10065415855108611, 0.12190724108639135, 0.46657363747713015, 0.09996257148366718, 0.04575802394282447, 0.43279546821414605, 0.37009188346240574, 0.5989118343857159, 0.042775727967683516, 0.057192155759809384, 0.16583040117625739, 0.9570412333769425, 0.9465084403228637, 0.13030071971067922, 0.24978184743771492, 0.9075109935373384, 0.7045874813545581, 0.05368030705223599, 0.2946271074230456, 0.5419369083262746, 0.3601895579299874, 0.47717719899975675, 0.047360163846397525, 0.6364216641360324, 0.42599246493367715, 0.49636025224367125, 0.7255501132793349, 0.4852904008168496, 0.17020696371094612, 0.8630713760975706, 0.2949656216956968, 0.8060545266884918, 0.20578439475788265, 0.14938727586437156, 0.7782699518674823, 0.3772818878654581, 0.6151008159092369, 0.6764119364169152, 0.8474144590598995, 0.5026433736480894, 0.4945569316821931, 0.8788794980173206, 0.59121552213518, 0.17943497813249068, 0.6666095909109567, 0.014545867254726947, 0.5143955823687387, 0.7383414722488786, 0.27076389491749814, 0.5537822050632526, 0.8251006613729599, 0.14311221126100332, 0.6000063344053986, 0.8096572620167068, 0.9045767386008041, 0.5141610333228498, 0.7550481961898011, 0.6421051872673396, 0.1452955256899183, 0.5588815063611642, 0.32557430822251276, 0.3615242998449608, 0.19236383877319874, 0.403686395897923, 0.5254561443006815, 0.8173375766516967, 0.07753449923805626, 0.9384331312550346, 0.167589414718326, 0.20566825401832536, 0.3855556790631602, 0.512990051095077, 0.7236547324624096, 0.657345154054686, 0.34895331555338516, 0.45822713658840786, 0.1346765629852131, 0.03294997941523795, 0.43963641285045596, 0.7096812373691975, 0.679768801613856, 0.055554419487152104, 0.7439471339324176, 0.751550892809333, 0.9029070120825964, 0.08416806433218435, 0.28194746681066213, 0.3715171526213953, 0.17095550768875775, 0.11172850542769515, 0.011842158323222383, 0.5031661504187364, 0.08050415798403343, 0.050713469981225764, 0.46648171904084434, 0.10250608003896008, 0.026333037675006634, 0.5771394263011324, 0.4308726965472317, 0.2582256671768807, 0.34052455602580245, 0.5798355879431913, 0.24754152170663296, 0.19193233304528523, 0.9583809508039988, 0.07644130859383882, 0.1504559449119155, 0.46463887430359946, 0.7153818447069626, 0.8605739414379827, 0.078003319807534, 0.7392325448742443, 0.7484292888627293, 0.6260493825170392, 0.23125675745817487, 0.7655663819455766, 0.01458028148917782, 0.8639105565775459, 0.9254306477034889, 0.6951532007752785, 0.06135351479645739, 0.3963295345693092, 0.09003439723565104, 0.8862227885725366, 0.9845254900616076, 0.2281976794035199, 0.9667777165460659, 0.24711896049190493, 0.6820926670050901, 0.4924026634559002, 0.8437637722602729, 0.7366679560032785, 0.11677929936887324, 0.878415370678109, 0.3699261634972961, 0.33424136660083476, 0.014107825381487528, 0.29586926568250166, 0.6550229543932176, 0.5697657205264075, 0.7286260452090852, 0.9153137796234563, 0.3677965636653318, 0.25489798055142204, 0.7773979888279198, 0.7072580433404932, 0.08813947641953399, 0.300990563244363, 0.06731741385395901, 0.22799466545844002, 0.8982774600418089, 0.5173110772999231, 0.6411907332136443, 0.2265040415381253, 0.0930874194717725, 0.31426121748167213, 0.43686313211333155, 0.9109870785692942, 0.3407136820198115, 0.5110562870537999, 0.03392463886871422, 0.7362605431830888, 0.23162763117929844, 0.38548122743686586, 0.5437345464157332, 0.6643716152654024, 0.13719637585395444, 0.6249301011143797, 0.29064089345735833, 0.5003493655701663, 0.057683094064709575, 0.5329662399111396, 0.7253483731991004, 0.3730081800848912, 0.5043968200605479, 0.8641065491962815, 0.1854010076935218, 0.6471546642323245, 0.8714417624398099, 0.9214374458311377, 0.5326978623373068, 0.7784216917295964}
  2. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  3. If(-4 + floor((currentRandomSeeds(2) * 8)) ≠ 0, -4 + floor((currentRandomSeeds(2) * 8)), 1) → yV
  4. Element(coeffsA, Mod[floor((currentRandomSeeds(3) * 10)), Length[coeffsA]] + 1) → coeffA
  5. Sequence(xA + (0.5 * ii), ii, 1, Min[10 - (2 * xA), 6]) → xBPos, {-1.5, -1, -0.5, 0, 0.5, 1}
  6. Element(xBPos, xBind) → xB
  7. Flatten(Sequence[Sequence[(ii, jj), ii, -4, 4], jj, If[coeffA ≤ 0, -5 - coeffA, -4], If[coeffA ≥ 0, 5 - coeffA, 4]]) → PossibleVertices
  8. Element(PossibleVertices, floor((currentRandomSeeds(2) * Length[PossibleVertices])) + 1) → Vert
  9. Polynomial(g0) → g
  10. If(countQuestion ≟ 0, 2, If[currentRandomSeeds(1) ≤ 0.8, 2, 1]) → NumOfSols
  11. KeepIf(y(PP) ≟ g(x(PP)), PP, Flatten[Sequence[Sequence[(ii, jj), ii, -5, 5], jj, -5, 5]]) → PossibleSols
  12. Element(PossibleSols, 1 + floor((Length[PossibleSols] * currentRandomSeeds(4)))) → Sol1
  13. Element(PossibleSols \ {Sol1}, 1 + floor(((Length[PossibleSols] - 1) * currentRandomSeeds(4)))) → Sol2
  14. First({Sol1, Sol2}, NumOfSols) → sols
  15. Corner(5) → layoutAppSize
  16. PointToPixels(Corner[onboardingDisplayText, 2], Corner[1], Corner[3], Corner[5]) → layoutOnboarding
  17. onboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset
  18. Polygon({(-5.5, -5.5), (5.5, -5.5), (5.5, 5.5), (-5.5, 5.5)}) → q1
  19. Flatten(Sequence[Sequence[y = (mm * x) + bb, mm, -5, 5], bb, -5, 5]) → Lines
  20. Zip(RemoveUndefined[{Intersect[g, ll]}], ll, Lines) → l2
  21. RemoveUndefined(Zip[If[Length[ll] ≟ 0, LL, NaN], ll, l2, LL, Lines]) → l3
  22. Element(l3, 1 + floor((currentRandomSeeds(1) * Length[l3]))) → j
  23. Polynomial(Element[{h0, h1, h2}, NumOfSols + 1]) → h
  24. Segment((0, -5.42), (0, 5.42)) → i
  25. Text("\math{x}", (5.75, 0.075), true, true, 0, 0) → labelx
  26. Text("\math{y}", (0, 5.9), true, true, 0, 0) → labely
  27. Translate(p, Vector[(Vector[Corner[1], Corner[4]] / 500 * 16)]) → p'
  28. Sequence(Segment[(ii, -0.05), (ii, 0.05)], ii, -5, 5, 0.5) → l1
  29. Rotate(i, 90°) → i'
  30. Text((((((((("(\textcolor{" * colorx) * "}{") * x(Sol2)) * "},\textcolor{") * colory) * "}{") * y(Sol2)) * "})"), Sol2, true, true, 0, If[y(Sol1) ≥ y(Sol2), -1, 1]) → labelP2
  31. Text(g) → gtext
  32. KeepIf(abs(y(PP)) ≤ 5, PP, Sequence[(ii, g(ii)), ii, -5, 5, 0.01]) → Points1
  33. KeepIf(abs(y(PP)) ≤ 5, PP, Sequence[(ii, h(ii)), ii, -5, 5, 0.01]) → Points2
  34. Sort(Join[{Points1, Points2}]) → Points
  35. Point(Points) → A
  36. Derivative(g) → f
  37. TextToUnicode(gtext) → gtextUnic
  38. UnicodeToText(Flatten[Zip[If[nn ≟ 120, TextToUnicode[xsubstitute], {nn}], nn, gtextUnic]]) → text2
  39. Text(h) → htext
  40. Split(htext, {"x"}) → htextSplit
  41. Append(Zip[tt + xsubstitute, tt, First[htextSplit, If[h(0) ≟ 0 ∧ Slope[h] ≠ 0, Length[htextSplit], Length[htextSplit] - 1]]], If[h(0) ≟ 0 ∧ Slope[h] ≠ 0, "", htextSplit(-1)]) → htextSubst
  42. UnicodeToText(Flatten[Zip[If[nn ≟ 120, TextToUnicode[xsubstitute2], {nn}], nn, gtextUnic]]) → gtextSubstFinal2
  43. Append(Zip[tt + xsubstitute2, tt, First[htextSplit, If[h(0) ≟ 0 ∧ Slope[h] ≠ 0, Length[htextSplit], Length[htextSplit] - 1]]], If[h(0) ≟ 0 ∧ Slope[h] ≠ 0, "", htextSplit(-1)]) → htextSubst2
  44. Text((((((((("(\textcolor{" * colorx) * "}{") * x(A)) * "},\textcolor{") * colory) * "}{") * y(A)) * "})"), A - (0, 0.15), true, true, 0, -1) → labelA
  45. circlePixels(A, 7 + (7 * pulsing), Cor1, Cor3, (800, 500)) → c

AI Drawing Prompt Reference

Draw a coordinate system with a randomly generated line and a parabola, highlighting their intersection points with dots. Display the equations of both functions in the graph, and label the coordinates of the two intersection points in different colors. The background features a light gray bordered rectangle, with tick marks on the axes and variable labels on them.
The prompt above was compiled from the original drawing commands and is for reference only.