Précédent   Forum du club des développeurs et IT Pro > Autres langages > Autres langages > Maple
Maple Forum d'entraide sur Maple
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/08/2012, 18h23   #1
NoThik
Invité de passage
 
Enseignant Chercheur
Inscription : août 2012
Messages : 3
Détails du profil
Informations professionnelles :
Activité : Enseignant Chercheur

Informations forums :
Inscription : août 2012
Messages : 3
Points : 3
Points : 3
Par défaut Matrice différente d'elle-même

Bonjour,

Désolé pour les accents, je suis sur un clavier anglais.
Voici le problème : je crée une matrice M (Matrix). J'utilise DeleteColumn de LinearAlgebra ainsi que Concatenate de ArrayTools, afin de retirer la dernière colonne de M et de la remettre immédiatement (on appelle N la "nouvelle" matrice, identique a M si on fait un print).
Problème : si on teste "if M=N then return 1 else return 0", Maple retourne 0 .
Pourtant DeleteColumn retourne bien un Matrix, et j'ai pris soin de prendre la dernière (k-ieme) colonne de M avec le code Matrix(n,1,Column(M,k)) pour que tout ait lieu dans la catégorie des Matrix.

Merci pour votre aide.
PS: vous pouvez rigoler en imaginant le temps qu'il faut pour localiser un problème pareil au sein d'un programme qui semble parfaitement rédigé
NoThik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2012, 11h39   #2
NoThik
Invité de passage
 
Enseignant Chercheur
Inscription : août 2012
Messages : 3
Détails du profil
Informations professionnelles :
Activité : Enseignant Chercheur

Informations forums :
Inscription : août 2012
Messages : 3
Points : 3
Points : 3
Par défaut le code

Voici le code précis :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
> restart;
> with(LinearAlgebra); with(ArrayTools);

> test := proc (X) 
local c, Y, i; 
c := ColumnDimension(X); 
Y := Concatenate(2, DeleteColumn(X, c), Matrix(3, 1, Column(X, c))); 
if Y = X then return true; fi; 
return false; 
end proc;

> m := Matrix([[5, 6, 1, 2, 3, 4], [0, 1, 0, 1, 0, 1], [0, 0, 0, 0, 0, 0]]);
> test(m);
NoThik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2012, 13h50   #3
NoThik
Invité de passage
 
Enseignant Chercheur
Inscription : août 2012
Messages : 3
Détails du profil
Informations professionnelles :
Activité : Enseignant Chercheur

Informations forums :
Inscription : août 2012
Messages : 3
Points : 3
Points : 3
Par défaut ok

J'ai la solution, en fait tester l'egalite de deux matrices se fait par la commande "Equal(M,N)" et non "M=N".
NoThik est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h46.


 
 
 
 
Partenaires

Hébergement Web