A Hindu Square Root Algorithm: Geometric Demonstration by Cutting Squares

A Hindu Square Root Algorithm: Geometric Demonstration by Cutting Squares
Loading the math board and drawing, please wait…
2016-04-08 23:21
This example demonstrates an ancient Hindu algorithm for finding square roots, which can be physically performed by cutting down a square. It illustrates how successive geometric adjustments to a square's side length converge to the square root of a given number. Core mathematical concepts include square roots, rational approximation, linear equations, and geometric dilation. The construction uses GeoGebra commands such as Intersect, Polygon, Textfield, and Segment, creating multiple polygons (poly1 to poly4) with side variables (a, b, c, d, etc.), along with objects like Guess1, NextGuess, and InputBox1/InputBox2 for user input. Text fields (text1-3) display the iterative steps. This is suitable for middle or high school mathematics, or for history of mathematics lessons, helping students visualize iterative approximation and the connection between geometry and arithmetic.

GeoGebra Commands & Parameters

  1. Intersect(xAxis, yAxis) → A
  2. Polygon(A, (Guess1, 0), 4) → poly1, a, b, c, d, B, C
  3. Polygon(A, (Guess2, 0), 4) → poly2, e, f, g, n, D, E
  4. Polygon(A, (Guess3, 0), 4) → poly3, h, i, j, p, F, G
  5. Polygon(A, (Guess4, 0), 4) → poly4, k, l, m, q, H, I
  6. Textfield(Guess1) → InputBox1
  7. Textfield(N) → InputBox2
  8. Polygon(A, (Guess5, 0), 4) → poly5, r, s, t, a_1, J, K
  9. Polygon(A, (Guess6, 0), 4) → poly6, b_1, c_1, d_1, e_1, L, M
  10. Segment((Guess2, 0), (Guess2, Guess1)) → f_1
  11. Segment((Guess3, 0), (Guess3, Guess2)) → g_1
  12. Segment((Guess4, 0), (Guess4, Guess3)) → h_1
  13. Segment((Guess5, 0), (Guess5, Guess4)) → i_1
  14. Segment((Guess6, 0), (Guess6, Guess5)) → j_1
  15. Segment((0, Guess2), (Guess1, Guess2)) → k_1
  16. Segment((0, Guess3), (Guess2, Guess3)) → l_1
  17. Segment((0, Guess4), (Guess3, Guess4)) → m_1
  18. Segment((0, Guess5), (Guess4, Guess5)) → n_1
  19. Segment((0, Guess6), (Guess5, Guess6)) → p_1