Intersection of Two Parametric Curves via Implicit Curves with Graphical and Num

Intersection of Two Parametric Curves via Implicit Curves with Graphical and Num
Loading the math board and drawing, please wait…
2017-02-06 23:41
① This example demonstrates how to find all intersection points of two parametric curves by converting them into corresponding implicit curves, then using GeoGebra's CAS capabilities for both graphical and numerical solutions. ② Core mathematical concepts include parametric curves, implicit curves, intersection solving, numerical computation (CAS), and geometric visualization. ③ Construction highlights: from the summary, commands such as ImplicitCurve, Intersect, PolyLine, Point, PathParameter, ClosestPoint, Sequence, Zip, TableText are used; objects include sliders (r_a, r_b), text fields, and dynamic lists (listxyres1) to manage results. ④ Suitable for advanced high school or undergraduate courses in analytic geometry and calculus, as well as for mathematical experimentation, helping students understand the relationship between parametric and implicit representations and numerical solution techniques.

GeoGebra Commands & Parameters

  1. ImplicitCurve(f1(x, y)) → a
  2. Intersect(Circle[D, r_a], OrthogonalLine[D, Segment[D, ClosestPoint[a, D]]], 2) → Hzz2
  3. ImplicitCurve(f2(x, y)) → b
  4. Intersect(Circle[D, r_b], OrthogonalLine[D, Segment[D, ClosestPoint[b, D]]], 1) → Z1_b
  5. Intersect(Circle[D, r_b], OrthogonalLine[D, Segment[D, ClosestPoint[b, D]]], 2) → Z2_b
  6. Intersect(Circle[D, r_a], OrthogonalLine[D, Segment[D, ClosestPoint[a, D]]], 1) → Z1_a
  7. PolyLine(Zip[ClosestPoint[b, B], B, Z1_b + ((Z2_b - Z1_b) / n_b * Sequence[i, i, 0, n_b])]) → polZb
  8. PolyLine(Zip[ClosestPoint[a, B], B, Z1_a + ((Z2_a - Z1_a) / n_a * Sequence[i, i, 0, n_a])]) → polZa
  9. Element({Intersect[polZa, polZb]}, 1) → PZ
  10. Point(a) → B_a
  11. PathParameter(B_a) → Pf1B
  12. Textfield(Nn) → InputBox4
  13. Textfield(e) → InputBox5
  14. Textfield(x_{min}) → InputBox6
  15. Textfield(x_{max}) → InputBox7
  16. Textfield(y_{min}) → InputBox8
  17. Textfield(y_{max}) → InputBox9
  18. Polygon((x_{min}, y_{min}), (x_{max}, y_{min}), (x_{max}, y_{max}), (x_{min}, y_{max})) → poly1, g1_s, g2_s, g3_s, s4_s
  19. Textfield(α) → InputBox2
  20. Length(lr1) → llr1
  21. Length(lf2) → llf2
  22. Textfield(r) → InputBox16
  23. CurveCartesian(fa_x(u), fa_y(u), u, x_{min}, x_{max}) → a_c
  24. CurveCartesian(fb_x(v), fb_y(v), v, y_{min}, y_{max}) → b_c
  25. Element(lr1, i_{manual}) → C_t
  26. Element(lgr2_bscan, f) → B_{xy}
  27. Length(lf1) → llf1
  28. Textfield(fa_x) → InputBox17
  29. Textfield(fa_y) → InputBox18
  30. Textfield(fb_x) → InputBox19
  31. Textfield(fb_y) → InputBox20
  32. Textfield(n_a) → InputBox21
  33. Textfield(n_b) → InputBox22
  34. Textfield(r_a) → InputBox23
  35. Textfield(q) → InputBox24
  36. PolyLine(Z1_a + ((Z2_a - Z1_a) / n_a * Sequence[i, i, 0, n_a])) → poly2_aa
  37. PolyLine(Z1_b + ((Z2_b - Z1_b) / n_b * Sequence[i, i, 0, n_b])) → poly2_bb
  38. Point(poly2_aa, e1) → R_a
  39. Point(poly2_bb, e2) → R_b
  40. ClosestPoint(a, R_a) → R'_a
  41. ClosestPoint(b, R_b) → R'_b
  42. Length(R'_a - R'_b) → dmaxmins2
  43. If(Defined[PZ], If[fza2 < fzb2, (f1za2, f2za2), (f1zb2, f2zb2)], (NaN, NaN)) → errorz2
  44. If(Defined[PZ], If[fza2 < fzb2, R'_a, R'_b], (NaN, NaN)) → Pz2
  45. If(ca, PZ, Pz2) → PZ0
  46. If(ca, f11, x(errorz2)) → f110
  47. If(ca, f22, y(errorz2)) → f220
  48. Textfield(r_b) → InputBox13
  49. Textfield(α) → InputBox11
  50. Element(roots0, f) → A
  51. Sequence((fa_x(x(Element[lr1, i])), fa_y(x(Element[lr1, i]))), i, 1, llr1) → lgr2_a
  52. Sequence((fb_x(y(Element[lr1, i])), fb_y(y(Element[lr1, i]))), i, 1, llr1) → lr2_b
  53. Zip((((abs(x(a - b) / x(a)) * 100), (abs(y(a - b) / y(a)) * 100)) * 1000000000), a, lgr2_a, b, lr2_b) → lgr2
  54. Element(lgr2_a, i_{manual}) → Cxy_t
  55. Textfield(t) → InputBox1
  56. Textfield(f) → InputBox3
  57. Textfield(i_{manual}) → Eingabefeld1
  58. Textfield(q2) → Eingabefeld2
  59. ImplicitCurve(f01(x, y)) → c
  60. If(Length[listxyres1] ≟ 0 ∨ (i > m1), F, Element[listxyres1, i]) → B
  61. Length(lr2) → llr2
  62. TableText({Join[{{"N"}, Sequence[i, i, 1, Length[roots0]]}], Join[{{""}, Sequence["→", i, 1, f]}], Join[{{" u:"}, x(roots0)}], Join[{{" v:"}, y(roots0)}], Join[{{"f1*10^-9"}, lf1_{Pr}2}], Join[{{"f2* 10^-9"}, lf2_{Pr}2}]}, "vr") → Text2
  63. TableText({Join[{{"N"}, Sequence[i, i, 1, Length[roots0]]}], Join[{{""}, Sequence["→", i, 1, f]}], Join[{{"(x,y)_a"}, lgr2_ascan}], Join[{{"(x,y)_b"}, lgr2_bscan}], Join[{{"(δx,δy) %*10^-9"}, lgr2scan}]}, "vr") → text12a
  64. TableText({Join[{{"N"}, Sequence[i, i, 1, llr1]}], Join[{{""}, Sequence["→", i, 1, i_{manual}]}], Join[{{"u:"}, x(lr1)}], Join[{{"v:"}, y(lr1)}], Join[{{"f1* 10^-9"}, lf1}], Join[{{"f2* 10^-9"}, lf2}]}, "vr") → text8
  65. Intersect(Circle[D, r_a], OrthogonalLine[D, Segment[D, ClosestPoint[a, D]]], 1) → Hzz1
  66. TableText({Join[{{"N"}, Sequence[i, i, 1, llr1]}], Join[{{""}, Sequence["→", i, 1, i_{manual}]}], Join[{{"(x,y)_a"}, lgr2_a}], Join[{{"(x,y)_b"}, lr2_b}], Join[{{"(δx,δy) %*10-9"}, lgr2}]}, "vr") → text12r
  67. Textfield(v_i) → InputBox10

AI Drawing Prompt Reference

Draw the intersection points of two parametric curves by first converting them into implicit curves. Use sliders to adjust parameters and observe changes in intersection points. Draw paths of intersection points and display their coordinates. Set the coordinate axis range and show the parametric equations of the curves.
The prompt above was compiled from the original drawing commands and is for reference only.