Producto de matrices: A*AT*A

Sergio Ferrer Benedí

/*  Este programa solicita una matriz A, calcula y muestra su traspuesta (AT)  y después calcula y muestra el producto A*AT*A  */


#include<iostream>
#define DIM 100
using namespace std;

//FUNCIONES UTILIZADAS

void leermatriz (float M[DIM][DIM],int n)
{
 int i,j;
 cout<<"Dame los elementos de la matriz "<<endl;
 for(i=0;i<n;i++)
 {
 cout<<"Dame la fila "<<i+1<<": ";
 for(j=0;j<n;j++)
 cin>>M[i][j];
 }
}

void escribirmatriz(float M[DIM][DIM],int n)
{
 int i,j;
 for(i=0;i<n;i++)
 {
 for(j=0;j<n;j++)
 {
 cout<<" "<<M[i][j];
 }
 cout<<endl;
 }
}

void matriztraspuesta(float M[DIM][DIM],float MT[DIM][DIM],int n)
{
 int i,j;

 for(i=0;i<n;i++)
 {
 for(j=0;j<n;j++)
 {
 MT[j][i] = M[i][j];
 }
 }
}

void productomatrices(float M1[DIM][DIM],float M2[DIM][DIM],
                      float M1M2[DIM][DIM],int n)
{
 int i,j,k;

 for(i=0;i<=n;i++)
 for(j=0;j<n;j++)
 {
 M1M2[i][j] = 0;
 for(k=0;k<n;k++)
 M1M2[i][j]+=M1[i][k]*M2[k][j];
 }
}

//PROGRAMA PRINCIPAL

int main()
{
 cout<<"\t **** CALCULO DEL PRODUCTO A*AT*A **** "<<endl<<endl;

 float A[DIM][DIM],AT[DIM][DIM],AAT[DIM][DIM],AATA[DIM][DIM];
 int n;

 cout<<"Dame la dimension de la matriz A ";
 cin>>n;

 cout<<endl;
 leermatriz(A,n);
 cout<<endl;

 cout<<"La matriz A traspuesta (AT) es : "<<endl<<endl;
 matriztraspuesta(A,AT,n);
 escribirmatriz(AT,n);

 cout<<endl<<"-------------------------------------------------"<<endl;

 productomatrices(A,AT,AAT,n);
 productomatrices(AAT,A,AATA,n);

 cout<<endl<<"El producto A*AT*A es : "<<endl<<endl;
 escribirmatriz(AATA,n);

 cout<<endl<<endl<<"-------------------------------------------------";
 cout<<endl<<"-------------------------------------------------"<<endl<<endl<<endl;

 return 0;
}

Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s