A Byte of PhysicsLogo

Numerical ethics

Numerical work has consequences when people treat a model output as evidence. Ethical practice is not a final disclaimer. It is part of implementation: preserve assumptions, make uncertainty visible, enable reproduction, avoid misleading visual defaults, and stop a model from being used outside its supported purpose.

Think like a programmer

Make honesty part of the result type. Return values together with units, assumptions, uncertainty or tolerance, data provenance, version, and warnings. A naked number is easy to copy into a decision without the information needed to judge it.

Model checklist

Inputs
Declared purpose, source data and licence, parameter values, uncertainty policy, random seed when used, and intended audience.
State
Versioned model configuration, code version, data version, and logged validation results.
Rule
Compute only within documented bounds and attach warnings when a bound is crossed.
Output
Result plus provenance, uncertainty, assumptions, and known limitations.
Check
An independent reader can rerun the documented configuration and reproduce the stated result within tolerance.

A result needs context

type ReportedValue = {
  value: number;
  unit: string;
  uncertainty?: number;
  assumptions: string[];
  modelVersion: string;
  dataVersion?: string;
  warnings: string[];
};

This type does not make a model ethical by itself. It makes omission harder. If a simulation uses a seeded random number generator, report the seed. If it uses a simplified geometry, say so next to the result. If a reader enters a value outside the validated range, show a recoverable warning rather than silently extrapolating.

Avoid visual overclaiming

Smooth curves, saturated colors, and animation can imply certainty that the calculation does not have. Show sampled points when appropriate, label interpolation, distinguish measured data from a model curve, and give text alternatives to a color-only status. For sensitive topics, do not turn a simplified nuclear, climate, health, or safety-related model into a confident recommendation.

Reproducibility also includes access. Keyboard controls, readable equations, text values outside a canvas, and no-WebGL fallbacks let more people inspect and challenge a result. Accessibility is part of scientific accountability: a conclusion cannot be independently checked if the interface hides it from part of its audience.

A practical release question

Before publishing, ask: “What decision could someone make from this output, and what missing assumption could reverse that decision?” If the answer is material, narrow the claim, add uncertainty, improve validation, or do not publish the feature as a predictive tool.

Try this experiment

Prediction: Re-running a seeded random model with the same seed should reproduce its sequence, while a different seed should make a distinguishable but statistically comparable run.

Run a seeded sampling model twice with the same seed and once with a new seed. Record what stayed identical, what changed, and which summary statistic should remain comparable across runs.

Where this model breaks

No checklist can decide every ethical question. A technically reproducible model can still be inappropriate for a context, use biased data, or invite harmful interpretation. Seek domain review and affected-user input when results could materially affect people or environments.

Summary

Numerical ethics means shipping context with computation: provenance, uncertainty, assumptions, validation evidence, accessible inspection paths, and clear limits on use.

Glossary

Self-check

  1. Which fields should accompany a result value before it is shared?
  2. Why can a smooth visualization be ethically misleading?
  3. What does a seed make reproducible, and what does it not guarantee?

Sources

Model contract

Treat the lesson as a small function before treating it as a fact to memorize. Give every value a unit, keep only the state needed for the next step, and make the output easy to inspect.

\[\text{observable output} = f(\text{inputs},\,\text{state})\]
Inputs
Quantities you set or measure, with units and useful bounds.
State
Values the program must retain to reproduce the next result.
Rule
The relationship or update that turns inputs and state into a result.
Check
A known limit, unit check, invariant, or measured result that can expose a bad model.

Implement the idea as a model

For Numerical Ethics, write down the quantities you can control, the values your program must retain, and the result a reader could inspect. In Thinking Like a Computational Physicist, the useful program is not the drawing: it is the smallest explicit model that makes a prediction you can test.

Guided experiment

Prediction: changing one declared input while holding the others fixed should change only the outputs that the model connects to that input. Choose one input, predict the direction of change, then check a limiting case such as zero, a symmetric arrangement, or a familiar low-speed or small-change approximation.

Where this model breaks

This lesson is a teaching model, not a complete simulator. Before using it outside the stated question, check which interactions, scales, uncertainties, boundary conditions, and measurement limits it leaves out.

Summary

Treat Numerical Ethics as a contract: named inputs and units enter a rule, the rule produces an observable result, and a known limit or invariant checks whether the implementation deserves trust.

Glossary

  • Input: a measured value or chosen parameter supplied to a model.
  • State: the smallest set of values needed to continue or reproduce a model.
  • Validation: comparing an output with a known result, limit, invariant, or measurement.

Self-check

  1. Which values are inputs, and which values must remain state?
  2. What observable result would tell you the model is behaving as expected?
  3. Which assumption would you test first before applying the model to a real system?

Model review: turn Numerical Ethics into a test

Publish numerical results with provenance, uncertainty, accessibility, and explicit limits.

  1. Name the inputs and units that the thinking like a computational physicist model needs.
  2. Separate the state you must keep from values you can calculate when needed.
  3. Write one rule that maps the current state and inputs to an observable result.
  4. Choose a limiting case, unit check, invariant, or known result before trusting an output.
  5. State one assumption you would change before using this simplified model for a real decision.

Share to: