300 likes | 311 Views
This doctoral dissertation explores the concept of numerical quality in software, specifically focusing on the functional stability analysis of numerical algorithms. It discusses the challenges and approaches in determining numerical quality, such as maximizing the ratio of forward error to condition number. Various algorithms, including Nelder Mead Simplex and Subplex, are utilized to identify unstable algorithms and estimate backward error.
E N D
How Can We Determine Numerical Quality in Software? The Doctoral Dissertation of Thomas Rowan
Thomas Harvey Rowan: “Functional Stability Analysis Of Numerical Algorithms” Doctoral Dissertation Department of Computer Sciences The University of Texas at Austin 1990
What is meant by numerical quality? The computed solution (i.e. the output) is the exact solution to a close problem (i.e. having slightly different input)
What is meant by numerical quality? The computed solution (i.e. the output) is the exact solution to a close problem (i.e. having slightly different input) This is called “numerical stability”
Input: a pair of lines in the plane Output: the intersection (if any)
This is what we seek: A poor solution to a well conditioned problem
? ? Notice the difficulty: We have to guarantee that the approximate solution is not the solution to ANY close problem
Idea: Search the input space attempting to maximize the ratio of the forward error to the condition number.
Idea: Search the input space attempting to maximize the ratio of the forward error to the condition number. Details, details: How do you get the forward error? How do you get the condition number?
Would you like to find the maximum of this?
Nelder Mead Simplex Algorithm: The crawling spider
high high high high
Simplex difficulties: • Huge use of storage (n2) • Equivalent weight to all variables
Simplex difficulties: • Huge use of storage (n2) • Equivalent weight to all variables Subplex: Determine small subspaces likely to be most useful for determining minimum
The idea is to use the Subplex Algorithm to locate minima of (the negative of) the backward error INSTAB SUBPLEX Backward Error code code extra precision
Does it work? • Tried on known unstable algorithms • Tried on known stable algorithms • Tried on unknown algorithms
Does it work? • Tried on known unstable algorithms Identified all as unstable • Tried on known stable algorithms Found no false positives • Tried on unknown algorithms Discovered unstable algorithms
Anything left to do? • Two papers to write • Translation into C++ or Matlab • More experiments • Refinements to INSTAB or SUBPLEX