Bonjour à tous,
Je souhaite réaliser une régression (ou approximation) quadratique d'une série de 10 valeurs en vba. Il s'agit de températures en fonction du temps : Temp(tps).
Pour l'instant, mon code ressemble à ça :
With ws_donnees
' Étape 1 : Récupérer les 10 valeurs de températures et de temps
Dim Temp(1 To 10) as Double
Dim tps(1 To 10) as Double
For i = 1 To 10
Temp(i) = .Cells(i, 2).Value
tps(i) = .Cells(i, 1).Value ' Colonne temps = colonne 1
Next i
' Construire la matrice X avec t et t^2
Dim X(1 To 10, 1 To 2) as Double
For i = 1 To 10
X(i, 1) = tps(i) ^ 2
X(i, 2) = tps(i)
Next i
' Étape 2 : Calcul du polynôme de degré 2
coeff = Application.WorksheetFunction.LinEst(Temp, X, True, False)
end with
Avant que l'étape 2 ne s'exécute, la fenêtre des variables locales affiche :
Temp Double(1 To 10)
tps Double (1 To 10)
X Double(1 To 10, 1 To 2)
Ces dimensions me paraissent cohérentes et les vecteurs sont remplis avec les valeurs que je souhaite.
Cependant lors de l'exécution de l'étape 2, le message d'erreur "Impossible de lire la propriété LinEst de la classe WorksheetFunction" s'affiche.
Ce que j'aimerais, c'est que le vecteur coeff contiennent 3 valeurs a, b, c telles que l'équation a*t^2 + b*t + c soit la régression quadratique de mes valeurs.
Je n'ai probablement pas bien compris le formalisme de cette fonction.
Pourriez-vous m'aider, s'il vous plaît ?
Un grand merci pour votre attention
Bien cordialement
Vincent