隐式曲线交点求解方法演示

隐式曲线交点求解方法演示
几何画板及绘图内容加载中,请稍等……
2016-12-18 19:02
本范例演示了两种求解两个隐式曲线交点的方法。涉及的核心数学概念包括隐式曲线方程、交点求解、解析几何等。作图要点使用了 GeoGebra 命令如 ImplicitCurve, Intersect, PolyLine, Element, Textfield, Polygon, Length, Point, ClosestPoint, If, Corner, TableText 等。适合高中及以上数学学习者,用于理解隐式曲线交点的计算与可视化。

GeoGebra 命令及参数

  1. ImplicitCurve(f1(x, y)) → a
  2. Intersect(Circle[D, r_a], OrthogonalLine[D, Segment[D, ClosestPoint[a, D]]], 2) → Z2_a
  3. Intersect(Circle[D, r_a], OrthogonalLine[D, Segment[D, ClosestPoint[a, D]]], 1) → Z1_a
  4. PolyLine(Zip[ClosestPoint[a, B], B, Z1_a + ((Z2_a - Z1_a) / n_a * Sequence[i, i, 0, n_a])]) → polZa
  5. ImplicitCurve(f2(x, y)) → b
  6. Intersect(Circle[D, r_b], OrthogonalLine[D, Segment[D, ClosestPoint[b, D]]], 1) → Z1_b
  7. Intersect(Circle[D, r_b], OrthogonalLine[D, Segment[D, ClosestPoint[b, D]]], 2) → Z2_b
  8. PolyLine(Zip[ClosestPoint[b, B], B, Z1_b + ((Z2_b - Z1_b) / n_b * Sequence[i, i, 0, n_b])]) → polZb
  9. Element({Intersect[polZb, polZa]}, 1) → PZ
  10. Textfield(Nn) → InputBox4
  11. Textfield(e) → InputBox5
  12. Textfield(x_{min}) → InputBox6
  13. Textfield(x_{max}) → InputBox7
  14. Textfield(y_{min}) → InputBox8
  15. Textfield(y_{max}) → InputBox9
  16. 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
  17. Length(lr1) → llr1
  18. Length(lf2) → llf2
  19. Textfield(r) → InputBox16
  20. Element(lr1, i_{manual}) → C_t
  21. Length(lf1) → llf1
  22. Textfield(n_a) → InputBox21
  23. Textfield(n_b) → InputBox22
  24. Textfield(r_a) → InputBox23
  25. Textfield(q) → InputBox24
  26. PolyLine(Z1_a + ((Z2_a - Z1_a) / n_a * Sequence[i, i, 0, n_a])) → poly2_aa
  27. PolyLine(Z1_b + ((Z2_b - Z1_b) / n_b * Sequence[i, i, 0, n_b])) → poly2_bb
  28. Point(poly2_aa, e1) → R_a
  29. Point(poly2_bb, e2) → R_b
  30. ClosestPoint(a, R_a) → R'_a
  31. ClosestPoint(b, R_b) → R'_b
  32. Length(R'_a - R'_b) → dmaxmins2
  33. If(Defined[PZ], If[fza2 < fzb2, (f1za2, f2za2), (f1zb2, f2zb2)], (NaN, NaN)) → errorz2
  34. If(Defined[PZ], If[fza2 < fzb2, R'_a, R'_b], (NaN, NaN)) → Pz2
  35. If(ca, PZ, Pz2) → PZ0
  36. If(ca, f11, x(errorz2)) → f110
  37. If(ca, f22, y(errorz2)) → f220
  38. Element(listxyres, f) → B_t
  39. Textfield(r_b) → InputBox13
  40. Element(roots0, f) → A
  41. Textfield(f1) → InputBox1
  42. Textfield(f2) → InputBox3
  43. Corner(1) → Corner1
  44. Corner(2) → Corner2
  45. Corner(3) → Corner3
  46. Textfield(t) → InputBox10
  47. Length(listxyres) → lä2
  48. TableText({Join[{{"N"}, Sequence[i, i, 1, Length[roots0]]}], Join[{{"N"}, Sequence["→", i, 1, f]}], Join[{{" x:"}, x(roots0)}], Join[{{" y:"}, y(roots0)}], Join[{{"f1*10^-6"}, lf1_{Pr}2}], Join[{{"f2* 10^-6"}, lf2_{Pr}2}]}, "vr") → Text2
  49. ImplicitCurve(f01(x, y)) → c
  50. Textfield(α) → InputBox11
  51. TableText({Join[{{"N"}, Sequence[i, i, 1, llr1]}], Join[{{""}, Sequence["→", i, 1, i_{manual}]}], Join[{{"x:"}, x(lr1)}], Join[{{"y:"}, y(lr1)}], Join[{{"f1* 10^-6"}, lf1}], Join[{{"f2* 10^-6"}, lf2}]}, "vr") → text8
  52. Textfield(i_{manual}) → Eingabefeld1
  53. Textfield(f) → Eingabefeld2