Hello,
Je travaille sur un système d'équations, qui possède une représentation matricielle qui ressemble à ça :
G = P.C
- G est une matrice de taille m x 1 , elle contient des integer connus
- P est une matrice de taille m x n, elle contient des 0, 1 et -1.
- C est une matrice n x 1, elle contient des coefficients que je voudrais approximer Ces trois matrices ne sont pas carrées.
Le système d'équation peut ne pas posséder de solution, c'est pourquoi mon but est de trouver les valeurs des coefficients les plus proches du résultat.
On m'a conseillé de travailler avec des vecteurs, en essayant de minimiser la distance entre G et P.C
D(c) = ‖PC-G‖²
Le problème c'est que je n'ai aucune idée de comment représenter une matrice de variables pour représenter ces coefficients (C). De plus, j'aimerais également trouver une méthode qui détermine ces coefficients automatiquement (une sorte de "solver" d'équation, mais pour un minimum d'écart).
Voici mon code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public ApproxMatrix(List<Game> games, List<Player> players){ double[][] arrayGames = new double[games.size()][1]; double[][] arrayPlayers = new double[games.size()][players.size()]; double[][] coeff = new double[players.size()][1]; // filling the games array... // filling the players array... // how to fill the coeff array ? // building matrix RealMatrix g = MatrixUtils.createRealMatrix(arrayGames); RealMatrix p = MatrixUtils.createRealMatrix(arrayPlayers); // RealMatrix c = MatrixUtils.createRealMatrix(coeff); ? // building vector from matrix RealVector gVector = m.getColumnVector(0); RealVector pcVector = ????? } |
+0
-0