Práctico 2 - Ejercicio 1

Práctico 2 - Ejercicio 1

de Gonzalo Javier Diaz Ferreira -
Número de respuestas: 3

Buenas, ¿Cómo están?


Tengo dudas sobre el práctico... y empiezo con este ejercicio... ¿se plantea en octave o sólo matemáticamente?

Si suponemos que todas las matrices son cuadradas, x e y tendrían que tener "la misma cantidad de filas que L1, L2 y B).. está bien así? 

Llegué a la siguiente conclusión, pero no sé si es la más eficiente: 

  • y = inversa(L1)*b
  • x = inversa(L2)*(c - B*y)

Lo probé a mano, y luego en octave y funcionó... ahora no sé que tan eficiente pueda ser, porque hay varios operaciones en la resolución (calcular inversas, productos y resta)

Quizás pueden decirme cómo lo hicieron ustedes así veo si estoy bien encaminado

gracias
Saludos!

En respuesta a Gonzalo Javier Diaz Ferreira

Re: Práctico 2 - Ejercicio 1

de Agustin Silvano Garcia -
Hola,
yo tampoco tengo muy claro a que se tiene que llegar o cual es el óptimo, pero el procedimiento que hice fue:
Tomar las primeras n-filas de la matriz (que tiene dimensiones 2n y 2n). Teniendo una matriz de n filas por 2n columnas por el vector de dimension 2n de la forma (x_1,..x_n,y_1,...,y_n).
Al tener una matriz L1 inferior no singular me queda un sistema compatible determinado para las y_i que resuelvo mediante sustitución hacia adelante. En este punto ya pude encontrar el valor para todas las y_i.

Luego, tome las segundas n-filas y use el mismo procedimiento pero ahora cuando haga el producto me van a quedar los elementos de la matriz L2 por las variables x's y los elementos de B por los y's (que ya los tengo calculados del paso anterior). Paso ese producto de la matriz B por los y's para el lado del "termino independiente" (con los c's). Y vuelvo a hacer una sustitucion para adelante con los elementos de L2 usando los x_j como incognita y en el vector solución el c_j inicial restado por los B_ij * y_j.

Este procedimiento requiere 2 sustituciones hacia adelante, el cálculo del producto de B por el sub-vector "y" y las operaciones requeridas para "recalcular" el vector de termino independiente que se usa al resolver L2.

No se si es lo mejor, pero que la letra de matrices L no-singulares me dio la idea de arrancar por ese lado.

Saludos.

Agustin.
En respuesta a Agustin Silvano Garcia

Re: Práctico 2 - Ejercicio 1

de Gonzalo Javier Diaz Ferreira -

Agustín, 

Gracias por la respuesta...

Ahora lo hice en octave pero como una función "resolver": 


Aquí uso la funcion "inv" que me calcula la inversa de una matriz... que seguramente tiene una cantidad de "flops" n. Luego, las operaciones que figuran ahí. Entiendo que sería lo más eficiente. 

Lo que hiciste vos es tomar las matrices rectangulares, pero es más o menos lo que hice, pero sin usar inversas, si no la sustitución. 

En fin, esperemos que el resto comente je. 


Gracias!

Saludos.-

En respuesta a Gonzalo Javier Diaz Ferreira

Re: Práctico 2 - Ejercicio 1

de Ignacio Bustamante -
Hola Gonzalo,

La idea es la que planteás, pero hay una diferencia: usar la función inversa en principio no te permite calcular el costo computacional: depende de cómo esté implementada. En este caso, como solo necesitás inversas de matrices triangulares, podés usar 2 sustituciones hacia adelante como dice Agustín.
El procedimiento no tiene orden n, sino que tiene orden n^2. Cada sustitución hacia adelante tiene ese orden, y el cómputo de B*y también.

El ejercicio de todos modos fue hecho en práctico (en mi clase al menos) y las pizarras quedaron subidas en el grupo de práctico 6.
Por cualquier otra consulta que quede respecto al ejercicio, no dudes en preguntar.

Saludos!