Algoritmo Matriz Identidad

Javier14

Lanero Regular
22 Abr 2005
40
Saludos a todos, he buscado intensamente un algoritmo que me convierta a matriz identidad un sistema de ecuaciones, buscando solo he encontrado el algoritmos de Gaus Seidel pero eso solo convierta a ceros por debajo de la diagonal y por arriba de la misma, lo que necesito es algo parecido a esto:

SISTEMA A RESOLVER
-4 -5 -1 0 = -51
2 -3 2 0 = -1
4 -5 -1 1 = -28
-3 -5 1 1 = -26

AL FINAL DE VARIAS ITERACIONES ME DEBE SALIR:
1 0 0 0 = 2
0 1 0 0 = 7
0 0 1 0 = 8
0 0 0 1 = 7

Lo debo programar en cualquier lenguaje de programacion (C,C++,Java,etc,etc).

Gracias de antemano, espero su pronta respuesta.
 
Por qué no lo implementa siguiendo los pasos de un libro de Algebra Lineal?
 
FM Static dijo:
Por qué no lo implementa siguiendo los pasos de un libro de Algebra Lineal?
Sí señor.... tiene toda la razón.... puro intecambio de filas, multiplicación por escalares.. y así hasta que llegue a ese resultado...

Revise el codigo fuente de esa función en MATLAB.... ahí puede encontrar alguna guía para empezar.
 
respuesta

amigo cara de poker, si bien es cieto que ya lo tengo resuelto con los ceros hacia arriba y hacia abajo, es no me ayuda en nada porque mi profesor quiere que convierta a una matriz identidad osea con unos en la diagonal y ceros alrededor, por favor ayudenme con el algoritmo a usar para implementarlo en cualquier lenguaje
 
según tengo entendido, el algoritmo hace exactamente eso, pone los unos en la giagonal y el resto en ceros.

Otra cosa, si ya tiene los ceros arriba y abajo, y no los unos en la diagonal entonces no es sino que divida cada fila por el número que necesite para ponerla en uno.
ej: si tiene algo asi como 5 0 0 0 = 10, esta fila la divides entre 5 quedando 1 0 0 0 = 2
 
Como dice fbarreiro el algorimo de Gauss tiene en cuenta esto (si no estoy mal); el último paso es precisamente ese dividir la fila por el número de pivote (el único número que no es cero en la fila) por el mismo; al ser los otros iguales a cero te da cero y te queda el pivote en 1
 
Segun lo que veo a usted lo que falta es el vector solución. Busque el procedimiento de Reducción de Gauss-Jordan que es el que maneja ese vector solución. Aunque yo mejor me metería por la regla de Cramer, me parece mas facil de implementar.
 
fbarreiro dijo:
según tengo entendido, el algoritmo hace exactamente eso, pone los unos en la giagonal y el resto en ceros.

Otra cosa, si ya tiene los ceros arriba y abajo, y no los unos en la diagonal entonces no es sino que divida cada fila por el número que necesite para ponerla en uno.
ej: si tiene algo asi como 5 0 0 0 = 10, esta fila la divides entre 5 quedando 1 0 0 0 = 2

exactamente...
no veo cual sea el problema.
esto es lo que pasa cuando uno fusila algoritmos sin tomarse el trabajo de entenderlos
 
disimuladamente me han dicho "ocioso", pero no importa es el costo del aprendizaje, gracias por su aporte lo voy a implementar segun su consejo a ver como me va

espero mas sugerencias
 
Hombre, no es que le digamos que udted no trabaja, sino que aqui en LANeros queremos aprender y que los demás aprendan, no darles todo molidito. De los problemas y errores propios y de los demás, y de como los solucionaron es que uno aprende.

Y he visto que hay algunos, OJO, QUE USTED NO ES DE ESOS, OJO, que quieren la tarea y ya. Asi que para pedir ayuda se debe ser un poco más claro en que se ha hecho y en donde esta pegado y por favor también decir como esta evolucionando su problem.

Suerte y todo bien.
 
gracias amigos, no es que yo quiera mi tarea hecha sino que me quede enfrascado en un problemita y le spedi ayuda pero bueno ya lo he solucionado, ya me muestra la respuesta de las matrices, lo unico que me falta es mostrar las iteraciones que realiza para llegar a ser matriz identidad

ya que solo me muestra el resultado final, seguire analizando
 
EfL-Uthark dijo:
Sí señor.... tiene toda la razón.... puro intecambio de filas, multiplicación por escalares.. y así hasta que llegue a ese resultado...

Revise el codigo fuente de esa función en MATLAB.... ahí puede encontrar alguna guía para empezar.

Puedes postearla??

o alguien tiene este algoritmo de casualidad :p :p
 

Los últimos temas