Last Updated June 15, 2026
Stability, error, and convergence are the core review concepts that determine whether numerical model results can be trusted as computations. A continuous model may begin with calculus, differential equations, state variables, rates, and flows, but once it is solved numerically, the result depends on step size, solver method, tolerance settings, rounding behavior, stiffness, discretization, and diagnostic review.
In systems modeling, numerical outputs often become trajectories, scenarios, dashboards, figures, policy comparisons, or decision-support evidence. That makes numerical reliability a governance issue. A model can be mathematically well-formed but numerically unstable. A solver can converge numerically while the model remains empirically uncertain. A graph can look smooth while hiding accumulated error or fragile assumptions.
This article introduces stability, error, and convergence in numerical modeling, including local error, global error, truncation error, round-off error, consistency, stability, convergence testing, step-size refinement, solver diagnostics, stiffness warnings, reproducible workflows, and responsible interpretation.

Numerical modeling translates mathematical structure into computed outputs. That translation is never neutral. A method approximates a continuous process with discrete steps. A solver controls error according to rules. A computer represents numbers with finite precision. A visualization displays selected outputs on selected scales. Each layer can clarify or distort the model.
Stability asks whether numerical behavior remains controlled. Error asks how far the computation may be from the intended mathematical solution. Convergence asks whether the numerical result approaches the correct solution as the discretization is refined. Together, these concepts help modelers decide whether a result is a reliable computation or an artifact of the numerical workflow.
Why Stability, Error, and Convergence Matter
Numerical methods approximate continuous mathematics. They replace exact processes with discrete computations: time steps, grids, iterations, tolerances, finite precision, and stopping rules. Stability, error, and convergence help evaluate whether those approximations are behaving responsibly.
\text{computed result}=\text{model structure}+\text{numerical method}+\text{solver settings}+\text{finite precision}
\]
Interpretation: A numerical result is produced by both the mathematical model and the computational workflow used to approximate it.
For systems modeling, this matters because numerical outputs may be interpreted as evidence of system behavior. A population curve, climate pathway, infection trajectory, infrastructure stress estimate, or economic adjustment path can look authoritative even when the numerical method is unstable, under-resolved, or poorly diagnosed.
| Concept | Core question | Systems modeling concern |
|---|---|---|
| Error. | How far is the computed result from the intended mathematical solution? | A result may be precise-looking but numerically inaccurate. |
| Stability. | Do small numerical disturbances remain controlled? | A model may show explosive behavior because the method is unstable. |
| Convergence. | Does the numerical solution approach the intended solution as resolution improves? | Outputs should stabilize under step-size or grid refinement. |
| Diagnostics. | What evidence supports numerical reliability? | Solver warnings, residuals, and benchmark tests should be preserved. |
The goal is not to eliminate all error. The goal is to understand, reduce, document, and interpret error responsibly.
Error in Numerical Modeling
Error is the difference between a computed quantity and the quantity the computation is intended to approximate. In numerical modeling, there are several kinds of error, and they should not be confused.
e_h(t)=x_h(t)-x(t)
\]
Interpretation: Numerical error compares the approximate solution \(x_h(t)\) to the intended mathematical solution \(x(t)\).
When the exact solution is unavailable, modelers often use benchmark cases, refined step sizes, alternative solvers, conservation checks, or residual diagnostics to estimate whether error is controlled.
| Error type | Meaning | Review response |
|---|---|---|
| Discretization error. | Error from replacing a continuous process with discrete steps or grids. | Refine step size or grid resolution. |
| Truncation error. | Error from cutting off an approximation after finite terms or steps. | Use higher-order methods or smaller steps. |
| Round-off error. | Error from finite-precision arithmetic. | Check conditioning, scaling, and precision. |
| Solver tolerance error. | Error allowed by adaptive solver controls. | Record and test absolute and relative tolerances. |
| Model error. | Mismatch between model structure and real system. | Do not treat numerical accuracy as empirical validity. |
A numerical audit should distinguish computational error from model uncertainty. A solver can accurately solve the wrong model.
Local Error and Global Error
Local error concerns the error introduced in a single step. Global error concerns the accumulated error over many steps.
\text{local error at step }n \approx x(t_{n+1})-\Phi_h(x(t_n))
\]
Interpretation: Local error compares one numerical step to the exact mathematical evolution over the same step.
\text{global error at }t_n \approx x(t_n)-x_n
\]
Interpretation: Global error compares the accumulated numerical solution to the intended solution at a given time.
A method with small local error can still produce large global error if errors accumulate, amplify, or interact with unstable dynamics.
| Error scale | Where it appears | Why it matters |
|---|---|---|
| Local error. | One time step, one grid cell, or one update. | Determines how much error each approximation introduces. |
| Global error. | Full simulation horizon. | Determines whether the final trajectory remains reliable. |
| Accumulated error. | Repeated updates. | Can grow even if each step looks small. |
| Amplified error. | Unstable or sensitive systems. | Can dominate long-run interpretation. |
In systems modeling, global error often matters most because interpretation usually depends on the trajectory, scenario endpoint, equilibrium, threshold crossing, or cumulative quantity.
Truncation Error and Round-Off Error
Truncation error comes from approximation. Round-off error comes from representing numbers with finite precision. Reducing one can sometimes expose the other.
\text{total numerical error}\approx \text{truncation error}+\text{round-off error}
\]
Interpretation: Numerical error often combines approximation error and finite-precision arithmetic error.
Using a smaller step size usually reduces truncation error, but it can increase the number of operations and make round-off accumulation more visible. This is one reason numerical modeling requires diagnostics rather than blind refinement.
| Error source | Common cause | Warning sign | Review response |
|---|---|---|---|
| Truncation error. | Step size too large or method too low-order. | Results change substantially under refinement. | Refine steps or compare higher-order methods. |
| Round-off error. | Finite precision and many operations. | Refinement stops improving results. | Check scaling, conditioning, and precision. |
| Cancellation error. | Subtracting nearly equal values. | Unexpected loss of significant digits. | Reformulate expression or rescale variables. |
| Conditioning error. | Problem highly sensitive to input perturbations. | Small input changes cause large output changes. | Analyze sensitivity and numerical conditioning. |
More computation is not always better. Better computation is documented, diagnosed, and appropriate for the problem.
Stability in Numerical Methods
Stability asks whether numerical errors remain controlled as the computation proceeds. An unstable numerical method can produce growing oscillations, artificial divergence, or unrealistic behavior even when the underlying model is well behaved.
y_{n+1}=R(h\lambda)y_n
\]
Interpretation: For a linear test problem, repeated numerical updates are controlled by an amplification factor \(R(h\lambda)\).
A simple stability condition is that the amplification factor should not repeatedly increase errors beyond control.
|R(h\lambda)|\leq 1
\]
Interpretation: Numerical stability often requires the update factor to keep perturbations from growing without bound.
| Stability type | Meaning | Systems modeling concern |
|---|---|---|
| Numerical stability. | Errors remain controlled under repeated computation. | Prevents artificial blow-up or spurious oscillation. |
| Model stability. | The mathematical system returns toward equilibrium after perturbation. | Describes system behavior, not solver behavior. |
| Solver stability region. | Step sizes and eigenvalues for which a method is stable. | Step size must fit the system’s time scales. |
| Stiffness-related stability. | Fast and slow dynamics create difficult stability constraints. | Explicit methods may require impractically small steps. |
Numerical stability and system stability are related but not identical. A stable system can be solved with an unstable method, producing misleading results. An unstable system can be solved accurately, producing real divergence implied by the model.
Convergence and Step-Size Refinement
Convergence asks whether a numerical solution approaches the intended mathematical solution as the step size or grid spacing decreases.
\lim_{h\to 0} x_h(t)=x(t)
\]
Interpretation: A convergent method approaches the exact mathematical solution as resolution improves.
In practice, the exact solution is often unknown. Modelers therefore compare results across step sizes, solver tolerances, or grid resolutions.
| Convergence check | How it works | What it can reveal |
|---|---|---|
| Step-size halving. | Run the model with \(h\), \(h/2\), and \(h/4\). | Whether results stabilize as steps shrink. |
| Grid refinement. | Increase spatial or temporal resolution. | Whether patterns persist under finer discretization. |
| Solver comparison. | Compare different methods or tolerance settings. | Whether conclusions depend on one solver. |
| Benchmark solution. | Compare to an analytic or manufactured solution. | Whether the implementation behaves as expected. |
| Invariant check. | Track conserved quantities or positivity constraints. | Whether numerical method violates model structure. |
Convergence does not mean the model is true. It means the numerical method appears to be approaching the intended mathematical model under refinement.
Consistency, Stability, and Convergence
Three ideas often appear together in numerical analysis: consistency, stability, and convergence.
| Concept | Core meaning | Practical question |
|---|---|---|
| Consistency. | The numerical method approximates the intended differential equation as step size shrinks. | Does the method represent the right equation locally? |
| Stability. | Numerical errors remain controlled during repeated updates. | Do small perturbations stay bounded? |
| Convergence. | The numerical solution approaches the intended solution under refinement. | Does the computed result approach the correct mathematical behavior? |
A method can be locally sensible but unstable. A stable method can still be inaccurate at coarse resolution. A convergent workflow requires both appropriate method structure and diagnostic evidence that refinement behaves as expected.
\text{consistency}+\text{stability}\longrightarrow \text{convergence}
\]
Interpretation: In many numerical settings, convergence depends on the method approximating the right problem and controlling error growth.
For model governance, this trio provides a helpful checklist: Is the method solving the intended problem? Is the computation stable? Do outputs improve under refinement?
Solver Diagnostics and Warning Signs
Solver diagnostics help identify when numerical behavior may be unreliable. Important models should preserve diagnostics alongside results.
Numerical Diagnostic Review
Refinement Check
Compare outputs across step sizes, grids, tolerances, or solvers.
Stability Check
Look for spurious oscillation, artificial growth, or step-size sensitivity.
Error Check
Compare to analytic, manufactured, or refined benchmark solutions when possible.
Constraint Check
Test positivity, conservation, bounds, or other structural requirements.
| Warning sign | Possible cause | Workflow response |
|---|---|---|
| Output changes sharply with smaller step size. | Under-resolution or instability. | Run convergence and solver comparison tests. |
| Unexpected oscillation appears. | Numerical instability or model feedback. | Distinguish method artifact from model behavior. |
| Solver takes very small steps. | Stiffness, discontinuity, or singular behavior. | Inspect stiffness and solver warnings. |
| State variables become negative when impossible. | Method violates constraints. | Check step size, method, and positivity-preserving alternatives. |
| Refinement no longer improves accuracy. | Round-off, conditioning, or implementation issue. | Review scaling, precision, and algorithm form. |
Diagnostics should not be hidden. They are part of the evidence that a numerical result deserves interpretation.
Systems Modeling Interpretation
In systems modeling, numerical reliability and substantive interpretation must be kept separate. A convergent numerical solution may still depend on uncertain assumptions. An unstable numerical result may not reflect real system instability. A small solver error may not matter for qualitative interpretation, while a small error near a threshold may matter greatly.
This means numerical review should be tied to the decision context. A teaching model may need transparent approximation. A policy model may need sensitivity analysis, convergence evidence, and uncertainty disclosure. A scientific model may need benchmark tests, reproducible code, and diagnostic records. An engineering model may need strict tolerance, stability, and safety margins.
The interpretive standard is not “the solver ran.” The stronger standard is: “the numerical workflow has been checked for error, stability, convergence, and interpretive limits.”
Mathematical Deepening
This section adds a more formal layer for mathematically advanced readers. Stability, error, and convergence in numerical modeling connect discretization, truncation error, local and global error, consistency, stability regions, eigenvalues, stiffness, conditioning, residuals, refinement studies, manufactured solutions, and reproducible solver governance.
Numerical Reliability Building Blocks
Discretization
The replacement of continuous time, space, or equations with finite steps or grids.
Error Estimate
A measure or proxy for the difference between numerical and intended solutions.
Stability Criterion
A condition that keeps perturbations or numerical errors from growing uncontrolled.
Convergence Test
A refinement procedure that checks whether results approach a stable limit.
Numerical Review Protocol
Benchmark
Compare with exact, manufactured, or highly refined reference solutions.
Refine
Reduce step size, grid size, or solver tolerance and compare outcomes.
Diagnose
Inspect residuals, warnings, solver steps, invariants, and constraints.
Document
Preserve settings, outputs, diagnostics, and interpretation warnings.
Numerical Governance
Method Record
Document algorithm, order, step size, tolerance, and solver software.
Error Record
Preserve benchmark errors, refinement tables, and approximation limits.
Stability Record
Record stability warnings, stiffness indicators, and constraint violations.
Claim Record
Separate numerical confidence from empirical or policy claims.
Examples from Systems Modeling
Stability, error, and convergence appear across continuous systems modeling workflows.
Population Dynamics
Step-size refinement checks whether growth or carrying-capacity behavior is numerical artifact or model behavior.
Epidemiological Models
Compartment models require positivity checks, solver diagnostics, and sensitivity to transition rates.
Climate Feedback
Long horizons make accumulated error, stiffness, scenario uncertainty, and convergence review especially important.
Resource Systems
Depletion and regeneration models can be sensitive near thresholds, scarcity boundaries, or collapse conditions.
Infrastructure Stress
Numerical instability can be confused with real cascade behavior unless diagnostics are preserved.
Spatial Dynamics
Grid resolution and stability conditions shape diffusion, transport, flow, and spatial accumulation models.
Across these examples, numerical reliability is part of responsible interpretation.
Computation and Reproducible Workflows
Computational workflows for numerical reliability should preserve more than final outputs. They should store step sizes, tolerances, solver method, benchmark values, refinement tables, error metrics, stability warnings, residuals, constraint checks, generated figures, and interpretation notes.
A reproducible workflow makes it possible to review whether a numerical result is stable, whether it improves under refinement, and whether the model claim is stronger than the computation supports.
Python Workflow: Error and Convergence Audit
The Python workflow below compares fixed-step RK4 approximations of exponential decay across step sizes and records convergence diagnostics against a known exact solution.
from __future__ import annotations
from dataclasses import asdict, dataclass
from pathlib import Path
import csv
import json
import math
@dataclass(frozen=True)
class ConvergenceRecord:
step_size: float
steps: int
solver_method: str
final_numeric_value: float
final_exact_value: float
final_absolute_error: float
error_ratio_to_previous: str
warning: str
def rate_function(t: float, y: float, decay_rate: float) -> float:
return -decay_rate * y
def exact_solution(t: float, y0: float, decay_rate: float) -> float:
return y0 * math.exp(-decay_rate * t)
def rk4_step(t: float, y: float, h: float, decay_rate: float) -> float:
k1 = rate_function(t, y, decay_rate)
k2 = rate_function(t + h / 2, y + h * k1 / 2, decay_rate)
k3 = rate_function(t + h / 2, y + h * k2 / 2, decay_rate)
k4 = rate_function(t + h, y + h * k3, decay_rate)
return y + (h / 6) * (k1 + 2 * k2 + 2 * k3 + k4)
def simulate(y0: float, decay_rate: float, h: float, stop_time: float) -> float:
steps = int(round(stop_time / h))
y = y0
for step in range(steps):
t = step * h
y = rk4_step(t, y, h, decay_rate)
return y
def convergence_audit() -> list[ConvergenceRecord]:
y0 = 100.0
decay_rate = 0.35
stop_time = 20.0
exact_final = exact_solution(stop_time, y0, decay_rate)
step_sizes = [1.0, 0.5, 0.25, 0.125]
previous_error = None
records: list[ConvergenceRecord] = []
for h in step_sizes:
numeric = simulate(y0, decay_rate, h, stop_time)
error = abs(numeric - exact_final)
ratio = "not_applicable" if previous_error is None else f"{previous_error / error:.4f}"
records.append(
ConvergenceRecord(
step_size=h,
steps=int(round(stop_time / h)),
solver_method="fixed_step_rk4",
final_numeric_value=numeric,
final_exact_value=exact_final,
final_absolute_error=error,
error_ratio_to_previous=ratio,
warning="Convergence evidence supports numerical reliability, not empirical validity."
)
)
previous_error = error
return records
records = convergence_audit()
output_dir = Path("outputs")
(output_dir / "tables").mkdir(parents=True, exist_ok=True)
(output_dir / "json").mkdir(parents=True, exist_ok=True)
(output_dir / "reports").mkdir(parents=True, exist_ok=True)
with (output_dir / "tables" / "convergence_audit.csv").open("w", newline="", encoding="utf-8") as handle:
writer = csv.DictWriter(handle, fieldnames=asdict(records[0]).keys())
writer.writeheader()
for record in records:
writer.writerow(asdict(record))
(output_dir / "json" / "convergence_audit.json").write_text(
json.dumps([asdict(record) for record in records], indent=2),
encoding="utf-8"
)
report_lines = [
"# Error and Convergence Audit",
"",
"This audit compares fixed-step RK4 results against an exact exponential-decay solution.",
"",
"| Step size | Steps | Final absolute error | Error ratio to previous |",
"|---:|---:|---:|---:|"
]
for record in records:
report_lines.append(
f"| {record.step_size} | {record.steps} | {record.final_absolute_error:.12e} | {record.error_ratio_to_previous} |"
)
report_lines.append("")
report_lines.append("Convergence evidence should be interpreted as numerical evidence, not empirical proof.")
(output_dir / "reports" / "convergence_audit.md").write_text(
"\n".join(report_lines) + "\n",
encoding="utf-8"
)
print("Wrote error and convergence audit outputs.")
This workflow produces a refinement table that helps distinguish stable numerical behavior from unsupported confidence.
R Workflow: Step-Size Refinement Table
The R workflow below produces a step-size refinement table for the same benchmark problem.
rate_function <- function(t, y, decay_rate) {
-decay_rate * y
}
exact_solution <- function(t, y0, decay_rate) {
y0 * exp(-decay_rate * t)
}
rk4_step <- function(t, y, h, decay_rate) {
k1 <- rate_function(t, y, decay_rate)
k2 <- rate_function(t + h / 2, y + h * k1 / 2, decay_rate)
k3 <- rate_function(t + h / 2, y + h * k2 / 2, decay_rate)
k4 <- rate_function(t + h, y + h * k3, decay_rate)
y + (h / 6) * (k1 + 2 * k2 + 2 * k3 + k4)
}
simulate_rk4 <- function(y0, decay_rate, h, stop_time) {
steps <- round(stop_time / h)
y <- y0
for (step in 0:(steps - 1)) {
t <- step * h
y <- rk4_step(t, y, h, decay_rate)
}
y
}
y0 <- 100
decay_rate <- 0.35
stop_time <- 20
exact_final <- exact_solution(stop_time, y0, decay_rate)
step_sizes <- c(1, 0.5, 0.25, 0.125)
records <- data.frame(
step_size = numeric(),
steps = integer(),
solver_method = character(),
final_numeric_value = numeric(),
final_exact_value = numeric(),
final_absolute_error = numeric(),
warning = character()
)
for (h in step_sizes) {
numeric_final <- simulate_rk4(y0, decay_rate, h, stop_time)
records <- rbind(
records,
data.frame(
step_size = h,
steps = round(stop_time / h),
solver_method = "fixed_step_rk4",
final_numeric_value = numeric_final,
final_exact_value = exact_final,
final_absolute_error = abs(numeric_final - exact_final),
warning = "Convergence evidence supports numerical reliability, not empirical validity."
)
)
}
records$error_ratio_to_previous <- c(
NA,
head(records$final_absolute_error, -1) / tail(records$final_absolute_error, -1)
)
dir.create("outputs/tables", recursive = TRUE, showWarnings = FALSE)
write.csv(
records,
"outputs/tables/r_step_size_refinement_audit.csv",
row.names = FALSE
)
print(records)
This workflow keeps the refinement evidence in a table rather than only displaying a final figure.
Haskell Workflow: Typed Numerical Audit Records
Haskell can represent numerical reliability checks as typed records, making it harder to separate results from method metadata.
module Main where
data NumericalAuditRecord = NumericalAuditRecord
{ stepSize :: Double
, solverMethod :: String
, diagnosticType :: String
, diagnosticResult :: String
, interpretationWarning :: String
} deriving (Show)
records :: [NumericalAuditRecord]
records =
[ NumericalAuditRecord
1.0
"fixed_step_rk4"
"step_size_refinement"
"baseline coarse step"
"Coarse numerical outputs should not be treated as verified."
, NumericalAuditRecord
0.5
"fixed_step_rk4"
"step_size_refinement"
"refined comparison"
"Refinement tests numerical behavior, not empirical validity."
, NumericalAuditRecord
0.25
"fixed_step_rk4"
"convergence_review"
"additional refinement"
"Convergence should be documented with assumptions and solver settings."
, NumericalAuditRecord
0.125
"fixed_step_rk4"
"diagnostic_review"
"fine refinement"
"Numerical confidence remains separate from model validity."
]
main :: IO ()
main =
mapM_ print records
The typed workflow treats convergence evidence as a structured record rather than an informal comment.
SQL Workflow: Numerical Reliability Registry
SQL can document numerical reliability assumptions when simulations support dashboards, reports, model reviews, or governance workflows.
CREATE TABLE numerical_reliability_registry (
reliability_key TEXT PRIMARY KEY,
reliability_name TEXT NOT NULL,
numerical_role TEXT NOT NULL,
systems_modeling_role TEXT NOT NULL,
review_warning TEXT NOT NULL
);
INSERT INTO numerical_reliability_registry VALUES
(
'local_error',
'Local error',
'Error introduced by one numerical step.',
'Helps evaluate step-level approximation quality.',
'Small local error can still accumulate into important global error.'
);
INSERT INTO numerical_reliability_registry VALUES
(
'global_error',
'Global error',
'Accumulated error across the simulation horizon.',
'Shapes interpretation of trajectories, endpoints, and thresholds.',
'Global error often matters more than a single-step estimate.'
);
INSERT INTO numerical_reliability_registry VALUES
(
'stability',
'Numerical stability',
'Controls whether numerical perturbations grow or remain bounded.',
'Helps distinguish solver artifact from system behavior.',
'Unstable methods can create artificial oscillation or blow-up.'
);
INSERT INTO numerical_reliability_registry VALUES
(
'convergence',
'Convergence',
'Checks whether outputs approach a stable result under refinement.',
'Supports confidence that the numerical method is approximating the intended model.',
'Convergence is not empirical validation.'
);
INSERT INTO numerical_reliability_registry VALUES
(
'roundoff',
'Round-off error',
'Error from finite-precision arithmetic.',
'Can matter in long simulations, ill-conditioned systems, or extreme scaling.',
'Smaller step sizes do not always improve results indefinitely.'
);
INSERT INTO numerical_reliability_registry VALUES
(
'diagnostics',
'Solver diagnostics',
'Record warnings, residuals, step behavior, and constraint checks.',
'Supports reproducible review of numerical reliability.',
'A completed solver run is not automatically a trustworthy result.'
);
SELECT
reliability_name,
numerical_role,
systems_modeling_role,
review_warning
FROM numerical_reliability_registry
ORDER BY reliability_key;
This registry ties numerical interpretation to local error, global error, stability, convergence, round-off, diagnostics, and review warnings.
GitHub Repository
The companion repository for this article is designed as a reproducible mathematical-modeling workspace. It supports error audits, convergence tables, step-size refinement workflows, RK4 benchmark comparisons, stability notes, diagnostic records, SQL governance tables, generated outputs, advanced mathematical audit reports, and reusable calculator scripts.
Complete Code Repository
Companion article folder with Python, R, Julia, SQL, Haskell, C, C++, Fortran, Rust, Go, notebooks, documentation, synthetic teaching data, generated outputs, schemas, Canvas-ready workflow artifacts, and reusable calculator scripts for stability, error, convergence, local error, global error, truncation error, round-off error, step-size refinement, solver diagnostics, convergence audits, numerical reliability governance, and responsible mathematical modeling.
Interpretive Limits and Responsible Use
Stability, error, and convergence help evaluate numerical reliability, but they do not make a model empirically valid. A computation can be stable, accurate, and convergent while still depending on incomplete assumptions, poor data, wrong parameters, omitted mechanisms, or inappropriate boundaries.
Responsible use requires documentation. Preserve solver method, step size, grid resolution, tolerances, parameter values, initial conditions, benchmark comparisons, refinement results, warnings, residuals, constraint checks, and interpretation notes. Use diagnostics before using numerical output to support strong claims. Distinguish numerical confidence from real-world evidence.
The central question is not only “Did the result converge?” It is “What did it converge to, under what assumptions, with what numerical evidence, and what claims can responsibly follow?”
Related Articles
- Calculus for Systems Modeling
- Visualization of Continuous Models
- Ordinary Differential Equation Solver Workflows
- Runge–Kutta Methods
- Euler’s Method
- Finite Difference Methods
- Stiff Systems and Computational Difficulty
- Parameter Sweeps and Sensitivity Analysis
- Scientific Computing for Systems Modeling
- Interpretation, Assumptions, and Responsible Mathematical Modeling
Further Reading
- Atkinson, K.E. (1989) An Introduction to Numerical Analysis. 2nd edn. New York: Wiley.
- Burden, R.L. and Faires, J.D. (2011) Numerical Analysis. 9th edn. Boston, MA: Brooks/Cole.
- Butcher, J.C. (2016) Numerical Methods for Ordinary Differential Equations. 3rd edn. Chichester: Wiley.
- Chapra, S.C. and Canale, R.P. (2015) Numerical Methods for Engineers. 7th edn. New York: McGraw-Hill Education.
- Hairer, E., Nørsett, S.P. and Wanner, G. (1993) Solving Ordinary Differential Equations I: Nonstiff Problems. 2nd edn. Berlin: Springer.
- Hairer, E. and Wanner, G. (1996) Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems. 2nd edn. Berlin: Springer.
- Heath, M.T. (2018) Scientific Computing: An Introductory Survey. 2nd edn. Philadelphia, PA: Society for Industrial and Applied Mathematics.
- Iserles, A. (2009) A First Course in the Numerical Analysis of Differential Equations. 2nd edn. Cambridge: Cambridge University Press.
- Quarteroni, A., Sacco, R. and Saleri, F. (2007) Numerical Mathematics. 2nd edn. Berlin: Springer.
- Massachusetts Institute of Technology (MIT) OpenCourseWare (2011) Introduction to Numerical Analysis. Cambridge, MA: MIT OpenCourseWare.
References
- Atkinson, K.E. (1989) An Introduction to Numerical Analysis. 2nd edn. New York: Wiley.
- Burden, R.L. and Faires, J.D. (2011) Numerical Analysis. 9th edn. Boston, MA: Brooks/Cole.
- Butcher, J.C. (2016) Numerical Methods for Ordinary Differential Equations. 3rd edn. Chichester: Wiley.
- Chapra, S.C. and Canale, R.P. (2015) Numerical Methods for Engineers. 7th edn. New York: McGraw-Hill Education.
- Hairer, E., Nørsett, S.P. and Wanner, G. (1993) Solving Ordinary Differential Equations I: Nonstiff Problems. 2nd edn. Berlin: Springer.
- Hairer, E. and Wanner, G. (1996) Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems. 2nd edn. Berlin: Springer.
- Heath, M.T. (2018) Scientific Computing: An Introductory Survey. 2nd edn. Philadelphia, PA: Society for Industrial and Applied Mathematics.
- Iserles, A. (2009) A First Course in the Numerical Analysis of Differential Equations. 2nd edn. Cambridge: Cambridge University Press.
- Quarteroni, A., Sacco, R. and Saleri, F. (2007) Numerical Mathematics. 2nd edn. Berlin: Springer.
