begin process at 2012 05 27 16:31:01
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > GAUSS-JORDAN SUR DES MATRICES CARRÉS

GAUSS-JORDAN SUR DES MATRICES CARRÉS


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Classé sous :gauss, jordan, inverse Niveau :Débutant Date de création :01/05/2006 Vu :11 528

Auteur : Maxou95

Ecrire un message privé
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

Ce code vous permettra de résoudre des systemes linéaires (avec une matrice carré) de type A.X=b à l'aide de la méthode de GAUSS-JORDAN.

Source

  • #include <stdio.h>
  • #include <conio.h>
  • #include <math.h>
  • #include <string.h>
  • #include <stdlib.h>
  • #include <iostream.h>
  • #include <process.h>
  • #include <stdlib.h>
  • void saisie_mat(float m[100][100],int,int);
  • void affich_mat(float m[100][100],int l,int c);
  • void gauss_jordan(float m1[100][100],float m2[100][100],int l,int c);
  • void affich_systeme(float m1[100][100],float m2[100][100],int l,int c);
  • void copie_mat(float m[100][100],float m1[100][100],int l,int c);
  • void identite_mat(float m[100][100],int l);
  • void main()
  • {
  • int a,b;
  • int e,f;
  • float mat[100][100],mat1[100][100];
  • system ("cls");
  • system ("color 3f");
  • printf(" ===> Saisissez votre matrice carree A : \n\n");
  • printf("Combien de lignes : ");
  • scanf("%d",&a);
  • printf("Combien de colonnes : ");
  • scanf("%d",&b);
  • saisie_mat(mat,a,b);
  • printf("\n\n");
  • printf(" ===> Saisissez votre matrice B : \n\n");
  • printf("Combien de lignes : ");
  • scanf("%d",&e);
  • printf("Comien de colonnes : ");
  • scanf("%d",&f);
  • saisie_mat(mat1,e,f);
  • printf("\n\n");
  • affich_systeme(mat,mat1,a,b);
  • printf("\n\n");
  • gauss_jordan(mat,mat1,a,b);
  • printf("\n\n");
  • affich_systeme(mat,mat1,a,b);
  • }
  • void saisie_mat(float m[100][100],int l,int c)
  • { int i,j;
  • for(i=0;i<l;i++)
  • {
  • for(j=0;j<c;j++)
  • {
  • printf(" A[%d][%d] : ",i+1,j+1);
  • scanf("%f",&m[i][j]);
  • }
  • printf("\n");
  • }
  • }
  • void affich_systeme(float m1[100][100],float m2[100][100],int l, int c)
  • {
  • int i,j;
  • printf(" ===>Affichage du systeme lineaire : \n\n\n");
  • for(i=0;i<l;i++)
  • {
  • printf(" (");
  • for(j=0;j<c;j++)
  • {
  • printf(" %.2f ",m1[i][j]);
  • }
  • printf(" ) (X%d) =",i+1);
  • printf("\t%.2f",m2[i][0]);
  • printf("\n\n");
  • }
  • }
  • void gauss_jordan(float m1[100][100],float m2[100][100],int l,int c)
  • {
  • int i;
  • int j;
  • float tmp,tmp2;
  • float m3[100][100];
  • float m4[100][100];
  • float m5[100][100];
  • float m6[100][100];
  • int k=0;
  • identite_mat(m4,l);
  • affich_mat(m4,l,l);
  • for(i=0;i<l;i++)
  • {
  • copie_mat(m1,m3,l,c);
  • copie_mat(m2,m5,l,1);
  • copie_mat(m4,m6,l,l);
  • tmp=m1[i][i];
  • for(j=0;j<c;j++)
  • {
  • m1[i][j]=m1[i][j]/tmp;
  • m2[i][j]=m2[i][j]/tmp;
  • m4[i][j]=m4[i][j]/tmp;
  • }
  • for(k=0;k<l;k++)
  • {
  • if(k!=i)
  • {
  • tmp2=m1[k][i]/tmp;
  • for(j=0;j<c;j++)
  • {
  • m1[k][j]=m1[k][j]-tmp2*m3[i][j];
  • m4[k][j]=m4[k][j]-tmp2*m4[i][j];
  • m2[k][j]=m2[k][j]-tmp2*m5[i][j];
  • }
  • }
  • }
  • affich_systeme(m1,m2,l,c);
  • printf("\n\n\n");
  • printf(" ===> Matrice Inverse :");
  • affich_mat(m4,l,c);
  • }
  • }
  • void affich_mat(float m[100][100],int l,int c)
  • {
  • int i,j;
  • printf(" Affichage de la matrice \n\n\n");
  • for(i=0;i<l;i++)
  • {
  • for(j=0;j<c;j++)
  • {
  • printf("\t%.2f",m[i][j]);
  • }
  • printf("\n\n");
  • }
  • }
  • void copie_mat(float m[100][100],float m1[100][100],int l,int c)
  • {
  • int i,j;
  • for(i=0;i<l;i++)
  • {
  • for(j=0;j<c;j++)
  • {
  • m1[i][j]=m[i][j];
  • }
  • }
  • }
  • void identite_mat(float m[100][100],int l)
  • {
  • int i,j;
  • for(i=0;i<l;i++)
  • {
  • for(j=0;j<l;j++)
  • {
  • m[i][j]=0;
  • }
  • m[i][i]=1;
  • }
  • }
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream.h>
#include <process.h>
#include <stdlib.h>

void saisie_mat(float m[100][100],int,int);
void affich_mat(float m[100][100],int l,int c);
void gauss_jordan(float m1[100][100],float m2[100][100],int l,int c);
void affich_systeme(float m1[100][100],float m2[100][100],int l,int c);
void copie_mat(float m[100][100],float m1[100][100],int l,int c);
void identite_mat(float m[100][100],int l);



void main()
{
	int a,b;
	int e,f;
	float mat[100][100],mat1[100][100];

	system ("cls");
	system ("color 3f");

	printf(" ===> Saisissez votre matrice carree A : \n\n");
	printf("Combien de lignes : ");
	scanf("%d",&a);

	printf("Combien de colonnes : ");
	scanf("%d",&b);
	
	saisie_mat(mat,a,b);

	printf("\n\n");

	printf(" ===> Saisissez votre matrice B : \n\n");
	printf("Combien de lignes : ");
	scanf("%d",&e);
	printf("Comien de colonnes : ");
	scanf("%d",&f);	

	saisie_mat(mat1,e,f);
	
	printf("\n\n");
		
	affich_systeme(mat,mat1,a,b);

	printf("\n\n");

	gauss_jordan(mat,mat1,a,b);

	printf("\n\n");

	affich_systeme(mat,mat1,a,b);



}
	



void saisie_mat(float m[100][100],int l,int c)
{ int i,j;
  
  for(i=0;i<l;i++)
  {
    for(j=0;j<c;j++)
	{
		printf("  A[%d][%d] : ",i+1,j+1);
		scanf("%f",&m[i][j]);
	}
     printf("\n");
  }
}



void affich_systeme(float m1[100][100],float m2[100][100],int l, int c)
{
	int i,j;
	printf(" ===>Affichage du systeme lineaire : \n\n\n");
	
	for(i=0;i<l;i++)
	{
		printf("  (");
		for(j=0;j<c;j++)
		{
			printf("  %.2f  ",m1[i][j]);
		}
		printf(" )    (X%d)   =",i+1);
		printf("\t%.2f",m2[i][0]);
		printf("\n\n");
	}
}


void gauss_jordan(float m1[100][100],float m2[100][100],int l,int c)
{
	int i;
	int j;
	float tmp,tmp2;
	float m3[100][100];
	float m4[100][100];
	float m5[100][100];
	float m6[100][100];
	int k=0;
	identite_mat(m4,l);
	affich_mat(m4,l,l);

	for(i=0;i<l;i++)
	{
		copie_mat(m1,m3,l,c);
		copie_mat(m2,m5,l,1);
		copie_mat(m4,m6,l,l);
		tmp=m1[i][i];
		for(j=0;j<c;j++)
		{
			m1[i][j]=m1[i][j]/tmp;
			m2[i][j]=m2[i][j]/tmp;
			m4[i][j]=m4[i][j]/tmp;
		}
		
		for(k=0;k<l;k++)
		{
			if(k!=i)
			{
				tmp2=m1[k][i]/tmp;
				for(j=0;j<c;j++)
				{
					m1[k][j]=m1[k][j]-tmp2*m3[i][j];
					m4[k][j]=m4[k][j]-tmp2*m4[i][j];
					m2[k][j]=m2[k][j]-tmp2*m5[i][j];
				}
			}
							
		}
		affich_systeme(m1,m2,l,c);
		printf("\n\n\n");
		printf(" ===> Matrice Inverse :");
		affich_mat(m4,l,c);
	}
}



	
	
	
	
void affich_mat(float m[100][100],int l,int c)
{
	int i,j;
	printf("  Affichage de la matrice  \n\n\n");
	for(i=0;i<l;i++)
	{
		for(j=0;j<c;j++)
		{
			printf("\t%.2f",m[i][j]);
		}
		printf("\n\n");
	}
}


void copie_mat(float m[100][100],float m1[100][100],int l,int c)
{
	int i,j;
	for(i=0;i<l;i++)
	{
		for(j=0;j<c;j++)
		{
			m1[i][j]=m[i][j];
		}
	}
}



void identite_mat(float m[100][100],int l)
{
	int i,j;
	for(i=0;i<l;i++)
	{
		for(j=0;j<l;j++)
		{
			m[i][j]=0;
		}
		m[i][i]=1;
	}
}

 Conclusion

Ben d'abord faut saisir la matrice A, qui est censée etre carré, alors faut mettre le même nombre de lignes et de colonnes, si j'dis ca c'est parce que y en a qui vont me dire que j'aurias pu utilisé que un seul "int" mais j'avais pas le temps d'y penser quand je l'ai fait. Ensuite saisissez la matrice b, c'est une matrice colonne dans la plupart des cas alors voilà. Après ca resoud le systeme, et aussi ca calcul l'inverse de la matrice A, mais jcrois que c pas bon ce calcul et j'ai pas encore eu le temps de voir ce qui y allait pas, c pour ca que j'ai pas mis en avant le calcul de l'inverse dans le résumé du code.
Voili voilou
DSL pour le langage SMS


 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture HDR EXPOSURE FUSION par mecrosoft
Source avec Zip Source avec une capture CLASS MATRICE C++ par elkasimi2007
RÉSOLUTION DES SYSTÈME AX=B par cresuscresus
ALGORITHME DE GAUSS-JORDAN par hasnaoui_karim
Source avec Zip SIMPLEX, GAUSS, DETERMINANT ET INVERSE par soulreaver35

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

pivot de gauss [ par DeNeBj ] bonjourj'aimerais trouver un prog en c qui utilise seulement les tableaux et les boucles et qui resoud des systemes d'equations (on s'arrete à 10 ) ke inverse de matrice dynamique [ par anaisa ] Aidez nous please c pr programmer en langage Votre texte ICIC l inverse de la matrice dynamique merci bcp !!!!!! algorithme de gauss et decomposition LU [ par speedamine ] bonjour a tous.je voudrai avoir des algorithmes ,ecrits en borland pascal,suivants:methode de gauss ordinaire pour la resolution d'un systeme .la deco Convertir Binaire > decimal et pas l'inverse [ par hop ] Bonjour,J'ai cherché dans le forum comment faire pour convertir un mot binaire en décimal (dans cet ordre et pas dans l'autre)et je n'ai pas trouvé do Calculatrice Inverse Polonaise [ par vpieplu ] J'ai un probleme. Je n'arrive pas a coder la calculatrice ... Je ne sais qu'elle commande mettre dans les fonctions + - * / Sin Inv Cos C'est super UR urgent::inverse de getprocaddress [ par kidpigeyre ] Je cherche a executer uen fonction du programme lançant le dll à parti du dll en quelque sorte faire l'inverse d'un getprocaddressComment faire?kidpig axe des x inverse ??? [ par sheeper ] Bonjour,Bon je sais ma question est un peu bete mais est ce que c'est normal que j'ai les x positifs a gauche de mon ecran au lieu de la droite dans u fft inverse [ par perig ] SalutJ'ai un projet en C, c'est du traitement de l'image pour ca je dois utiliser la fft.J'ai trouvé des sources ici sur les fft 1D et 2D mais moi il [C++] La Fonction RGB | "fonction inverse" de celle ci ? [ par c4h8o3 ] Bonjourj'ai ceci par exemplecouleur = RGB (234,54,65) ;j'aimerais savoir si il existe une fonction qui me permet de retrouver les valeurs RGB en faisa Calculatrice Inverse Polonaise [ par Tosem ] Bonjour,Je dois réaliser une calculatrice de ce genre. Est-ce que qqun pourrait me fournir un ou des liens de site où je pourrais trouver des sources


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales