Polynomial extraction [Forums - Astuces]
Polynomial extraction [Forums - Astuces]
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
Recherche
 
   
 

Parcourir ce sujet :   1 Utilisateur(s) anonymes





Polynomial extraction
Accro
Inscrit:
06/07/2007 09:17
Messages: 697
Hors Ligne
héhéhé, je sais que le titre est sympa ^^

Voila ma question à 100points :p

Comment déterminer l'équation d'une courbe à partir d'une liste de point?
Merci d'avance :)

Posté le : 15/10/2015 15:25
Transférer la contribution vers d'autres applications Transférer


Re: Polynomial extraction
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1924
Hors Ligne
elle a 1000 points aussi la courbe ?

ok je sors...

La première question est de savoir quel est le "modèle" à rechercher. Après il faut faire une régression linéaire, polynomiale... c'est le µc qui doit faire ça ?

Posté le : 15/10/2015 15:41
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer


Re: Polynomial extraction
Accro
Inscrit:
06/07/2007 09:17
Messages: 697
Hors Ligne
Salut Charly

Oui c'est le µC qui va faire ça.
Ne sachant pas la qté nécessaire, on estime dans un première temp un max de 50 points.

Peux-tu préciser "modèle"?
J'ai en tête des polynômes d’ordre 1 à 5 (ax3 + bx2 + cx + d par exemple).

Posté le : 15/10/2015 17:20
Transférer la contribution vers d'autres applications Transférer


Re: Polynomial extraction
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1924
Hors Ligne
une série de points peuvent être complètement aléatoires, former une ligne, qui passe ou pas par 0, former un sinus, un log, une courbe puissance X...
Dans tous les cas tu vas chercher une corrélation sur un modèle (linéaire, sinus...) et il faudra vérifier ensuite l'erreur qui existe par rapport au modèle pour savoir si tu es juste out totalement à coté de la plaque. typiquement si tu prends un nuage de points aléatoires tu peux trouver une corrélation sur une modèle linaire mais il n'aura pas le moindre sens puisque les points sont en bazar aléatoire... ce sera autant le bazar avec les autres modèles d’ailleurs...

C'est un exercice pas facile que de chercher un modèle correspondant à une série de donnée ! Pour ma part je fais ca dans mon boulot mais pas avec un µc. je fais ça avec un logiciel gratuit de statistiques utilisé beaucoup en recherche : R

A mon avis tu as obligatoirement besoin de savoir à l'avance quel modèle utiliser (ça dépendant d’où viennent les points) et faut penser a calculer l'erreur à la fin.

Tu peux faire joujou avec Excel déjà il sait faire pas mal de choses (courbes de tendance de mémoire il appelle ça, avec à l afin une équation selon un modèle + un coefficient de détermination R²)

Plus tu auras de points pou faire le calcul, moins tu as de chance de trouver un modèle faux. L'idéale étant d'avoir par exemple des données sur 4 ans, calculer le modèle sur les 2 du milieu et valider le modèle en le confrontant à la 1ere année et à la dernière. A ce petit jeu tu découvre des fois que ton modèle est archi mauvais alors qu'il était sorti avec un coef de détermination très bon...


C'est quoi ton besoin exact ? il y a peut être une solution intermédiaire plus simple et surtout moins incertaine.


Posté le : 15/10/2015 17:50
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer


Re: Polynomial extraction
Accro
Inscrit:
06/07/2007 09:17
Messages: 697
Hors Ligne
Je comprend ton propos Charly, il s'agit là d'interpolation donc évidement, plus il y a de point, moins il y a d'erreur...

Dans mon cas, j'ai un produit avec plusieurs capteurs analogiques.
La corrélation de ces capteurs me permet d'identifier un produit donnée.
Il y a évidement une étape de calibration en fin de chaine de fabrication.

Cependant, on s'est rendu compte qu'avec le temps, la sensibilité d'un des capteurs évolue...Et génère des erreurs...
Il nous faut donc compenser cette erreur mais pour cela, il faut la caractériser ^^
D'où l'acquisition des points et l'extraction d'une courbe...

Mes recherches m'ont mené vers l'Interpolation de Lagrange, qui semble être une bonne approche. Mais qui, si j'ai bien comprit, donne une équation dont le degré correspond aux nombres de points... 50point<-> degrée 50 *Gloups*




Posté le : 15/10/2015 21:16
Transférer la contribution vers d'autres applications Transférer


Re: Polynomial extraction
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1924
Hors Ligne
A vu de nez je dirais que tu prends le problème à l'envers

Si vous avez vu qu'il y a dérive c'est parce que vous avez fait je ne sais pas quel expérience complémentaire (une autre mesure, une recalibrtion...) pour en conclure ca.

Soit par des expérimentations de ce type vous êtes en mesure de caractériser la fameuse dérive et alors vous pouvez compenser la dérive dans l’appareil à l'aide d'une correction connue (une table de correction plus ou moins simple obtenue en recherchant le fameux modèle, tranquillement avec Excel ou un autre outil de statistiques))
Soit vous n'arrivez pas à caractériser cette dérive avec les outils qui vont bien et dans ce cas ce n'est pas la carte qui a la moindre chance de pouvoir le faire. Il faut dans ce cas se résigner à gérer les capteurs, les recalibrer dans un délais suffisamment court.

