Introduzione

Per un informatico, spesso le occasioni diventano scuse per divertirsi con dati e algoritmi, anche nel fitness. 😀

In questo articolo descriverò:

  • due nuovi tipi di diagrammi
  • il codice Python per ottenerli
  • un interessante confronto tra modelli matematici metrici/plicometrici e impedenziometrici

La partenza

Per cercare di trovare sollievo da dolori e stanchezza, poco più di un anno fa iniziai ad allenarmi. Comprai una bilancia impedenziometrica economica ma con una app molto accattivante e l'effetto gamification di controllare il proprio peso (e soprattutto la propria percentuale di grasso corporeo) prese il sopravvento. 😀 Alcuni, come me, sono più spinti nel proseguire un'attività se ci sono forme di ”gioco“, punteggi e qualche numero o diagramma da far cambiare.

Sentii rapidamente la necessità di un obiettivo misurabile e decisi che un risultato ragionevole sarebbe stato di avere:

  • un peso forma: per conoscere il proprio, si può per esempio andare su Ideal Body Weight Calculator (tra 70 e 72 kg, nel mio caso)
  • con una percentuale di grasso tollerabile: io partivo da quasi 19% e decisi che tra 10 e 12% sarebbe stato già un bel risultato.

Sì, per essere in forma non basta avere un peso forma. 😀 Ecco una famosa immagine, nel caso vogliate farvi un'idea di come si appare con le diverse percentuali: a mio modesto parere, gli informatici possono tranquillamente ignorare i primi due casi maschili. 😀

a
BFP (Body Fat Percentage)

Bilance impedenziometriche economiche VERSUS metro e plicometro: un risultato sorprendente

Comprai su Amazon la classica bilancia impedenziometrica economica RENPHO e mi chiesi se fosse affidabile.

a

Provai quindi due confronti:

  • il primo fu una scaltra lettura di confronto con un modello dieci volte più costoso disponibile in una palestra 😀, ottenendo di fatto una semplice ritaratura.
  • il secondo fu un confronto con metro e plicometro.

Anche qui, comprai il classico plicometro Bozeera.

a

Sul suo sito, Bozeera offre 9 modelli matematici: provandoli tutti, ottenni un risultato sorprendente (almeno nel mio caso e nelle mie prove):

  • la mediana dei 9 modelli portava allo stesso risultato del modello con più parametri (cosa non così soprendente, forse perché era il più accurato: per la cronaca, il modello di Parrillo con 11 parametri)
  • la suddetta mediana, coincideva con il risultato fornito nel modello "atleta" dalla bilancia impedenziometrica economica.

Quindi è certo più semplice e veloce pesarsi su di una bilancia e leggere il risultato su di una comoda app, invece di armeggiare per 11 volte con metro e plicometro 😀. Buona a sapersi!

Fase uno: uno spazio bidimensionale

Il mio obiettivo quindi era di entrare all'interno di un rettangolo nello spazio BFP (Body Fat Percentage) / Weight (Peso).

Ecco il primo diagramma (ovviamente realizzato con matplotplib, pandas e NumPy): la stella rappresenta il mio punto di partenza – il classico caso lieve di Normal weight obesity anche noto come "skinny fat"… e raggiungere il quadrato non è banale. 😀

Quiver: non solo campi vettoriali

Avrei voluto disegnare una sequenza di frecce, ciascuna che iniziasse nel punto indicato dalla precedente. Per disegnare delle frecce, all'interno di matplotlib, si utilizza quiver ma l'uso classico è quello dei campi vettoriali: in questo caso, il codice è un po' particolare ma sono riuscito a farcela (Stack Overflow regna incontrastato 😀).

Ecco quindi l'inizio del mio cammino: come vedete, perdere peso (e perdere grasso) è relativamente facile ma raggiungere il quadrato è tutto un altro discorso. 😀

Dopo molti mesi – e cambiando tipo di allenamento – riuscii anche a cambiare direzione: in questo secondo diagramma, le frecce sono più piccole ma è chiara la variazione, dopo un po' di percorsi poco comprensibili all'interno di un'area molto stretta (tra la prima e la seconda fase, c'è un lungo periodo senza campioni ma la tendenza resta chiara).

Scatta la scimmia (matematica) sulla schiena

Se l'obiettivo fosse un punto, sarebbe facile, perché basterebbe:

  • misurare una norma
  • tracciare un diagramma
  • eventualmente estrarre delle tendenze, per esempio con delle medie/mediane mobili

Qui però abbiano un problema più interessante:

come misurare la distanza tra un punto e un poligono?

Shapely: un tocco di classe

Ancora una volta, ci viene in aiuto Python: con la libreria Shapely possiamo farlo molto semplicemente e otteniamo un altro nuovo diagramma (come scritto prima, c'è un salto nel campionamento).

Ora è chiaro: per almeno cento giorni (tra 50 e 150) non stavo affatto migliorando, anzi!

Shut up and show me the code

Il codice per entrambi i diagrammi è disponibile su GitHub nel mio progetto quiver_shapely, incluso il CSV reale per un certo numero di giorni.

Come allenarsi? Come nutrirsi?

Chiedetelo a un personal trainer, non a un ingegnere informatico 😀 ma se potessi riassumere qualche punto appreso, ecco cosa scriverei:

In questa fase iniziale, dato che lavoro molto e non sono un ragazzino, anche leggendo in giro vari pareri, penso che la cosa più efficace che abbia provato sia stato un allenamento:

  • full body
  • a giorni alterni
  • con prevalenza di esercizi multiarticolari
  • a circuito, forse per annoiarmi meno 😀 e bruciare di più
  • con sottocircuiti dalle spalle verso le gambe (mantenendo comunque una discreta quantità di deadlift, squat e lunge)
  • misurando carichi, volumi e ritoccando spesso (sì, mi annoio facilmente 😀)

Lasciando perdere discorsi per me troppo avanzati, sicuramente l'alimentazione è altrettanto importante (anche senza essere Vegan Straight edge come me 😀) e si può far riferimento al Calorie Calculator o altri che si trovano in rete.

Conclusioni

Il cammino complessivo, indicato dalla freccia blu, è ben marcato e anche se fisicamente sono migliorato molto, vi risparmio la classica foto di confronto – in mutande – del prima/dopo: non vorrei che il livello del blog sfuggisse definitivamente di mano. 😀

--

Cover Photo by bruce mars on Unsplash