Calculer une matrice carrée
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Calculer une matrice carrée



  1. #1
    Yky1939

    Calculer une matrice carrée


    ------

    Bonsoir tout le monde. Je suis étudiant et débutant en programmation. Récemment j'ai eu l'idée d'écrire un programme en c++ capable de faire la multiplication
    de 2 matrices; et je m'y suis lancé du coup(Histoire de prendre de l'avance sur mes camarades). Au bout d'un moment, j'ai décidé d'écrire le programme de manière à ce qu'il fasse la multiplication de 2 matrices carrées seulement. Malheureusement je ne suis pas arrivé à obtenir le résultat voulu. Je ne sais pas ce qui ne va pas avec mon programme. Je serais vraiment ravi que vous m'aidiez à identifier le problème et à le régler. Merci d'avance !

    voici le code que j'ai écrit :

    Code:
    #include<stdio.h>
    
    
    int main()
    {
        int matrice1[2][2],matrice2[2][2], matrice3[2][2];
        int i,j,taille1,s,c1=0,c2=0,i2=0,j2=0,j3=0;
        //afficher un message à l'utilisateur
        printf("Ce programme vous permet de faire la multiplication de 2 matrice \n carrées dont la taille est infèrieure à 11\n");
        do
        {
        printf(" Entrez la taille de vos matrices\n");
        scanf("%d",&taille1);                         //ici, j'essaie d'abord avec une taille de 2
        }
        
        while(taille1<=0 || taille1>2);   
        printf("Vous allez remplir les 2 matrices ensembles\n");
        for(i=0;i<taille1;i++)
        for(j=0;j<taille1;j++)
        {
            printf("Entrez l'élément [%d,%d] de la première matrice\n",i,j);
            scanf("%d",&matrice1[i][j]);
            printf("Entrez l'élément [%d,%d] de la deuxième matrice\n",i,j);
            scanf("%d",&matrice2[i][j]);
        }
        printf("\n"); //afficher un espace pour bien écrire
        printf("Voici les deux matrices \n");
        for(i=0;i<taille1;i++)
        {
            for(j=0;j<taille1;j++)
            printf("%d\t",matrice1[i][j]);
        printf("\n");
        }
        //affichage de la seconde matrice
        printf("\n");
    
        for(i=0;i<taille1;i++)
        {
            for(j=0;j<taille1;j++)
            printf("%d\t",matrice2[i][j]);
        printf("\n");
        }
    
        printf("\n");
        printf(" voici la multiplication des deux matrices carré\n");
    
        s=0;// initialiser la somme
    
          
        while(i!=taille1)
        {
        	s=0;j2=0;i2=0;
        	while (j2 !=taille1*2)
        	{
        		j3=0;
        		for(j=0;j<taille1;j++)
        		{
        		   j3++;
        	     	if(j2<taille1 )
        	     	{
        	     		s=s+matrice1[i][j]*matrice2[c1][c2]; // remplissage de la treoisième matrice
        	     		c1=c1+1;
    				 }
    				 if(j2>=taille1)
    				 {
    				 	c1=0;
    				 	c2++;
    				 	if(j3==taille1)
    				 	{
    				 		i2++;
    				 		c1++;
    					 }
    					s=s+matrice1[i][j]*matrice2[c1][c2];
    				 }
    				 j2=j2+1;
    				 matrice3[i][i2]=s;
    				 j++;
                }
    		}
    		i++;
        }
    
        
        for(i=0;i<taille1;i++)
        {
          for(j=0;j<taille1;j++)
            printf("%d\t",matrice3[i][j]);
        printf("\n");
        }
    
        return 0;
    }

    -----
    Dernière modification par Jack ; 20/04/2023 à 00h09. Motif: Ajout des balises code

  2. #2
    Jack
    Modérateur

    Re : Calculer une matrice carrée

    Bonjour, il s'agit plutôt de C et pas de C++, même si un compilateur C++ peut compiler ce code.

    Je ne comprends pas pourquoi tu te compliques tant la vie dans le calcul du produit matriciel. Il suffit d'appliquer la formule et le code devient très simple:
    Code:
    for (int i = 0; i < taille1; i++)
        for (int j = 0; j < taille1; j++) {
            matrice3[i][j] = 0; // Initialisation de la somme
            for (int k = 0; k < taille1; k++)
                matrice3[i][j] += matrice1[i][k] * matrice2[k][j];
        }

  3. #3
    MissJenny

    Re : Calculer une matrice carrée

    deplus il n'y a aucune différence entre le produit de deux matrices carrées et celui de deux matrices quelconques (mais de dimensions compatibles)

  4. #4
    Jack
    Modérateur

    Re : Calculer une matrice carrée

    Citation Envoyé par MissJenny Voir le message
    deplus il n'y a aucune différence entre le produit de deux matrices carrées et celui de deux matrices quelconques (mais de dimensions compatibles)
    c'est sur, il n'y a que 2 caractères à changer dans mon code

  5. A voir en vidéo sur Futura
  6. #5
    Yky1939

    Re : Calculer une matrice carrée

    Oui, vous aviez raison. J'étais entrain de me compliquer la Vie pour rien. Merci de m'avoir aidé.

Discussions similaires

  1. Racine carrée d'une matrice
    Par Sebslp dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 04/10/2014, 10h17
  2. matrice carrée symétrique positive et matrice stochastique ?
    Par julien_4230 dans le forum Mathématiques du supérieur
    Réponses: 17
    Dernier message: 08/07/2013, 16h33
  3. Matrice carrée
    Par invite3342f9e7 dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 27/10/2011, 14h07
  4. déterminant d'une matrice non carrée ??
    Par invitee43ff1c2 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 24/05/2011, 11h29
  5. matrice carrée 2*2
    Par rouday_s dans le forum Mathématiques du supérieur
    Réponses: 9
    Dernier message: 10/04/2008, 19h43