La carte qui dérive ne peut pas savoir qu'elle dérive si elle n'a pas une référence quelque part pour s'en rendre compte. Or, si elle a une référence elle ne dérive pas puisqu'elle est à la référence...




Posté le : 15/10/2015 22:37
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer


Re: Polynomial extraction
Accro
Inscrit:
06/07/2007 09:17
Messages: 697
Hors Ligne
Mer** mon msg n'est pas passé hiers soir :(

Je suis d'accord avec toi Charly. Nous somme actuellement en discussion avec le fabricant du capteur pour l'analyse...
Donc on oublie le cas pratique :p.

Cependant la question du sujet m’intéresse quand même beaucoup ^^.
Il y a plusieurs méthodes dont les algo sont disponible Newton Lagrange etc...

Voici un exemple de code sur Lagrange qui me ne semble pas très complexe.

#include <iostream> 
 
/* Il faudrait vérifier préalablement que les n abscisses X[i] sont suffisamment espacées.*/
double lagrange(const int,const double*,const double*, double);
 
int main (int argc, const char argv[])

    
/* Vérification de l'interpolation sur un exemple : */
    
double X[3] = {1.25.79.4}; // Abscisses des points d'interpolation
    
double Y[3] = {7.14.85.9}; // Leurs ordonnées
    
double y(0);

    for (
int i 03i++)
    {
        
lagrange(3,X,Y,X[i]);
        
std::cout << "Y(" << X[i] << ") = " << << "n";
    }
    
    return 
0;
}
 
double lagrange(const int n, const doubleX,const double*  Ydouble x)
{
    
double yyy;
    
int i,j;
     
    
0;
     
    for (
0nj++) // construction du polynôme de Lagrage valant Y[j] en X[j] et nul aux autre X[i]
    
{
        if(
Y[j] != 0.0// Inutile de le calculer si Y[j] est nul.
        
{
            
yy Y[j];
            for(
0i<ni++)
            {
                if (
!= j)
                {
                    
yy *= (x-X[i])/(X[j]- X[i]);
                }
            }
        }
        
+= yy// On fait successivement la somme des polynômes précédents.         
    
}
    return 
y;
}


Vous l'aurez comprit, plus il y a de point, plus le temps d’exécution est long...
Je pense utiliser l'algo sur une liste de +- 20 points ^^.

Posté le : 16/10/2015 10:51
Transférer la contribution vers d'autres applications Transférer


Re: Polynomial extraction
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1924
Hors Ligne
Sur la mise en œuvre de l'algo je ne peux pas t'aider je n'ai jamais creusé. Utiliser les algos à disposition dans R est déjà une très lourde tache !
Ceci étant dit Lagrange ne permet pas de chercher un modèle mais de trouver un courbe qui passe exactement par les points. A ma connaissance en pratique ca sert sur tout à calculer des intégrales plus précisément qu'avec la méthode des rectangles (bien plus simple).

Autrement dit sur un lot de donnée tu vas avoir un modèle "Exact" grâce à Lagrange mais soit tu prends tous les points et comme tu l'as vu tu obtiens un monstre, soit tu échantillonne les points et là tu ne maitrise plus du tout l'erreur du modèle obtenu.

Chaque analyse a ses avantages et inconvénients ou plutôt domaine d'application et pièges. En général il est intéressant de passer par une phase de visualisation pour se "rendre compte" de la distribution des points et alors partir sur tel ou tel modèle plutôt qu'un autre.

Par exemple R permet de visualiser des corrélations multicritères voir ci dessous. j'ai volontairement mis des données évidement corrélées pour voir l’intérêt du graph.

Dans votre cas ce n'est pas le µc qui peut vous aider. Tout capteur et toute électronique a des imprécisions et des dérives. dans beaucoups de cas on est a des niveau d'incertitudes qui ne poses pas de problème à court et long terme mais comme là il faut dés fois garantir une incertitude sur la chaine de mesure complète, le capteur etant la plupart du temps le point faible de la chaine, parc equ'il met en jeu des phénomènes physiques soumis à la pollution, l'oxydation, l'encrassement...

La carte électronique NE PEUT PAS savoir que ça va mal. Il faut
soit la doter d'une chaine de mesure garantissant l'incertitude de mesure à long terme (solution souvent impossible, toujours très chère)
soit la recalibrer périodiquement. (souvent celle appliquée)
soit lui donner les moyen de compenser l'erreur (et là il faut être capable de caractériser l'erreur, c'est EXTREMEMENT complexe, long et couteux la plupart du temps (expérimentation et statistiques))

Attacher un fichier:



jpg  test.jpg (76.46 KB)
46_5620bfbe9a297.jpg 505X502 px

Posté le : 16/10/2015 11:20
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer


Re: Polynomial extraction
Accro
Inscrit:
06/07/2007 09:17
Messages: 697
Hors Ligne
Merci Charly pour ton temp et tes réponses. :)

Posté le : 19/10/2015 08:41
Transférer la contribution vers d'autres applications Transférer



 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

Polynomial extraction [Forums - Astuces]