A circular reference is a chain of references that circles back to the original object. In spreadsheets it is a string of 1 or more formulas, each formula referencing the next formula, and the last one referencing the first formula. The problem is how to compute the formulas. By default, such a set of formulas is considered an error, and the values returned by all the formulas in the circular reference are error values. An alternative approach is to find a solution, such that the formulas compute a consistent set of results (to a certain precision). Not all sets of circular references will have a solution. Iterative calculation is a method that can find such solutions.
Walter Feigenson has reported that iterative calculations were introduced in an early spreadsheet program to cover up some problems converting a decimal based spreadsheet to a binary based spreadsheet. It was soon discovered that iterative calculations could also be used to solve circular references and goal seek type problems.