sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 2014
-
12 oct. 2005 à 08:59
freeben666
Messages postés17Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention19 mai 2006
-
19 mai 2006 à 18:28
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
freeben666
Messages postés17Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention19 mai 2006 19 mai 2006 à 18:28
C'est vrai que ma classe est loin d'être optimisée, vu que c'est basé sur des algos pas étudiés pour les ordis mais pour les humains, mais vu que j'en connais pas d'autre et que à la base j'avais développé cette classe pour bosser sur des matrices 3x3, voir 4x4 au max....
struk1981
Messages postés9Date d'inscriptionjeudi 21 août 2003StatutMembreDernière intervention19 mai 20061 19 mai 2006 à 17:01
9a va, g compris mon probleme.
ENf ait, c'est un fonction recursive et donc, quand tu travails avec une matrice [12,12], ca te prend une plombe !!!!
J'en avais besoin pour résoudre un système d'equation mais finalement, j'ai utiliser le Singular Value Decomposition (SVD)
Merci
freeben666
Messages postés17Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention19 mai 2006 19 mai 2006 à 16:01
Non rien de nouveau. En fait j'ai un peu laissé tomber le C# pour me concentrer sur le C++/SDL/OpenGL. Mais explique moi ton problème je pourrais peut-être t'aider.
struk1981
Messages postés9Date d'inscriptionjeudi 21 août 2003StatutMembreDernière intervention19 mai 20061 18 mai 2006 à 11:14
Hello,
aurais tu du nouveau code depuis ton dernier message???
J'ai qqu probleme avec ta methode Inverse.
Merci d'avance
freeben666
Messages postés17Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention19 mai 2006 25 nov. 2005 à 19:54
Merci, je ne connaissais pas cette algo.
J'ai pas beaucoup touché à mon code depuis que je l'ai posté, vu qu'on a vu la diagonalisation/triangularisation y'a seulement une semaine...
pkrk_aprepa
Messages postés4Date d'inscriptiondimanche 20 novembre 2005StatutMembreDernière intervention 6 décembre 2005 25 nov. 2005 à 17:45
Salut, désolé de devoir être un peut négatif mais ta class, tu n'en feras pas grand chose tel quel.
Je m'explique :
Pour commencer, je suis plutôt d'accord avec sebmafate en ce qui concerne la différence entre méthode et propriété.
Le plus grave, c'est l'utilisation de la méthode des comatrices, si tu l'utilise sur une matrice [10,10] tu peux aller boire un café ! ! ! La complexité est de O(n !).
Utilise plutôt le pivot de gauss :
http://www.sciences.univ-nantes.fr/physique/perso/aloui/m_numeri/11syslin/11syslin.htm Complexité O(n^2) (ou ^3 je ne sais plus).
C'est pas beaucoup plus compliquer à implémenter et la différence de rapidité est stupéfiante.
Bon courage ;-)
freeben666
Messages postés17Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention19 mai 2006 4 nov. 2005 à 15:49
Nan j'ai jamais reussi à faire autre chose que des matrices 2x3 avec...
Enfin j'ai pas essayé longtemps..
bucherb
Messages postés412Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention13 août 2007 4 nov. 2005 à 11:09
Pis System.Drawing.Drawing2D.Matrix ? Il est pas bien?
freeben666
Messages postés17Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention19 mai 2006 18 oct. 2005 à 19:08
J'avais justement remarqué ça et c'est coorigé, mais je n'ai pas encore mis à jour sur le site. Je mettrait à jour une fois la doc et les commentaires finalisés, et je traque aussi les bugs dans le genre.
Merci beaucoup ;)
t_barbillon
Messages postés341Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention10 février 20092 18 oct. 2005 à 11:44
Salut, pour ce qui est des méthodes/propriétés je dirai que le déterminant serait plutôt une propriété mais que la transposée, l'inverse la comatrice, la matrice diagonale ... serait plutôt des méthodes.
Par contre j'ai un petit souci dans le code du calcul de l'inverse
tu écris Inverse = t_Comatrice * (1/det); et si le determinant est nul ? Je sais que ta classe inclut une proprité IsInversible mais bon si on passe outre on a un gros plantage.
freeben666
Messages postés17Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention19 mai 2006 17 oct. 2005 à 21:50
je vois pas en quoi le calcul du déterminant serait une méthode. Pour moi le déterminant est quelque chose de propre à la matrice, qui le détermine (justement ^^), donc une propriété. Pareil pour tout le reste, du fait que ça n'agit pas sur la matrice en elle-même mais plutot que ça en retourne une nouvelle, en rapport avec certaines propriétés de la matrice d'origine, je ne considère pas ça comme une méthode. Mais j'ai peut-être mal compri la différence méthode/propriété.
t_barbillon
Messages postés341Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention10 février 20092 13 oct. 2005 à 08:18
Salut, c'est noté
allez une bonne note pour t'encourager
freeben666
Messages postés17Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention19 mai 2006 12 oct. 2005 à 18:42
Merci pour vos commentaires.
J'essayerai de rajouter des fonctionnalités, mais ce n'est pas à l'ordre du jour. Pour le moment je m'occupe surtout de l'optimisation/simplification du code ( merci Sebmafate ) et de sa documentation.
Je rajouterais surement des fonction telles que les valeurs propre et la diagonalisation plus tard, d'ici un mois pas avant.
Encore merci ^^
t_barbillon
Messages postés341Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention10 février 20092 12 oct. 2005 à 12:48
Salut, bon code pas mal du tout
Perso j'autrai ajouté le calcul des valeurs propres, vu que tu calcul le déterminant et la trace il n'y a plus grand chose à faire.
Dans le même ordre d'idée j'aurai ajouté une propriété indiquant si la matrice est diagonalisable, et éventuellement une méthode de diagonalisation mais là c'est plus long.
Je dis tout ça parce que en robotique, les matrices de déplacement sont complexes, et donc il est plus simple de bosser avec des matrices diagonales
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 12 oct. 2005 à 08:59
Bon code... mais quelques remarques...
Tes méthodes 'Initialise' n'ont rien à faire en public... passe les en private.
Evite ce genre de syntaxe :
public bool IsCarree
{
get {
if ( this._nbLignes == this._nbColonnes ) { return true; }
else { return false; }
}
}
pour ceci :
public bool IsCarre {
get { return this._nbLignes == this._nbColonnes; }
}
tout aussi lisible.
enfin, pour moi le calcul du déterminant, la transposition, l'inverse des matrices ne sont pas des propriétés... mais plutot des méthodes.
19 mai 2006 à 18:28
19 mai 2006 à 17:01
ENf ait, c'est un fonction recursive et donc, quand tu travails avec une matrice [12,12], ca te prend une plombe !!!!
J'en avais besoin pour résoudre un système d'equation mais finalement, j'ai utiliser le Singular Value Decomposition (SVD)
Merci
19 mai 2006 à 16:01
18 mai 2006 à 11:14
aurais tu du nouveau code depuis ton dernier message???
J'ai qqu probleme avec ta methode Inverse.
Merci d'avance
25 nov. 2005 à 19:54
J'ai pas beaucoup touché à mon code depuis que je l'ai posté, vu qu'on a vu la diagonalisation/triangularisation y'a seulement une semaine...
25 nov. 2005 à 17:45
Je m'explique :
Pour commencer, je suis plutôt d'accord avec sebmafate en ce qui concerne la différence entre méthode et propriété.
Le plus grave, c'est l'utilisation de la méthode des comatrices, si tu l'utilise sur une matrice [10,10] tu peux aller boire un café ! ! ! La complexité est de O(n !).
Utilise plutôt le pivot de gauss :
http://www.sciences.univ-nantes.fr/physique/perso/aloui/m_numeri/11syslin/11syslin.htm
Complexité O(n^2) (ou ^3 je ne sais plus).
C'est pas beaucoup plus compliquer à implémenter et la différence de rapidité est stupéfiante.
Bon courage ;-)
4 nov. 2005 à 15:49
Enfin j'ai pas essayé longtemps..
4 nov. 2005 à 11:09
18 oct. 2005 à 19:08
Merci beaucoup ;)
18 oct. 2005 à 11:44
Par contre j'ai un petit souci dans le code du calcul de l'inverse
tu écris Inverse = t_Comatrice * (1/det); et si le determinant est nul ? Je sais que ta classe inclut une proprité IsInversible mais bon si on passe outre on a un gros plantage.
17 oct. 2005 à 21:50
13 oct. 2005 à 08:18
allez une bonne note pour t'encourager
12 oct. 2005 à 18:42
J'essayerai de rajouter des fonctionnalités, mais ce n'est pas à l'ordre du jour. Pour le moment je m'occupe surtout de l'optimisation/simplification du code ( merci Sebmafate ) et de sa documentation.
Je rajouterais surement des fonction telles que les valeurs propre et la diagonalisation plus tard, d'ici un mois pas avant.
Encore merci ^^
12 oct. 2005 à 12:48
Perso j'autrai ajouté le calcul des valeurs propres, vu que tu calcul le déterminant et la trace il n'y a plus grand chose à faire.
Dans le même ordre d'idée j'aurai ajouté une propriété indiquant si la matrice est diagonalisable, et éventuellement une méthode de diagonalisation mais là c'est plus long.
Je dis tout ça parce que en robotique, les matrices de déplacement sont complexes, et donc il est plus simple de bosser avec des matrices diagonales
12 oct. 2005 à 08:59
Tes méthodes 'Initialise' n'ont rien à faire en public... passe les en private.
Evite ce genre de syntaxe :
public bool IsCarree
{
get {
if ( this._nbLignes == this._nbColonnes ) { return true; }
else { return false; }
}
}
pour ceci :
public bool IsCarre {
get { return this._nbLignes == this._nbColonnes; }
}
tout aussi lisible.
enfin, pour moi le calcul du déterminant, la transposition, l'inverse des matrices ne sont pas des propriétés... mais plutot des méthodes.
Bon courage pour la suite.