From 3d7da80ac11bb87ab441fb51f93b738be02de2c3 Mon Sep 17 00:00:00 2001 From: Denise sur Lya Date: Sat, 17 Apr 2021 13:47:35 +0200 Subject: =?UTF-8?q?Extrapolation=20am=C3=A9lior=C3=A9e=20+=20possibilit?= =?UTF-8?q?=C3=A9=20de=20voir=20le=20point=20voulu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calculs_extrapole.py | 189 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 145 insertions(+), 44 deletions(-) (limited to 'calculs_extrapole.py') diff --git a/calculs_extrapole.py b/calculs_extrapole.py index ab22502..509402b 100644 --- a/calculs_extrapole.py +++ b/calculs_extrapole.py @@ -10,8 +10,95 @@ from gestion_erreurs import warning, debug from configuration import CONFIG from gestion_donnees import convertit_age_vers_texte import gestion_unites as u +from math import ceil -#### Les fonctions qui permettent de faire les calculs additionnels une fois qu'on a l'extrapolation +#### Les fonctions qui permettent de faire les calculs additionnels une fois qu'on a l'extrapolation (ou pas) + +def interpole_lineaire(dates, donnees, t, liste_err): + """ simple interpolation linéaire. + dates et donnees sont les dates et données de l'enfant. + t est le temps (jours) auquel on veut l'interpolation. On renvoie la donnée interpolée. + On interpole linéairement entre les deux données. Si ça + n'est pas possible parce que t n'est pas dans les bornes, on renvoie -1 + """ + + if tdates[-1]: + return -1 # en dehors des bornes + + i=0 # on cherche l'intervalle : entre dates[i] et dates[i+1] on a la donnée t + while imax(donnees) or val