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

kimmelf2 Messages postés 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005 - 21 oct. 2003 à 00:26
kimmelf2 Messages postés 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005 - 23 oct. 2003 à 01:18
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

kimmelf2 Messages postés 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005
23 oct. 2003 à 01:18
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
Utilisateur anonyme
21 oct. 2003 à 07:39
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.
kimmelf2 Messages postés 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005
21 oct. 2003 à 00:26
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 ...
Rejoignez-nous