C/Visual C - Matriz Inversa en c++

 
Vista:

Matriz Inversa en c++

Publicado por Estudiante (1 intervención) el 09/06/2003 23:54:08
Hola, necesito urgentemente un codigo fuente de una matriz inversa en turbo c++, o visual studio c++, espero su valiosa ayuda, es importante en el desarrollo de mi carrera, les agradeceré su ayuda.
mi mail.\'
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Código fuente para calcular la matriz inversa en C++

Publicado por Alejandro (1286 intervenciones) el 03/07/2025 17:38:29
Aquí tienes un código fuente en C++ que calcula la inversa de una matriz 3x3 utilizando el método de determinantes y adjuntos. Este código es compatible con Turbo C++ y Visual Studio C++.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
using namespace std;
 
// Función para calcular el determinante de una matriz 3x3
float determinant(float matrix[3][3]) {
    return matrix[0][0] * (matrix[1][1] * matrix[2][2] - matrix[1][2] * matrix[2][1]) -
           matrix[0][1] * (matrix[1][0] * matrix[2][2] - matrix[1][2] * matrix[2][0]) +
           matrix[0][2] * (matrix[1][0] * matrix[2][1] - matrix[1][1] * matrix[2][0]);
}
 
//Función para calcular la matriz adjunta
void adjoint(float matrix[3][3], float adj[3][3]) {
    adj[0][0] = matrix[1][1] * matrix[2][2] - matrix[1][2] * matrix[2][1];
    adj[0][1] = -(matrix[1][0] * matrix[2][2] - matrix[1][2] * matrix[2][0]);
    adj[0][2] = matrix[1][0] * matrix[2][1] - matrix[1][1] * matrix[2][0];
    adj[1][0] = -(matrix[0][1] * matrix[2][2] - matrix[0][2] * matrix[2][1]);
    adj[1][1] = matrix[0][0] * matrix[2][2] - matrix[0][2] * matrix[2][0];
    adj[1][2] = -(matrix[0][0] * matrix[2][1] - matrix[0][1] * matrix[2][0]);
    adj[2][0] = matrix[0][1] * matrix[1][2] - matrix[0][2] * matrix[1][1];
    adj[2][1] = -(matrix[0][0] * matrix[1][2] - matrix[0][2] * matrix[1][0]);
    adj[2][2] = matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0];
}
 
// Función para calcular la matriz inversa
bool inverse(float matrix[3][3], float inverse[3][3]) {
    float det = determinant(matrix);
    if (det == 0) {
        cout << "La matriz no tiene inversa (determinante es cero)." << endl;
        return false;
    }
 
    float adj[3][3];
    adjoint(matrix, adj);
 
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 3; j++)
            inverse[i][j] = adj[i][j] / det;
 
    return true;
}
 
// Función principal
int main() {
    float matrix[3][3] = {
        {4, 7, 2},
        {3, 6, 1},
        {2, 5, 3}
    };
 
    float inv[3][3];
 
    if (inverse(matrix, inv)) {
        cout << "La matriz inversa es:" << endl;
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++)
                cout << inv[i][j] << " ";
            cout << endl;
        }
    }
 
    return 0;
}

Instrucciones:


1. Copia el código en un nuevo archivo en Turbo C++ o Visual Studio C++.
2. Compila y ejecuta el programa.
3. El programa calculará la inversa de la matriz definida en el código. Puedes modificar los valores de la matriz según sea necesario.

¡Buena suerte con tu desarrollo académico!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar