Ej. 3 Matrices inversas
El ejercicio nos pide lo siguiente:
Realiza
un programa que convierta una matriz a su matriz inversa.
Solución
Para la
resolución de este programa, se utilizarán matrices, así como operaciones aritméticas
y algebraicas básicas.
Primero
declararemos nuestros variables <int> (i,j,k,n) y nuestras matrices Original(A)
e Identidad (I), y las variables pivote y aux, recordar que las matrices se especifican con la siguiente
sintaxis “float Matriz [n][n”].
Posterior a ello, pediremos al usuario un valor de n para el tamaño de nuestras
matrices. Después de eso, rellenáramos el valor de nuestra matriz A (matriz
ingresada) e I (matriz identidad) con un ciclo for, en el caso de la
matriz I se utilizará un if para rellenar con 1 y o las filas
y columnas correspondientes. A continuación, se muestran las matrices A e I.
Por último, se realizan operaciones mediante la variable pivote y la variable
aux, esto con el objetivo de cambiar las filas y columnas de las matrices A e
I. Obtenidas las matrices, la matriz I será por consiguiente la matriz inversa
de la matriz A dada originalmente, por ello se muestra al último la matriz I.
Se
muestra el programa para convertir una matriz a su matriz inversa: #include <iostream> using namespace std; int main() { //Matrices short int i,j,k,n; cout << "Ingrese una valor para la matriz nxn: " << endl; cin >> n; float I[n][n],A[n][n], aux, pivote; for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ cout << "Valores matriz: "; cin >> A[i][j]; I[i][j] = 0 ; if(i==j){ I[i][j]=1; } } cout << endl; } for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ cout << A[i][j] << " "; } cout << endl; } for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ cout << I[i][j] << " "; } cout << endl; } //Pivote for(int i=0;i<n;i++){ pivote=A[i][i]; for(int k=0;k<n;k++){ A[i][k]=A[i][k]/pivote; I[i][k]=I[i][k]/pivote; } for(int j=0;j<n;j++){ if(i!=j){ aux=A[j][i]; for(int k=0;k<n;k++){ A[j][k]=A[j][k]-aux*A[i][k]; I[j][k]=I[j][k]-aux*I[i][k]; } } } } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ cout<< I[i][j] << " "; } cout<< endl; } }

Comentarios
Publicar un comentario