Most engineering formulas assume the inputs are known exactly. Reality is not so tidy. A machined dimension is a nominal value plus a distribution. A material property is a mean with scatter. A load is a best estimate with a range. When several of those uncertain inputs feed into one output, the question stops being "what is the answer" and becomes "what is the spread of answers, and how often does it cross a limit." Monte Carlo simulation is the most general tool for answering that question.
This article explains the method as a practical recipe, works a tolerance stack-up example, and is honest about what controls the accuracy.
Why this calculation matters
Two classic methods exist for propagating uncertainty. Worst-case analysis adds up every tolerance at its extreme — it is safe but absurdly pessimistic, because all parts being at their worst limit at once is vanishingly unlikely. Linearized error propagation is fast but breaks down when the model is nonlinear or the inputs are not small.
Monte Carlo sidesteps both problems. It makes no assumption that the model is linear or the distributions are well-behaved. You simply sample the inputs from their real distributions, run the model, and collect the outputs. With enough samples you get the full output distribution: its mean, its spread, and — crucially — the probability of exceeding any limit you care about. That last number is what reliability and quality work actually needs.
The method
The recipe is short and the same every time:
- Model the inputs as distributions. Each uncertain input gets a distribution — normal for most manufacturing variation, uniform when you only know a range, or whatever fits the data.
- Draw one random sample from each input distribution.
- Evaluate the model with that set of inputs and record the output.
- Repeat for N trials.
- Analyze the collected outputs — histogram, mean, standard deviation, and the fraction of trials that violate a limit.
The one number to understand is how accuracy improves. The statistical error of a Monte Carlo estimate shrinks with the square root of the sample count:
standard error is proportional to 1 / sqrt(N)
That has a blunt consequence: to halve the error you need four times the samples; to add one decimal digit of precision you need a hundred times more. Monte Carlo is robust and general, but it is not cheap precision.
A worked example
A simple assembly stacks three machined spacers end to end. Each spacer has a nominal length of 10.00 mm, and its manufacturing variation is well described by a normal distribution with a standard deviation of 0.02 mm. The assembled length is the sum of the three. Question: how often will the stack exceed 30.08 mm?
Analytic check first. Because the lengths add and the variations are independent, the assembly mean is 30.00 mm and the standard deviations combine in quadrature:
sigma_assembly = sqrt(0.02^2 + 0.02^2 + 0.02^2) = 0.02 x sqrt(3) = 0.0346 mm
The limit 30.08 mm sits this many standard deviations above the mean:
z = (30.08 - 30.00) / 0.0346 = 2.31
The upper-tail probability beyond z = 2.31 is about 1.0 %.
Monte Carlo version. Draw three normal samples, add them, check against 30.08 mm, repeat. With N = 100,000 trials the simulation returns roughly 1.0 % of assemblies over the limit — matching the analytic answer, with a statistical error of only a few hundredths of a percent.
So why bother with Monte Carlo when the analytic answer was available? Because the analytic shortcut only worked here thanks to a linear model — a plain sum — and normal inputs. Make one spacer's tolerance asymmetric, or let the output depend on a product or a square root, and the closed form collapses. The Monte Carlo procedure does not change at all. That generality is the whole point.
Common mistakes
Too few samples. A run of 1,000 trials estimating a 1 % event sees only about 10 hits — far too few for a stable number. Rare events need large N. If you are estimating a one-in-a-thousand failure, plan for hundreds of thousands of trials.
Guessing the input distributions. Monte Carlo is exact bookkeeping on the distributions you feed it. If those are wrong, the polished histogram is confidently wrong. The hard part is characterizing the inputs, not running the loop.
Assuming inputs are independent when they are not. If two dimensions come from the same worn tool, they are correlated. Sampling them independently understates the real spread. Build the correlation into the sampling.
Reporting only the mean. The mean is the least interesting output. The reason to run Monte Carlo is the tails — the spread and the probability of crossing a limit. Lead with those.
Try the interactive NovaSolver calculator
The fastest way to build intuition for sampling and square-root convergence is to watch it happen. The Monte Carlo statistics simulator on NovaSolver runs four classic demonstrations — estimating pi by random dart throwing, the Central Limit Theorem, numerical integration, and random-walk diffusion — and you can watch each estimate steady as the sample count rises. The Central Limit Theorem tab is the one to study here: it shows why adding up several independent variations produces a normal distribution, which is exactly the principle behind the tolerance stack-up above.
Related calculators
- Monte Carlo estimation of pi — the cleanest demonstration of random sampling and 1/sqrt(N) convergence.
- Importance sampling — a variance-reduction technique for rare-event problems where plain sampling is too slow.
- Structural reliability — applying probabilistic methods to a load-versus-strength failure question.
The full set is in the Monte Carlo and probability tools hub.
Closing note
Monte Carlo simulation earns its place because it asks almost nothing of the model and gives back the one thing deterministic analysis cannot: a probability. It does not care whether your function is linear, smooth, or even written down as an equation. The discipline is all in the inputs — characterize the distributions honestly, capture the correlations, run enough samples for the tail you care about — and then read the answer off the histogram. Uncertainty stops being a hand-wave and becomes a number.
Top comments (0)