Excel Algorithme Polynomial Curseur-Fitting

Quel est l'algorithm utilisé par Excel pour calculer une régression polynomiale de 2ème ordre (ajustement de courbe)? Existe-t-il un code d'exemple ou un pseudo-code disponible?

J'ai trouvé une solution qui renvoie la même formule que Excel donne:

  1. Mettre en place une masortingce augmentée de valeurs utilisées dans la Parabole des moindres carrés. Voir les équations de sum dans http://www.efunda.com/math/leastsquares/lstsqr2dcurve.cfm

  2. Utilisez l'élimination gaussienne pour résoudre la masortingce. Voici le code C # qui fera que http://www.codeproject.com/Tips/388179/Linear-Equation-Solver-Gaussian-Elimination-Csharp

  3. Après avoir exécuté cela, les valeurs de gauche dans la masortingce (M) seront égales aux coefficients donnés dans Excel.

Je peux peut-être find le R ^ 2 de quelque façon, mais je n'en ai pas besoin pour mes besoins.

Les lignes de tendance polynomiales dans les charts utilisent les moindres carrés en fonction d'une méthode de décomposition QR comme la fonction de feuille de calcul LINEST ( http://support.microsoft.com/kb/828533 ). Une deuxième tendance ou une tendance quadratique pour datatables données (x, y) pourrait être calculée en utilisant =LINEST(y,x^{1,2}) .

Vous pouvez appeler les formules de feuille de calcul à partir de C # à l'aide de la méthode de Worksheet.Evaluate .

Cela dépend, car il existe de nombreuses façons de faire une telle chose en fonction des données que vous fournissez et de l'importance de la passation de la courbe dans ces points.

Je suppose que vous avez beaucoup plus de points que vous ne faites des coefficients dans le polynôme (par exemple, plus de trois points pour une courbe de 2ème ordre).

Si c'est vrai, alors, le meilleur que vous pouvez faire est le minimum d'ajustement carré, qui calcule les coefficients qui minimisent l'erreur carrée moyenne entre tous les points et la courbe résultante.

Étant donné que c'est le deuxième ordre, ma recommandation serait de créer les termes du second ordre et de faire une régression linéaire.

Ex. Si vous faites z ~ second_order (x, y), il équivaut à faire z ~ first_order (x, y, x ^ 2, y ^ 2, xy).