JUNTA ESTAS PROGRAMACIONES EN UN SOLO MENU: #include #include usando el espacio de nombres std; Función para calcular el determinante de una matriz doble determinante(vector> y matriz, int n) { doble det = 0; si (n == 1) matriz de retorno[0][0]; vector> submatriz (n, vector (n)); signo int = 1; for (int x = 0; x < n; x++) { int subi = 0; for (int i = 1; i < n; i++) { int subj = 0; for (int j = 0; j < n; j++) { si (j == x) continuar; submatriz[subi][subj] = matriz[i][j]; subj++; } subi++; } det += signo * matriz[0][x] * determinante(submatriz, n - 1); signo = -signo; } devolver det; } Función para reemplazar la columna de una matriz void replaceColumn(vector>& matriz, vector& columna, int colIndex) { for (int i = 0; i < matrix.size(); i++) { matriz[i][colIndex] = columna[i]; } } // Función para aplicar el método de Cramer vector cramer(vector>& A, vector& b) { int n = A.tamaño(); vector x(n); doble detA = determinante(A, n); if (detA == 0) { cerr << "El sistema no tiene solución única." << endl; retorno x; } for (int i = 0; i < n; i++) { vector> tempMatrix = A; replaceColumn(tempMatrix, b, i); x[i] = determinante(tempMatrix, n) / detA; } retorno x; } int main() { int n; cout << "Introduce el tamaño del sistema de ecuaciones: "; cin >> n; vector> A(n, vector(n)); vector b(n); cout << "Introduce la matriz A:" << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> A[i][j]; } } cout << "Introduce el vector b:" << endl; for (int i = 0; i < n; i++) { cin >> b[i]; } solución vectorial = cramer(A, b); cout << "La solución es: " << endl; for (int i = 0; i < n; i++) { cout << "x[" << i << "] = " << solución[i] << endl; } devuelve 0; } #include usando el espacio de nombres std; int main() { ciclos para colocar los números doble matriz[3][3], resultados[3]; doble solución[3]; cout << "Introduce los coeficientes de las ecuaciones:\n" ; for (int filas = 0; filas < 3; filas++) { //ciclo de 3 que crea las filas for (int columnas = 0; columnas < 3; columnas++) {//este ciclo se ejecuta 3 veces cuando el primero se ejecula una ves coloca los números en su lugar cout << "posicion " << filas + 1 << "-" << columnas + 1 << ": "; cin >> matriz[filas][columnas]; } cout << "resultado de ecuacion " << filas + 1 << ": "; cin >> resultados[filas];// aquí se coloca los resultados los que están después de = } Código de Arriva es mio el de abajo es de ChatGPT porque está bien difícil este // Eliminación Gaussiana for (int columnas = 0; columnas < 2; columnas++) { // Realizamos la eliminación sobre las dos primeras filas for (int filas = columnas + 1; filas < 3; filas++) { doble factor = matriz[filas][columnas] / matriz[columnas][columnas]; Calculamos el factor for (int índice = columnas; índice < 3; índice++) { matriz[filas][índice] -= factor * matriz[columnas][índice]; Hacemos ceros debajo de la diagonal } resultados[filas] -= factor * resultados[columnas]; Ajustamos el término independiente } } Sustitución hacia atrás for (int columnas = 2; columnas >= 0; columnas--) { // Recorrer de abajo hacia arriba soluciones[columnas] = resultados[columnas]; for (int filas = columnas + 1; filas < 3; filas++) { soluciones[columnas] -= matriz[columnas][filas] * soluciones[filas]; Restamos las contribuciones de las otras variables } soluciones[columnas] /= matriz[columnas][columnas]; Dividimos por el coeficiente de la variable } Imprimir las soluciones cout << "Soluciones: " << endl; for (int columnas = 0; columnas < 3; columnas++) { cout << "solucion de la fila " << columnas + 1 << " = " << soluciones[columnas] << endl; } devuelve 0; } #include usando el espacio de nombres std; void imprimirMatriz(double** matriz, int n) { for (int i = 0; i < n; i++) { for (int j = 0; j <= n; j++) { cout << matriz[i][j] << " "; } cout << endl; } } void gaussConPivoteo(double** matriz, int n) { for (int k = 0; k < n; k++) { Pivoteo int maxIndex = k; for (int i = k + 1; i < n; i++) { Comparar sin usar abs() if (matriz[i][k] > matriz[maxIndex][k] || (matriz[i][k] < matriz[maxIndex][k] && matriz[i][k] < 0 &&matriz[maxIndex][k] < 0)) { maxIndex = i; } } Intercambiar filas sin usar swap if (maxIndex != k) { for (int j = 0; j <= n; j++) { doble temperatura = matriz[k][j]; matriz[k][j] = matriz[maxIndex][j]; matriz[maxIndex][j] = temp; } } Eliminación hacia adelante for (int i = k + 1; i < n; i++) { doble factor = matriz[i][k] / matriz[k][k]; for (int j = k; j <= n; j++) { matriz[i][j] -= factor * matriz[k][j]; } } } Solución double* soluciones = new double[n]; for (int i = n - 1; i >= 0; i--) { soluciones[i] = matriz[i][n]; for (int j = i + 1; j < n; j++) { soluciones[i] -= matriz[i][j] * soluciones[j]; } soluciones[i] /= matriz[i][i]; } cout << "Soluciones:" << endl; for (int i = 0; i < n; i++) { cout << "x" << i + 1 << " = " << soluciones[i] << endl; } delete[] soluciones; } int main() { int n; cout << "Ingrese el número de ecuaciones: "; cin >> n; Crear la matriz aumentada doble** matriz = nuevo doble*[n]; for (int i = 0; i < n; i++) { matriz[i] = nuevo doble[n + 1]; Matriz aumentada } cout << "Ingrese los coeficientes de las ecuaciones:" << endl; for (int i = 0; i < n; i++) { for (int j = 0; j <= n; j++) { // Ingresar coeficientes y términos independientes cin >> matriz[i][j]; } } cout << "Matriz aumentada:" << endl; imprimirMatriz(matriz, n); gaussConPivoteo(matriz, n); Liberar memoria for (int i = 0; i < n; i++) { suprimir[] matriz[i]; } suprimir[] matriz; devuelve 0; } doble Matriz[3][4]; cout<< "\n Dame los valores de las ecuacion considerando que:"; for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { Si (J < 3) cout<< "Primero X Y Z" << i+1 << "" << j+1; más cout<< "Despues Resultadp" << i+1; cin>> Matriz[i][j]; } } for (int i = 0; i < 3; i++) { doble piv = Matriz[i][i]; for (int j = 0; j < 4; j++) { Matriz[i][j] /= piv; } for (int D = 0; D < 3; D++) { if (D != i) { doble RES = Matriz[D][i]; for (int j = 0; j < 4; j++) { Matriz[D][j] -= RES*Matriz[D][j]; } } } } cout <<"\n Matriz cpn Gauss Jordan:"; for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { cout << Matriz[i][j]; } } cout<<"\n Resultado de variables:"; cout<<"x= "<< Matriz[0][3]; cout<<"y= "<< Matriz[1][3]; cout<<"z= "<< Matriz[2][3]; #incluír usando el espacio de nombres std; void gaussSeidel(float a[10][10], float b[10], float x[10], int n, int maxIter) { suma flotante; for (int iter = 0; iter < maxIter; iter++) { for (int i = 0; i < n; i++) { suma = b[i]; for (int j = 0; j < n; j++) { if (i != j) { suma -= a[i][j] * x[j]; } } x[i] = suma / a[i][i]; } } } int main() { int n, maxIter; flotador a[10][10], b[10], x[10]; cout << "cuantas ecuaciones son..."; cin >> n; cout << "número máximo de iteraciones: "; cin >> maxIter; cout << "matriz de coeficientes: \n"; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> a[i][j]; } } cout << "vectores independientes\n"; for (int i = 0; i < n; i++) { cin >> b[i]; } cout << "vector de soluciones: \n"; for (int i = 0; i < n; i++) { cin >> x[i]; } gaussSeidel(a, b, x, n, maxIter); cout << "Las soluciones son:\n"; for (int i = 0; i < n; i++) { cout << "x[" << i << "] = " << x[i] << endl; } devuelve 0; } #include #include usando el espacio de nombres std; int main() { int n; cout << "Ingrese el número de ecuaciones: "; cin >> n; vector> A(n, vector(n)); vector b(n); cout << "Ingrese los elementos de la matriz A:" << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << "A[" << i + 1 << "][" << j + 1 << "]: "; cin >> A[i][j]; } } cout << "Ingrese los términos independientes del vector b:" << endl; for (int i = 0; i < n; i++) { cout << "b[" << i + 1 << "]: "; cin >> b[i]; } vector> inversa(n, vector(n, 0)); for (int i = 0; i < n; i++) { inversa[i][i] = 1; } for (int i = 0; i < n; i++) { doble pivote = A[i][i]; for (int j = 0; j < n; j++) { A[i][j] /= pivote; inversa[i][j] /= pivote; } b[i] /= pivote; for (int k = 0; k < n; k++) { si (k != i) { doble factor = A[k][i]; for (int j = 0; j < n; j++) { A[k][j] -= factor * A[i][j]; inversa[k][j] -= factor * inversa[i][j]; } b[k] -= factor * b[i]; } } } cout << "La solución del sistema es:" << endl; for (int i = 0; i < n; i++) { cout << "x" << i + 1 << " = " << b[i] << endl; } devuelve 0; }
Please keep input under 1000 characters