#include #include using namespace std; int sign(int a){ if (a % 2) return -1; return 1; } int determinante(vector > M){ if (M.size() == 1) return M[0][0]; int det = 0; for(int i = 0; i < M.size(); i++){ vector > N = M; N.erase(N.begin()); for(int j = 0; j < N.size(); j++) N[j].erase(N[j].begin()+i); det += M[0][i] * determinante(N) * sign(i); } return det; } vector > reemplazo(vector > M, vector b, int col){ for(int i = 0; i < b.size(); i++) M[i][col] = b[i]; return M; } int main(){ int n; cout << "Bienvenido. Este programa resuelve sistemas de ecuaciones lineales compatibles\n"; cout << "determinados que esten expresados en forma matricial Ax = b\n"; cout << endl; cout << "Ingrese dimencion de la matriz (debe ser cuadrada):" << endl; cin >> n; vector > A(n, vector (n)); cout << "Ingrese los coeficientes: " << endl; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) cin >> A[i][j]; cout << "Ingrese el vector b: " << endl; vector b(n); for(int i = 0; i < n; i++) cin >> b[i]; int det = determinante(A); if (det == 0){ cout << "Sistema incompatible" << endl; return 0; } for(int i = 0; i < n; i++){ int ndet = determinante(reemplazo(A, b, i)); if (ndet == 0) cout << "Error handled" << endl; else cout << "x" << i+1 << " = " << ndet/det << endl; } return 0; }