Lisser une courbe URGENTISSIME c'est pour 21 heures [VB6] - Programmation
Marsh Posté le 28-03-2001 à 20:25:29
21h ? C'est pas une heure correcte ça.
Bon, voici l'astuce:
T'imprimes, tu traces la courbe à la main et tu scannes
Marsh Posté le 28-03-2001 à 22:15:50
ben y'a une methode bete et mechante : pour chaque point tu fais la moyenne avec le point precedant et le point suivant.
sinon, il y a une autre solution : tu t'amuse avec les spline mais la je vois pas trop comment tu pourrais faire.
Marsh Posté le 29-03-2001 à 09:04:26
Lisser avec les splines c'est simple...
entre deux points i et i+1 on a une fonction Pi(X) qui est un polynome (en general 2eme ou 3eme degre)
et on minimise une fonction objectif
Alpha*Sigma (Pi(xi)-yi)2 + (1-Alpha)*Integrale (P''(x)2)
Alpha entre 0 et 1
avec la contrainte Pi(xi+1) = Pi+1(xi+1) et eventuellement P'i(xi+1) = P'i+1(xi+1)
Les contraintes imposent la continuite de la fonction quand on passe d'un polynome a un autre ( et eventuellement la continuite de la derivee)
La fonction objectif permet de definir un optimum entre deux termes passer par les points et tourner le moins possible.
Alpha permet de definir si on veux un lissage souple (Alpha proche de 1) ou dur (Alpha proche de 0)
pour Alpha=1 il n'y a pas de lissage
pour Alpha=0 le resultat devrai etre une droite.
Si le minimum est tres proche de zero on a une droite qui pqsse pqr tout les points.
NB: Pi est un polynome donc l'integrale du carre de la derive seconde n'est pas dur a calculer meme sur tout le domaine d'integration.
Marsh Posté le 28-03-2001 à 20:00:18
on a un tableau de qques valeurs et on veut lisser la courbe qui en découle.
On passe demain matin en soutenance c'est hyper important on doit rendre le truc avant 21 h.
Merci