IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Régression polynomiale avec incertitude


Sujet :

C++

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Régression polynomiale avec incertitude
    Bonjour,
    Je suis étudiant et je fais un peut de c++ et je souhaite coder une regression polynomiale y = ax² + bx + c à partir des points de données Xi et Yi avec des incertitudes de mesures sur les Yi
    j'ai écrit quelque chose dans ce gout là pour trouver a b et c :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    long double *least_square_fitting(int NB_DATA, long double* x, long double* y, long double* Erreur ){
     
    long double M=0, N=0, P=0, Q=0, R=0, S=0;                  //coefficients du système linéaire
    long double det_inv=0;                                       //inverse du déterminant
    long double a=0, b=0, c=0;                                 //coefficients du polynome
    long double x_square = 0;
    long double  x_cube = 0;
     
    long double *coeff = new long double [3];
     
    c = y[0];
     
    for(int i=0 ; i<NB_DATA ; ++i ){
    	x_square = (x[i]*x[i]);
    	x_cube   = (x[i]*x[i]*x[i]);
    	M += x_square*x_square;
    	N += x_cube ;
    	P += x_square * (c-y[i]) ;
    	Q += x_cube ;
    	R += x_square ;
    	S += x[i] * (c-y[i]);
    	}
     
    //résolution du système
    det_inv = 1 / (M*R - N*Q);
    a = det_inv * ( N*S - R*P );
    b = det_inv * ( Q*P - M*S );
     
    coeff[0]=c;
    coeff[1]=b;
    coeff[2]=a;
     
      return coeff;
    }
    Mais ce code ne prend pas en compte les erreur sur yi.
    Une idée sur la façon de procéder?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 069
    Points : 12 113
    Points
    12 113
    Par défaut
    Vieux style, avec des pointeurs nus dans tous les sens, aucune gestion des erreurs d'arrondi sur les variables à virgule flottantes, le plus simple, c'est de prendre une librairie faite pour, non ?
    http://lmgtfy.com/?q=c%2B%2B+library...on+uncertainty

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Vieux style, avec des pointeurs nus dans tous les sens, aucune gestion des erreurs d'arrondi sur les variables à virgule flottantes, le plus simple, c'est de prendre une librairie faite pour, non ?
    http://lmgtfy.com/?q=c%2B%2B+library...on+uncertainty
    Mouais enfin choisir une lib de calcul numérique n'est pas complètement trivial non plus.
    Je ne les connais pas toutes mais en voici quelques unes classiques :
    https://eigen.tuxfamily.org/dox/grou...stSquares.html
    http://ceres-solver.org/nnls_tutoria...#curve-fitting
    http://dlib.net/optimization.html#solve_least_squares
    https://mlpack.org/doc/mlpack-git/do...n.html#details

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Pour être tout à fait honnête, je n'ai pas compris grand chose, je débute encore en c++, désoler.

    En fait j'ai des points de mesure en x et y avec des incertitudes sur les mesures de y .
    Mon but est de trouver un algo qui fait un fit polynomial (de préférence ou autre) qui prend en compte les incertitudes dans son calcul.
    Est-ce que ça existe déjà dans une librairie du coup? il existe des codes types?

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 069
    Points : 12 113
    Points
    12 113
    Par défaut
    Ce n'est pas lié au C++, mais à l'utilisation (non maitrisé) des types à virgules flottantes (double, float, etc...) et à la gestion des arrondis des CPU.
    Le plus simple, c'est d'utiliser des librairies faites pour.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Régression polynomiale avec (certains) coefficients fixés
    Par nymformaticien dans le forum Calcul scientifique
    Réponses: 5
    Dernier message: 09/03/2012, 22h36
  2. Régression linéaire avec contraintes non-linéaires
    Par TimeSeries dans le forum SAS STAT
    Réponses: 0
    Dernier message: 20/04/2010, 10h56
  3. Régression linéaire avec facteurs
    Par circe dans le forum R
    Réponses: 1
    Dernier message: 16/08/2009, 12h05
  4. Réponses: 10
    Dernier message: 16/04/2009, 08h52
  5. Division euclidienne polynomiale (avec modulos)
    Par Batoche dans le forum Mathématiques
    Réponses: 5
    Dernier message: 18/12/2006, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo