Fermat's Calculus Insight

Fermat's Calculus Insight
Loading the math board and drawing, please wait…
2019-05-16 12:31
This example dynamically demonstrates Fermat's approach to working with differentials and tangents. By adjusting parameters, you can observe changes in the tangents of different functions. The example involves core calculus concepts such as derivatives and tangents. It uses GeoGebra commands like Point, Tangent, Intersect, Min, Dilate, Vector, Segment, Circle, Angle, Rotate, CircleSector, Translate, Polygon, etc. Suitable for high school and above students learning calculus.

GeoGebra Commands & Parameters

  1. Point(c) → A
  2. Tangent(A, c) → f,
  3. Intersect(f_1, Line[D, C]) → N
  4. Intersect(f, xAxis) → B
  5. Min(Distance[B, E], Distance[N, C]) → o
  6. Dilate(E, If[0 < b ≤ 1, 1 - b, 0], A) → E'
  7. Dilate(D, If[0 < b ≤ 1, 1 - b, 0], C) → D'
  8. Vector(E, E') → u
  9. Vector(D, D') → v
  10. Dilate(B, If[1 < b ≤ 2, 2 - b, 0], E) → B'
  11. Segment(B, B') → g
  12. Dilate(E, If[2 < b ≤ 3, 3 - b, 0], D) → E'_1
  13. Segment(E, E'_1) → h
  14. Circle(A, (0.4 * Distance[A, E])) → e
  15. Circle(B, (0.6 * o)) → d
  16. Intersect(d, xAxis) → F, G
  17. Angle(D, B, C) → α
  18. Rotate(G, If[3 < b ≤ 4, ((b - 3) * α), α], B) → G'
  19. CircleSector(B, G, G') → k
  20. Intersect(e, f) → H, I
  21. Rotate(H, If[4 < b ≤ 5, ((b - 4) * (π / 2 - α)), π / 2 - α], A) → H'
  22. CircleSector(A, H, H') → q
  23. Dilate(A, If[6 < b ≤ 7, 7 - b, 0], C) → A'
  24. Vector(A, A') → w
  25. Translate(q, w) → q'
  26. Dilate(B, If[5 < b ≤ 6, 6 - b, 0], E) → B'_1
  27. Intersect(f, i) → J
  28. Polygon(B, B'_1, J) → t1, j, b_1, b'_1
  29. Translate(A, (0, (-Distance[A, E]) - 2)) → A'_1
  30. Translate(E, (0, (-Distance[A, E]) - 2)) → E'_2
  31. Intersect(xAxis, m) → K
  32. Polygon(E, K, A', A) → q1, e_1, k_1, a', a_1
  33. Dilate(A, If[8 < b ≤ 9, 9 - b, 0], A'_1) → A'_2
  34. Vector(A, A'_2) → n
  35. Translate(B, n) → B'_2
  36. Translate(B'_1, n) → L
  37. Translate(J, n) → J'
  38. Polygon(B'_2, L, J') → t1', j', b'_2, l_1
  39. Translate(B, n) → B'_3
  40. Translate(B', n) → B''
  41. Segment(B'_3, B'') → g'
  42. Translate(k, n) → k'
  43. Translate(q, n) → q'_1
  44. Segment(A'_2, B'_2) → r
  45. Vector(B'', A'_2) → s
  46. Dilate(E, If[9 < b ≤ 10, 10 - b, 0], B) → E'_3
  47. Intersect(f, t) → M
  48. Polygon(E'_3, E, A, M) → q2, e'_3, e_2, a_2, m_1
  49. Translate(k, Vector[B]) → k'_1
  50. Dilate(A, If[11 < b ≤ 12, 12 - b, 0], N) → A'_3
  51. Dilate(B, If[11 < b ≤ 12, 12 - b, 0], A) → B'_4
  52. Vector(B, B'_4) → u_1
  53. Translate(k, u_1) → k'_2
  54. Segment(A, A'_3) → g_1
  55. Polygon(A, N, C) → t2, c_1, a_3, n_1
  56. Dilate(B'', If[13 < b ≤ 14, 14 - b, 0], D) → B'''
  57. Vector(B'', B''') → v_1
  58. Translate(A'_2, v_1) → O
  59. Vector(B''', O) → w_1
  60. Dilate(N, If[14 < b ≤ 15, 15 - b, 0], C) → N'
  61. Vector(N, N') → d_1