Resolution de systèmes d'équation (n équations, n inconnues)

Soyez le premier à donner votre avis sur cette source.

Vue 8 003 fois - Téléchargée 801 fois

Description

C'est l'application de la méthode de Gauss, sans stratégie du pivot.

Toutes les équations doivent être mise sous forme de matrices:

ex (au pif):
2x + 3y = 6
3x - y = 2

>

mat


|2 3|
|3 -1|

X =
|x|
|y|

B =
|6|
|2|

le système devient alors mat * X = B

Conclusion :


Il est possible qu'il y ait des erreurs lors de la compilation car il n'a pas été testé...
Mais le principe de résolution est correct.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
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 ...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.