The correctness of numerical algorithms

  • Authors:
  • T. E. Hull;W. H. Enright;A. E. Sedgwick

  • Affiliations:
  • Department of Computer Science, University of Toronto;Department of Computer Science, University of Toronto;Department of Computer Science, University of Toronto

  • Venue:
  • Proceedings of ACM conference on Proving assertions about programs
  • Year:
  • 1972

Quantified Score

Hi-index 0.02

Visualization

Abstract

Structured programming and the use of assertions are two basic techniques needed in organizing proofs of the correctness of algorithms. These techniques can be combined with theorems in numerical analysis to produce proofs of the correctness of numerical algorithms. A simple algorithm for finding the sum of n numbers is first used to show how assertions can be modified to take account of the effect of roundoff. A so-called backward error analysis then leads to a proof that the algorithm is correct in the sense that it produces exact results for slightly perturbed problems. Alternative points of view are possible, and one of the distinguishing features of numerical algorithms is that there usually are a number of different senses in which one might want to prove them correct. Two other more substantial algorithms, one for solving linear algebraic equations and one for solving differential equations, are then used to show how structured programming and the use of assertions can be combined with error analyses of fairly complicated numerical processes to provide proofs of correctness. One of these algorithms involves roundoff error while the other is affected primarily by truncation error.