Calcul de grosses matrices
Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
-
kopru49
- Messages: 1
- Enregistré le: 05 Juin 2008, 13:14
-
par kopru49 » 05 Juin 2008, 13:21
Bonjour à tous,
Je cherche à calculer le produits de 2 grosses matrice
Je n'y arrive pas sous excel: nombre colonnes >300
comment faire?
merci
-
Nightmare
- Membre Légendaire
- Messages: 13817
- Enregistré le: 19 Juil 2005, 18:30
-
par Nightmare » 05 Juin 2008, 13:30
Bonjour,
quelque soit le logiciel, le temps de calcul sera énorme.
Les coefficients de tes matrices ne sont ils pas liés entre eux? Cela pourrait faciliter grandement les calculs!
-
nuage
- Membre Complexe
- Messages: 2214
- Enregistré le: 09 Fév 2006, 23:39
-
par nuage » 05 Juin 2008, 13:49
Salut,
j'ai entendu dire que
scilab pouvait faire ce genre de calcul.
Mais je n'ai jamais essayé.
De toutes façon la remarque de
Nightmare reste valable.
-
abcd22
- Membre Complexe
- Messages: 2426
- Enregistré le: 13 Jan 2006, 15:36
-
par abcd22 » 05 Juin 2008, 14:22
Bonjour,
Comme nuage, je pense qu'un logiciel de calcul scientifique devrait faire l'affaire, mais je ne suis pas d'accord avec le temps de calcul énorme : l'algorithme naïf pour la multiplication de deux matrice n×n est en O(n³), soit de l'ordre de 27000000 d'opérations pour des matrices 300×300 (et j'imagine que les logiciels scientifiques utilisent des algorithmes plus efficaces), ce qui ne doit pas prendre plus de quelques minutes (peut-être beaucoup moins, j'ai la flemme de tester précisément) de calcul sur un ordinateur moderne.
-
ZaX
- Messages: 4
- Enregistré le: 05 Juin 2008, 19:24
-
par ZaX » 05 Juin 2008, 19:50
Pour réaliser ce calcul, il est possible d'utiliser Matlab ou son équivalent libre Octave. Le produit de matrice est il me semble optimisé si cela est possible, et sinon le calcul se fera de toute façon très rapidement.
Exemple sous octave :
ctave-2.9.17:12> a = rand(300,300);
octave-2.9.17:13> b = rand(300, 300);
octave-2.9.17:14> tic
octave-2.9.17:15> c = a*b;
octave-2.9.17:16> toc
Elapsed time is 0.06621909 seconds.
le temps affiché est celui entre la commande tic et la commande toc.
Moins de 0.1secondes. J'ai un Core2Duo 2.2Ghz, mais bon ça montre que le calcul peut être rapide.
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 49 invités