mitch40330
Messages postés2Date d'inscriptionsamedi 7 février 2009StatutMembreDernière intervention28 septembre 2010
-
27 sept. 2010 à 17:02
mitch40330
Messages postés2Date d'inscriptionsamedi 7 février 2009StatutMembreDernière intervention28 septembre 2010
-
28 sept. 2010 à 15:24
Bonjour,
Pour un projet, je dois faire un code qui permette à partir d'une table d'entrées de définir une sortir.
Par exemple la table suivante :
--|- 3 - 4
-----------
1 | 10 - 20
2 | 30 - 40
Si le paramètre colonne 3 et le paramlètre ligne 1 , le résultat est 10.
Si maintenant, je veux pour colonne 1,7 et ligne 3,4. Il faut faire une interpolation.
Mais je ne trouve pas les formules mathématiques pour faire cela.
007Julien
Messages postés276Date d'inscriptionmercredi 22 septembre 2010StatutMembreDernière intervention 8 janvier 20144 28 sept. 2010 à 14:54
Dans le cas de l'interpolation linéaire, si c est compris entre a et b, distincts, de valeurs v(a)=10 et v(b)=20 (par exemple 3,4 entre 3 et 4 de valeurs 10 et 20 pour la première ligne) alors la valeur de c est donnée par (attention b-a non nul !) :
v(c)=((b-c)*v(a)+(c-a)*v(b))/(b-a) !
Ainsi lorsque, comme dans l'exemple, a et b diffèrent de 1 :
v(3,4)=(0,6*10+0,4*20)=14 pour la première ligne et
v(3,4)=(0,6*30+0,4*40)=24 pour la seconde.
Il n'y a plus qu'à appliquer la même formule sur les lignes pour interpoler le 1,7 entre 1 et 2 de valeurs 14 et 24 (pour la colonne 3,4) ce qui donne 0,3 fois la valeur 14 plus 0,7 fois la valeur 24 !
Autrement dit au lieu de prendre pour coefficient 0,5 et 0,5 comme pour la moyenne
on prend pour chaque valeur des coefficients (de somme unité) proportionnels à la distance à l'autre valeur (poids fort lorsque l'on est proche).