RESOLUTION DE SYSTÈMES D'ÉQUATION (N ÉQUATIONS, N INCONNUES)

Signaler
Messages postés
267
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
27 novembre 2005
-
Messages postés
267
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
27 novembre 2005
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/17091-resolution-de-systemes-d-equation-n-equations-n-inconnues

Messages postés
267
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
27 novembre 2005

les tests, ca doit rester, ca peux pas se simplifier comme ca.

moi j'ai juste indique la permutation car c'est la qu'il y a une modif a faire, pas dans les tests...

l'avantage de ma technique se fais surtout sentir qd N deviens grand. pour des petits systemes d'equations, la difference est pas trop sensible pour nous.

par contre, tu peux me faire un petit resume sur la diagonalisation ? ainsi que sur ta methode de resolution ? Je connaissais pas cette methode de resolution. J'en ai une autre mais vu que je l'ai pas utilise depuis un certain temps, il faudrais que je me replonge dedans.

Dailleur, histoire de verifier mon resultat, peut tu me donner le resultat du system que tu as mis dans ton source ?

merci d'avance
Messages postés
20
Date d'inscription
dimanche 24 mars 2002
Statut
Membre
Dernière intervention
21 octobre 2003

Ok, effectivement, ça accèlère la permutatiion de lignes !!

Il faut tout de même remarquer que les permutations ne sont pas systématiques, il se peut même qu'aucune permutation ne soit effectuée au cours de la résolution d'un système quelconque...

Mais c'est vrai que c'est une grosse erreur de ma part, merci pour ta rectification.
Messages postés
267
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
27 novembre 2005

gros bug de conception !!!!!!!

imagine une matrice 100*100, soit 10 000 valeurs
quand tu fais tes permutations de lignes, tu vas mettre un temps fou a tout commuter 1 par 1. apparemment tu fais des permuts par coonnes alors pourquoi ne pas faire

class matrice
{
private:
double *mat[N];
.....

ta permutation :
for(int l=0;l<N;l++)
{
temp=mat[i][l];
mat[i][l]=mat[k][l];
mat[k][l]=temp;
}

ca deviens :

double *temp;
temp=mat[i];
mat[i]=mat[k];
mat[k]=temp;
(si je me trompe pas)

comme ca, pas besoin de mettre une boucle et ca s'executera dans le meme temps quelque soit N...

et si tu veux economiser des variables (juste pour rire un peu)
mat[k]=(mat[k] ^ (mat[i] = mat[i] ^ (mat[k] = mat[k] ^ mat[i])))

ca s'appelle la permutation par ou exclusif ...