FREE HISTORICAL FIGURES OF COMPUTING PROFILE

al-Khwārizmī

~780–850 · Mathematician and astronomer

Muḥammad ibn Mūsā al-Khwārizmī

Al-Khwārizmī worked in the scholarly environment of Abbasid Baghdad in the early ninth century, under the patronage of al-Maʾmūn. His conventional lifetime is about 780–850 CE, but personal details are sparse. His name does not establish a precise birthplace or a complete account of his ancestry. MacTutor discusses conflicting interpretations of the biographical evidence.

The word algorithm developed from the Latinized form of his name, while algebra derives from al-jabr in the title of his algebraic work. That linguistic history does not imply that he invented the first mathematical procedure. The valuable contribution to study here is his organized treatment of classes of equations, with procedures and geometric explanations.

A classification with explicit restrictions

The algebra is written in words. Modern expressions such as x² + bx = c are explanatory notation, not the symbols on his page. With positive coefficients and quantities, the opening treatment distinguishes six forms:

Modern notationDescription
ax² = bxSquares equal roots
ax² = cSquares equal a number
bx = cRoots equal a number
ax² + bx = cSquares and roots equal a number
ax² + c = bxSquares and a number equal roots
bx + c = ax²Roots and a number equal squares

This is not a classification of every equation of every degree, nor a modern specification accepting arbitrary signed or complex inputs. The separation into cases reflects the treatment of positive terms. The primary discussion also recognizes an impossible case and a repeated-root case; it does not promise a positive solution for every set of coefficients. Rosen's translation of the opening compendium.

Worked mechanism: preserve the equation while changing its form

Consider this original example, written in modern notation:

2x² + 12x = 32
x² + 6x = 16
x² + 6x + 9 = 25
(x + 3)² = 25

The first step divides both sides by the nonzero coefficient 2. The second adds the same quantity to both sides. The last uses the identity (x+3)² = x²+6x+9. Each transformation preserves the set of real solutions.

If x is required to be positive, x+3 is positive, so x+3 = 5 and x = 2. Checking the original gives 2*4 + 12*2 = 32. Over all real numbers there is another branch: x+3 = -5, giving x = -8. Substitution verifies that too. The domain determines whether the second answer belongs in the result.

A geometric version starts with a square of side x and attaches two rectangles of dimensions x by 3 on adjacent sides. A corner square of side 3 completes a square of side x+3. Its area is 25. This construction assumes positive lengths and makes one solution visible; it is not a diagram of a negative length -8.

The combination of a procedure and a domain-sensitive explanation is the lesson. A correct calculation is not yet a complete solver specification until it says what inputs are allowed and which outputs count as solutions.

Two roots, one root, or no real roots

For the modern form x² + c = bx, completing the square gives:

(x - b/2)² = b²/4 - c

If the right side is positive, there are two distinct real roots. If it is zero, there is one repeated root. If it is negative, there is no real root. Rosen's translation explicitly discusses the corresponding distinctions for the historical positive-quantity case. The source's example has two positive answers; our equations below use different numbers.

For x² + 12 = 8x, the right side is 4, so x = 4±2, yielding 2 and 6. For x² + 16 = 8x, the only real answer is 4. For x² + 20 = 8x, the right side is -4, which no real square can equal.

Squaring or multiplying by an expression can introduce further hazards. Multiplying an equation by zero loses information, and squaring both sides may introduce extraneous candidates. Transformation rules need justification; a solver should verify candidate answers against the original relation.

Procedures, representation, and transmission

Al-Khwārizmī also wrote about calculation with Indian numerals; the history of its Latin transmission helps explain his name's linguistic legacy. Positional notation supports convenient uniform algorithms, but arithmetic was not impossible in other representations. A numeral system and a procedure are different things. An integer can be encoded in decimal, binary, a tally, or another format, and an algorithm can be specified independently of any one notation.

The 1831 translation's contents also show applications to mercantile calculation, mensuration, and legacies. A catalogue of practical purposes is stronger evidence than an invented anecdote about his schooling or a speculative chain from every later programmer to a particular manuscript.

Exercises

  1. Solve 3x² + 18x = 48 by completing the square. Give both the positive-domain answer and the full real solution set, then verify each candidate.
  2. For x² + c = 10x, classify the number of positive real solutions for c = 9, 25, and 30. Explain each result without merely quoting a formula.
  3. A program solves x² = 5x by dividing by x and returning 5. Audit its completeness over the real numbers. Repair the procedure and identify the condition under which the original step is valid.
Compare your reasoning with the worked solutions

1. Complete and verify

Divide by 3 to obtain x²+6x=16; add 9 to obtain (x+3)²=25. Thus the real solutions are 2 and -8, with only 2 admitted under a positive-domain requirement. Direct substitution gives 3*4+18*2=48 and 3*64+18*(-8)=48. Keeping both branches is necessary when the domain is all reals.

2. Classify by a square

The transformed equation is (x-5)²=25-c. At c=9, this is 16, so x=1 or 9. At c=25, it is zero, so x=5. At c=30, it is negative, so no real solution exists. Both roots in the first case are positive; this needs checking separately from their existence.

3. Do not divide away a solution

x=0 satisfies the original equation, so the program is incomplete. Rewrite it as x(x-5)=0. Over the reals, a product is zero only if at least one factor is zero, giving x=0 or x=5. Division by x is valid only after assuming x != 0; a complete solver handles the excluded case separately.

Sources