2010-10-28 33 views
4

Étant donné un ensemble de points, quel est le moyen le plus rapide de leur attribuer une parabole? Est-ce qu'il fait le calcul des moindres carrés ou existe-t-il un moyen itératif?Le moyen le plus rapide d'adapter une parabole à un ensemble de points?

Merci

Edit: Je pense que descente de gradient est le chemin à parcourir. Le calcul des moindres carrés aurait été un peu plus taxant (devoir faire une décomposition de qr ou quelque chose pour garder les choses stables).

+0

Avez-vous besoin de manipuler une parabole pivotée?ou est-ce dans la forme 'y = ax^2 + bx + c'? – rwong

+0

juste la normale y = ax^2 + bx + c – victor

Répondre

7

Si les points n'ont pas d'erreur associée, you may interpolate by three points. Autrement least squares ou toute formulation équivalente est le chemin à parcourir.

+2

poster un résumé ou une formule à partir des liens, car lorsque les liens seront «morts ou modifiés» votre réponse ne sera pas utile. –

1

Une solution calculée est presque toujours plus rapide qu'une solution itérative. L '"exception" serait pour les comptes d'itérations faibles et les calculs complexes.

J'utiliserais la méthode des moindres carrés. Je l'ai seulement codé pour les régressions linéaires, mais il peut être utilisé pour les paraboles (j'ai eu des raisons de le rechercher récemment - les sources comprenaient une ancienne édition de "Numerical Recipes" et d'autres "Engineering Mathematics" Kreyzig).

+2

Je sais que je suis en retard à la fête, mais j'ai une petite question avec votre réponse. Linéaire dans "Régression Linéaire" ne se réfère pas à l'équation à laquelle vous correspondez, mais plutôt que l'équation à laquelle vous correspondez n'est que linéairement dépendante des variables d'ajustement. Par exemple, la régression linéaire peut être appliquée à la fonction 'a cos x + b e^x' où' a' et 'b' sont les variables d'ajustement, mais pas directement' cos (a x + b) '. Le point est, un moindres carrés ajustés à 'a x^2 + b x + c' est linéaire. – rcollyer

+0

Mais vous correspondez à trois constantes? – winwaed

+0

Oui, les constantes qu'il cherche sont 'a',' b', et 'c', et l'ajustement reste" linéaire ". – rcollyer

4

J'ai récemment eu besoin de trouver une parabole qui passe par 3 points.

supposons que vous avez (x1,y1), (x2,y2) and (x3,y3) et que vous voulez le parabola

y-y0=a*(x-x0)^2 

pour passer à travers eux: trouver y0, x0, and a.

Vous pouvez faire une algèbre et obtenir cette solution (en fournissant les points ne sont pas tous sur une ligne):

let c=(y1-y2)/(y2-y3) 
x0=(-x1^2+x2^2+c*(x2^2-x3^2))/(2.0*(-x1+x2+c*x2-c*x3)) 
a=(y1-y2)/((x1-x0)^2-(x2-x0)^2) 
y0=y1-a*(x1-x0)^2 

Remarque dans l'équation de c if y2==y3 alors vous avez un problème. Donc, dans mon algorithme, je vérifie pour cela et permuter x1, y1 avec x2, y2 et ensuite procéder.

espérons que cela aide!

Paul Probert

0

ALGORITHME POUR PARABOLE

  1. Lire pas. des points de données n et ordre du polynôme Mp.
  2. Lire les valeurs de données.
  3. Si n < Mp [La régression est impossible] arrêt autre continuer;
  4. Définir M = Mp + 1;
  5. Calcul du coefficient de la matrice C.
  6. Calcul du coefficient de la matrice B. Résoudre les coefficients a1, a2 ,. . . . . . . un .
  7. Écrivez le coefficient.
  8. Estimer la valeur de la fonction au niveau de la glren des variables indépendantes.