Anuncio

Colapsar
No hay ningún anuncio todavía.

Problema determinante en C++

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • C/C++ Problema determinante en C++

    Hola a tod@s, no sé si hago bien posteando este problema en esta sección, si no está bien situado que algún mod o administrador lo mueva

    Bien, el problema es el siguiente: Se trata de hacer una función que calcule el determinante de una matriz (hasta 10x10) con el lenguaje de programación C++.
    El método a seguir es hacerlo mediante la descomposición de los menores adjuntos... y estoy seguro de que tengo que utilizar una función recursiva si o sí. El caso base si no voy mal encaminado sería cuando se encontrara un determinante de orden 2x2, pero ya está, no sé como seguir

    Muchas gracias de antemano, a ver quien me puede echar un cable

    Un saludo

  • #2
    Re: Problema determinante en C++

    ¿Estás obligado/a a usar ese método? Probablemente el método más sencillo sería hacer la matriz triangular, con lo cual solo tendrías que multiplicar los elementos de la diagonal.

    Estás en lo cierto que necesitarás hacer un método recursivo. Pero no tienes porqué parar en una matriz 2x2, ya que una de estas también se puede descomponer en menores, sólo que son menores muy tontos, de un sólo número.

    Ya que estás en C++, y no en C plano, yo empezaría definiendo una clase llamada "matriz". Dentro de esta clase, almacena los valores de la matriz con una "array" de dimensión dos. Luego, lo primero que tienes que hacer es definir un miembro dentro de esta clase, del estilo matriz.menor(i, j), que te devuelva un nuevo objeto "matriz" pero habiendo quitado la fila "i" y la columna "j".

    Después, en la función matriz.determinante() tendrás que hacer algo similar a lo que sigue (yo no recuerdo muy bien la sintaxis de C, pero espero que puedas entender mi "pseudo código").

    Código:
    double det = 0;
    
    for (i = 0; i <matriz.rango; i++)
    {
       det += pow(-1.0, i) * matriz.getValue(0, i) * matriz.menor(0, i).determinante()
    }
    La única precaución que tienes que tener es que el miembro determinante devuelva un número cuando la matriz queda reducida a 1x1
    Última edición por pod; 16/01/2011, 18:34:10.
    La única alternativo a ser Físico era ser etéreo.
    @lwdFisica

    Comentario


    • #3
      Re: Problema determinante en C++

      Gracias por la ayuda pod.

      Saludos

      Comentario

      Contenido relacionado

      Colapsar

      Trabajando...
      X