MATRICES
DEFINICIÓN
DE MATRIZ
Se llama matriz de
orden m×n a todo
conjunto rectangular de elementos aij dispuestos
en m líneas
horizontales (filas) y n verticales
(columnas) de la forma:
Abreviadamente
suele expresarse en la forma A =(aij), con i =1, 2, ..., m, j
=1, 2, ..., n. Los subíndices indican la posición del elemento dentro de la
matriz, el primero denota la fila (i) y el segundo la columna (j). Por ejemplo
el elemento a25 será el elemento de la fila 2 y
columna 5.
Dos matrices son iguales cuando tienen la misma
dimensión y los elementos que ocupan el mismo lugar en ambas son iguales.
PRODUCTO
DE DOS MATRICES
Dos
matrices A y B son multiplicables si el número de columnas de A coincide con el número de filas de B.
Mm x n x Mn x p = M m x p
El
elemento cij de
la matriz producto se obtiene multiplicandocada
elemento de la fila i de
la matriz A por cada elemento de lacolumna j de
la matriz B y sumándolos.
CALCULAR MATRIZ INVERSA APLICANDO LA
DEFINICIÓN
Uno de los métodos para
calcular la matriz inversa es
aplicar la definición.
El método e aconsejable para matrices 2x2 (no aconsejable para matrices de orden 3 o superior)
El método e aconsejable para matrices 2x2 (no aconsejable para matrices de orden 3 o superior)
Paso para calcular la inversa
Supongamos que nos piden calcular la inversa de la matriz
1) Asignamos a los elementos de la matriz
inversa (que desconocemos) letras: a, b, c, ..
2) Planteamos la igualdad de la definición:
3) Resolvemos el producto de matrices
4) Igualamos elemento a elemento.
Por tanto la inversa es
OPERACIONES EN EL PROGRAMA DEV C++
#include<math.h>
#include<iostream>
#include <iomanip>
using namespace std;
//ZONA DE DECLARACION DE LOS VECTORES
const int TAM_N=3, TAM_M=3;
int i, k, j, Matriz[TAM_N][TAM_M], A[TAM_N][TAM_M], B[TAM_N][TAM_M], x[TAM_N][TAM_M];
double a,b,c,d,total;
int main ()
{
int opcion;
do{
cout<<"*********** MENU DE FUNCIONES ***********\n\n";
cout<<"1)PRODUCTO DE LA MATRICES\n";
cout<<"1)PRODUCTO DE LA MATRICES otro modo\n";
cout<<"1)OPCION 1\n";
cout<<"1)DIGITE <0> PARA SALIR \n";
cout<<"***************************\n\n";
cout<<"ELIJA UNA OPCION: ";cin>>opcion;
switch (opcion)
{
case 1: {
cout<<"****************** PRODUCTO DE LA MATRICES ******************\n\n";
cout<<"///// INGRESE VALORES DE LA MATRIZ A /////\n";
for(i=1; i<=TAM_N; i++)
for(j=1; j<=TAM_M; j++)
{
cout<<" INGRESE EL ELEMENTO A[ "<<i<<","<<j<<" ] = "; cin>>A[i][j];
}
cout<<endl;
cout<<"///// INGRESE VALORES DE LA MATRIZ B /////\n";
for(i=1; i<=TAM_N; i++)
for(j=1; j<=TAM_M; j++)
{
cout<<" INGRESE EL ELEMENTO B[ "<<i<<","<<j<<" ] = "; cin>>B[i][j];
}
cout<<endl;
cout<<"///// EL PRODUCTO ES /////\n";
//PROCESO
for(i=1; i<=TAM_N; i++)
for(j=1; j<=TAM_M; j++)
x[i][j]=0;
for (k=1; k<=TAM_N; k++)
{
x[i][j] = ( x[i][j]+ (A[i][k]*B[k][j]));
}
//RESULTADO
for(i=1; i<=TAM_N; i++)
for(j=1; j<=TAM_M; j++)
{
cout<<" EL NUEVO ELEMENTO ES M[ "<<i<<","<<j<<" ] = "<<x[i][j]<<endl;
}
cout<<endl;
cout<<endl;
cout<<"**********************\n\n";
//FIN DEL CASO 1
}
break;
case 2: {
//INICIAMOS LAS MATRICES EN 0
int matrizA[3][3] = {};
int matrizB[3][3] = {};
int matrizC[3][3] = {};
int numero = 0;
//MATRIZ A
for(int x = 0; x < 3; x++)
for(int y = 0; y < 3; y++)
{
cout << "INGRESE EL ELEMENTO A[" << x << "]" << "[" << y << "] = ";
cin >> numero;
matrizA[x][y] = numero;
}
//MATRIZ B
cout << endl;
for(int x = 0; x < 3; x++)
for(int y = 0; y < 3; y++)
{
cout << "INGRESE EL ELEMENTO B[" << x << "]" << "[" << y << "] = ";
cin >> numero;
matrizB[x][y] = numero;
}
//MULTIPLICACION DE MATRICES
for(int i = 0; i < 3; i++)
for(int j = 0; j < 3; j++)
for(int k = 0; k < 3; k++)
matrizC[i][j] = (matrizC[i][j] + (matrizA[i][k] * matrizB[k][j]));
//IMPRIME MATRIZ A
cout << endl << "DISTRIBUCION GRAFICA\n" << "----------------------" << endl << "Matriz A: " << endl;
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
cout << setw(10) << matrizA[i][j];
}
cout << endl;
}
cout << endl << "Matriz B: " << endl;
//iMPRIME MATRIZ B
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
cout << setw(10) << matrizB[i][j];
}
cout << endl;
}
//iMPRIME RESULTADO
cout << endl << "\nMultiplicacion de A x B: \n" << endl;
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
cout << setw(10) << matrizC[i][j];
}
cout << endl;
}
}
break;
case 3: {
cout<<"INGRESE LOS VALORES DE LA MATRIZ:"<<endl;
cout<<"|a b|" <<endl;
cout<<"|c d|" <<endl;
cout<<endl;
cout<<"a: ";
cin>>a;
cout<<"b: ";
cin>>b;
cout<<"c: ";
cin>>c;
cout<<"d: ";
cin>>d;
total=a*d-b*c;
if(total!=0)
{
cout<<endl;
cout<<"LA MATRIZ INVERSA ES : \n"<<endl;
cout<<d/total<<" "<<-b/total<<endl;
cout<<-c/total<<" "<<a/total<<endl;
}
else{
cout<<"Error el det. da 0";
}
}
break;
}
}while (opcion!=0);
system ("pause");
return 0;
}
No hay comentarios:
Publicar un comentario