Bonjour
mon souci est le suivant :
je veux calculer les coefficients de la courbe d'interpolation d'une suite de points. J'ai trouvé une formule matricielle qui fait ça très bien (au moins jusqu'à l'ordre 4), ce qui est suffisant :
J'utilise alors
{= DROITEREG(C5:C14;(B5:B14)^{1\2\3\4};VRAI)}
où
C5:C14 est ma plage de Yconnus (10 valeurs)
B5:B14 est ma plage de Xconnus (10 valeurs)
VRAI est pour que la courbe passe par 0;0.
La ruse étant la mise en puissances 1, 2, 3 et 4 pour avoir les coefficients de
y = a + b.x + c.x^2 + d.x^3 + e.x^4
Evidemment, pour cette formule matricielle, il faut sélectionner 5 cellules avant de faire le fameux Ctrl Maj Entrée.
Tout cela marche parfaitement.
MAIS n'est pas souple du tout pour un utilisateur lambda car il doit retaper la formule si sa plage de valeurs initiale change de taille ou d'emplacement.
Mon idée était donc de passer par une macro pour gérer les plages de valeurs et utiliser la fonction formula.array en écrivant dans la feuille de calcul, cette formule matricielle.
J'ai testé avec la droite de régression normale avec :
Range("D1:E1").formulaArray = "=LINEST(C5:C14;B5:B14)"
ce qui est parfaitement adapté dans le principe. Mais je n'arrive à à retranscrire la partie ( )^{1\2\3\4} à ma formule.
Je voudrais savoir comment écrire cette formule = DROITEREG(C5:C14;(B5:B14)^{1\2\3\4};VRAI) de manière à ce qu'elle soit retrancrite comme formule dans la feuille.
Mouais, je ne sais pas si je suis bien clair.
En tout cas, de l'aide serait appréciée !
François
Partager