matriz escalonada (metodo de gauss)

Iniciado por jesus++, 25 Diciembre 2013, 18:12 PM

0 Miembros y 2 Visitantes están viendo este tema.

leosansan

#10
Cita de: amchacon en 26 Diciembre 2013, 16:35 PM
Cierto pero, en ocasiones las llaves dan más legibilidad (sobre todo cuando empiezas a anidar cosas)

Supongo que es la costumbre adquirida antaño del Python, donde haces la vista a la indexación.

Cita de: amchacon en 26 Diciembre 2013, 16:35 PM

Otra opción es poner %.4f
De esa forma muestra solo hasta 4 decimales, si quieres 8 solo tienes que cambiar el 4 por un 8 ;)

¡¡¡Quita, quita!!!,me resulta horrible a la vista esta visión:

Citar

La matriz inicial es

1.0000  0.0000  1.0000
1.0000  2.0000  1.0000
2.0000  1.0000  3.0000


Mejor %g y que el decida los decimales distintos de cero al final, Pero para gustos colores  ;) ;)

;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!



amchacon

Cita de: leosansan en 26 Diciembre 2013, 16:45 PM
Supongo que es la costumbre adquirida antaño del Python, donde haces la vista a la indexación.
Puede ser, yo cuando veo:

Código (cpp) [Seleccionar]

int valor = 0;
int matriz[100][100];

for (int i = 0; i < 100;i++)
    for (int j = 0; j < 100;j++)
        if (matriz[i][j] > 0)
           while (matriz[i][j] > 0)
                valor += matriz[i][j]*pow(matriz[i][j],valor+matriz[i][j]--);     
        else if (matriz[i][j]) < 0) matriz[i][j] = 0;
               else matriz[i][j] += valor;


Lo entiendo pero me resulta muy confuso. Y si me va una indentación ya la lío parda porque el compilador no me va a avisar de eso.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

leosansan

#12
Cita de: amchacon en 26 Diciembre 2013, 16:54 PM
Puede ser, yo cuando veo:

Código (cpp) [Seleccionar]

int valor = 0;
int matriz[100][100];

for (int i = 0; i < 100;i++)
   for (int j = 0; j < 100;j++)
       if (matriz[i][j] > 0)
          while (matriz[i][j] > 0)
               valor += matriz[i][j]*pow(matriz[i][j],valor+matriz[i][j]--);      
       else if (matriz[i][j]) < 0) matriz[i][j] = 0;
              else matriz[i][j] += valor;


Lo entiendo pero me resulta muy confuso. Y si me va una indentación ya la lío parda porque el compilador no me va a avisar de eso.

Código (cpp) [Seleccionar]

for (int i = 0; i < 100;i++)
    {
        for (int j = 0; j < 100;j++)
            {
                if (matriz[i][j] > 0)
                while (matriz[i][j] > 0)
                    {
                        valor += matriz[i][j]*pow(matriz[i][j],valor+matriz[i][j]--);     
                    }
                   
            else if (matriz[i][j]) < 0) matriz[i][j] = 0;
                   {
                       else matriz[i][j] += valor;
                   }
                   
            }
    }
}



Perdona que te cite entero pero es que el código que expones está clarísimo. Repito, supongo que es la costumbre o hábito adquirido. Pero para mayor claridad reconozco que el uso de las llaves va mejor en general. ¿O.K?

;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!



amchacon

Cita de: leosansan en 26 Diciembre 2013, 17:07 PMPerdona que te cite entero pero es que el código que expones está clarísimo. Repito, supongo que es la costumbre o hábito adquirido. Pero para mayor claridad reconozco que el uso de las llaves va mejor en general. ¿O.K?
Pues entonces será la costumbre, yo el python lo usé un par de veces y a correr. Sin las llaves no soy nada :xD

Además hay un problema que le veo (no en Python, sino en los lenguajes de libre indentación):
Cita de: amchacon en 26 Diciembre 2013, 16:54 PMY si me va una indentación ya la lío parda porque el compilador no me va a avisar de eso.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

leosansan

Cita de: amchacon en 26 Diciembre 2013, 16:54 PM
Y si me va una indentación ya la lío parda porque el compilador no me va a avisar de eso.

Es la pequeña ventaja de haber usado Python, el compilador te "canta" si no indexas bien, una y otra vez, lo cual te lleva a ser metódico en ese aspecto.. Al final desarrollas ese hábito y resulta sencillo de leer el código.

¡¡¡¡ Saluditos! ..... !!!!

SoyelRobert

Cita de: jesus++ en 25 Diciembre 2013, 18:12 PM
un problema q me dejaron, pense hacerlo de esta manera:
primero escalonar la matriz inferior y superiormente, luego pasarla a la matriz identidad y tomar una matriz q empiece en la identidad y realizar las mismas operaciones q a la matriz q ingrese por teclado... el problema esta en escalonarlo, si bien lo he probado manualmente, la computadora solo atina a escalonar, pero los terminos centrales no cambian de valor... el primer paso (y en el q busco ayuda seria escalonar la matriz superiormente) el resto ya lo tengo pensado


Mmm a ver, esto solo a nivel de matematicas y concepto:

Para escalonar una matriz has de seguir el algoritmo de gauss, ahora bien si lo que quieres es obtener la matriz identidad entonces has de usar el algoritmo de gauss yordan sin embargo ten en cuenta que no te vale cualquier matriz, hay matrices que al utilizar gauss yordan no te van a dar la identidad, te dara una escalonada reducida si pero no la identidad
getting louder!

leosansan

Cita de: jesus++ en 25 Diciembre 2013, 18:12 PM

... el primer paso (y en el q busco ayuda seria escalonar la matriz superiormente) el resto ya lo tengo pensado


A eso es a lo que respondí y tanto superiormente como inferiormente bajo el supuesto que se pueda hacer, que ya es harina de otro costal.

;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!



amchacon

Cita de: SoyelRobert en 27 Diciembre 2013, 12:52 PMPara escalonar una matriz has de seguir el algoritmo de gauss, ahora bien si lo que quieres es obtener la matriz identidad entonces has de usar el algoritmo de gauss yordan sin embargo ten en cuenta que no te vale cualquier matriz, hay matrices que al utilizar gauss yordan no te van a dar la identidad, te dara una escalonada reducida si pero no la identidad
Cualquier matriz con determinante no-nulo se podrá convertir en identidad.

Si tiene un determinante nulo, significa que no es resoluble (o tiene infinitas soluciones).
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

leosansan

Cita de: amchacon en 27 Diciembre 2013, 13:44 PM
Cualquier matriz con determinante no-nulo se podrá convertir en identidad.

Si tiene un determinante nulo, significa que no es resoluble (o tiene infinitas soluciones).

El problema radica que el cálculo de un determinante de una matriz seria, de 100x100 por ejemplo, pasa por buscar previamente su forma diagonal con alguna de las múltiples variantes de Gauss, Jordan,Cholesky y compañía. ¿Supongo que no estarás pensando en la ineficiente regla de Lapace, por cuanto al número de operaciones que implica en comparación con la diagonalización previa  para una matriz del tamaño indicado?.

;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!



amchacon

Cierto.

Quizás sería mejor hacer solo la triangulación y resolverla recursivamente. Si te encuentras con alguna paridad (0x = 4) entonces ya paras.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar