$$ % Define your custom commands here \newcommand{\bmat}[1]{\begin{bmatrix}#1\end{bmatrix}} \newcommand{\E}{\mathbb{E}} \newcommand{\P}{\mathbb{P}} \newcommand{\S}{\mathbb{S}} \newcommand{\R}{\mathbb{R}} \newcommand{\S}{\mathbb{S}} \newcommand{\norm}[2]{\|{#1}\|_{{}_{#2}}} \newcommand{\pd}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\pdd}[2]{\frac{\partial^2 #1}{\partial #2^2}} \newcommand{\vectornorm}[1]{\left|\left|#1\right|\right|} \newcommand{\abs}[1]{\left|{#1}\right|} \newcommand{\mbf}[1]{\mathbf{#1}} \newcommand{\mc}[1]{\mathcal{#1}} \newcommand{\bm}[1]{\boldsymbol{#1}} \newcommand{\nicefrac}[2]{{}^{#1}\!/_{\!#2}} \newcommand{\argmin}{\operatorname*{arg\,min}} \newcommand{\argmax}{\operatorname*{arg\,max}} \newcommand{\dd}{\operatorname{d}\!} $$

Body-Weight Dynamics

Estimation and control of one diet: an energy-balance state-space model, a joint unscented Kalman filter, and a receding-horizon controller.

A scale is a noisy sensor, a diet is an input, and a plateau is a time constant.

The usual arithmetic of dieting, 3,500 kcal per pound, treats the body as a battery of fixed energy density. It is wrong in three ways that a control engineer will recognize at once: the mass being lost is a mixture whose composition changes as you go, a fast water compartment moves pounds on the scale without moving any tissue, and expenditure adapts to a sustained deficit with a lag of a few weeks.

Each of those is a state. This project models each one as such, estimates them together with the subject’s personal metabolic parameters from a single noisy reading a morning, and plans what to eat with a model-predictive controller that replans every day.

The presentation

Presentation

Body-Weight Dynamics → walks through the model, the filter and the controller, with figures generated from a real subject’s weigh-ins and food log. About twenty-five slides, with speaker notes and three backup slides.

The pieces

  • Model. Five states (tissue, fat mass, glycogen-bound water, sodium-bound water, adaptive thermogenesis) and nine parameters. Tissue follows energy balance with an energy density set by Forbes’ partition law; the water compartments and adaptation are first-order lags on days and weeks.
  • Estimation, in two phases. Weight-only history identifies the noise by maximum likelihood on a local linear trend model. Weight and food together identify metabolism, with the parameters appended to the state and estimated by an unscented Kalman filter in a coordinate where no sigma point can be physically impossible.
  • Control. A 28-day horizon in weekly blocks, with tissue, not scale weight, in both the objective and the safety constraints, so that a fast water drop is never mistaken for progress or for danger. Only the first day is eaten.

Status

The current attempt began on October 26, 2026. With two logged days, the filter correctly reports that it has learned almost nothing about the subject’s metabolism yet: every parameter but one still sits on its prior. The deck will be updated as the record grows.

This is a modeling exercise built on population-level physiology and fitted to one person’s self-reported data. It is not medical advice.