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

Java Discussion :

Régression d'ordre 2 avec Apache Commons Math


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Régression d'ordre 2 avec Apache Commons Math
    Bonjour,

    Je cherche à faire une régression polynomiale d'ordre 2 avec la bibliothèque Apache.Commons.Math.
    A titre d'exemple, le code suivant (adapté de http://commons.apache.org/proper/com...e/fitting.html) devrait logiquement aboutir à cette équation:
    y = 39.79 x2 - 497.66 x + 997.45
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    double[] y = { 540.0, 160.0, -140.0, -360.0, -480.0, -560.0, -540.0, -440.0, -260.0, 0.0, 340.0};              
            final WeightedObservedPoints obs = new WeightedObservedPoints();
            for (double figure:y){
                obs.add(1.0, figure);// 1.0 = le poids de chaque donnee. La doc precise de mettre 1.0 si on ne dispose pas de l'info
            }
            final PolynomialCurveFitter fitter = PolynomialCurveFitter.create(2);
            final double[] coeff = fitter.fit(obs.toList());
            System.out.println("coef="+Arrays.toString(coeff));
    Or, il n'en est rien puisqu'il me donne les coefficients suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    coef=[-53.73522460839947, -52.22329678670934, -52.22329678670934]
    J'apprécierais toute aide me permettant d'utiliser correctement cette belle bibliothèque ...
    Merci d'avance
    Dominique

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    J'ai la réponse. Il ne faut pas oublier de mettre les x ... Gloups...
    Le code devient si on part des x avec 1 et qu'on incrémente de 1 à chaque fois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    double[] y = { 540.0, 160.0, -140.0, -360.0, -480.0, -560.0, -540.0, -440.0, -260.0, 0.0, 340.0};              
            final WeightedObservedPoints obs = new WeightedObservedPoints();
            double m = 1.0;
            	for (double fig:y4){
            		obs.add(m, fig);
            		m++;
            	}
            final PolynomialCurveFitter fitter = PolynomialCurveFitter.create(2);
            final double[] coeff = fitter.fit(obs.toList());
            System.out.println("coef="+Arrays.toString(coeff));
    La sortie devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    coef=[997.4545454545454, -497.6643356643356, 39.790209790209786]
    //constante, coef 1er degre, coef second degre
    soit: y = 39.79 x2 - 497.66 x + 997.45
    C'est tout bon .
    Si ça peut aider un jour quelqu'un...
    Dominique

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/03/2013, 21h56
  2. ClassFormatException avec apache commons email
    Par wadi3 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 19/05/2011, 13h43
  3. Envoi FTP de fichier Excel avec org.apache.commons.net.ftp
    Par TomZ dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 22/07/2008, 16h22
  4. Prob d'encodage avec la classe org.apache.commons.lang.StringEscapeUtils
    Par elmessoussi dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 21/04/2008, 15h32
  5. Réponses: 3
    Dernier message: 08/05/2006, 23h31

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