= Numerical analysis
{wiki}
Numerical analysis designs <algorithms> that approximate mathematical answers while controlling cost and error. Its central question is how much of a computed answer can be trusted. Finding a <zero of a function>, evaluating an <integral>, solving a <linear system>, and evolving an <ordinary differential equation> all demand choices about accuracy, work, and the information available. MIT's numerical-methods course explicitly treats performance and accuracy as joint concerns.https://ocw.mit.edu/courses/18-335j-introduction-to-numerical-methods-spring-2019/pages/week-1/[Steven G. Johnson, MIT 18.335J, Week 1, 2019]{ref}
Three questions organize error analysis. <Truncation error> measures the approximation introduced by an <algorithm> even in exact arithmetic; <roundoff error> comes from finite precision; the <condition number> measures sensitivity inherent in the problem. <Numerical stability> asks how the chosen <algorithm> propagates perturbations. These distinctions suggest different remedies: refine an approximation, change precision or arithmetic, or improve the accuracy of the input.
For example, the <square root> $s(a)=\sqrt a$ has relative <condition number> $|as'(a)/s(a)|=1/2$ for $a>0$: a small relative change in $a$ produces about half that relative change in $s(a)$. In contrast, $g(a)=1/(1-a)$ has relative <condition number> $|a/(1-a)|$. Changing $a=0.99$ to $0.9901$ changes $g(a)=100$ to about $101.010101$: an input change of about $0.0101\%$ produces an output change of about $1.0101\%$. This sensitivity exists even with exact arithmetic. MIT's conditioning lecture separates the <condition number> from <roundoff error> in precisely this way.https://ocw.mit.edu/courses/18-335j-introduction-to-numerical-methods-spring-2019/pages/week-2/[Steven G. Johnson, MIT 18.335J, Lecture 5: Condition Numbers, 2019]{ref}
Back to article page