Bonjour à tous,
Je dois trouver une approximation du vecteur X colonne à 60 éléments qui satisfasse au mieux (dans le sens des moindres carrés) :
(Obsi) = (aij)*(xj) i allant de 0 à 47,j allant de 0 à 60
Où les Obsi et aij sont connus.
Ce problème correspond à une régression linéaire avec les Xi comme paramètres d’un modèle où Obs serait la variable à expliquer et les aij des réalisations de variables explicatives. Sauf que la contrainte de positivité des paramètres vient tout gâcher.
Mes idées :
1- Faire une minimisation de la fonction des moindres carrés des écarts entre Obs et SOMME (aijXi)… : cf. http://fr.wikipedia.org/wiki/M%C3%A9...es_carr%C3%A9s
J’ai fait un algorithme qui suit les étapes de la méthode des moindres carrés.
Avec un exemple avec 6 variables (au lieu de 60)
Ça marche plus tôt bien mais pas avec 60 variables.
2- J’ai décidé d’utiliser des librairies java très pointues.
Exemple :
http://www.ee.ucl.ac.uk/~mflanaga/java/Regression.html
idem ça marche bien avec 6 variables mais avec 60 variables problème du nombre itération.
3- J’ai utilisé un Modeling Language GNU MathProg.
c'est une minimisation linéaire (alors que ici c'est une fonction quadratique)
donc des résultats par très bon)
Tous m’ont données des résultats mais pas loin de ce que donne une feuille Excel (en utilisant un solveur). Et avec des erreur de convergence.
Quelqu'un aurait un code java ou un algo ou n'importe quel document qui pourrait me permettre de résoudre en algo ou java :
un problème d’optimisation avec contraintes d’égalité
min f(x) avec x appartient à Rn
sous les contraintes
h(x) = 0 et x>=0
f non-lineaire,h lineaire.
et/ou une explication mathématique m'aiderai à faire mon algo.
Merci d'avance.
-----