53. Trabajo en grupo (curso 2016-2017)

En este curso el trabajo en grupo consistirá simplemente en el desarrollo en Python del método de Gauss-Jordan. Se proponen varios ejercicios relacionados con esto.

53.1. 1. Rango de una matriz

Definir la función rango_matriz(m) que devuelve el rango de una matriz calculado por el método de Gauss.

Deberá funcionar con cualquier número de filas y columnas. No se dará puntuación alguna a las entregas que no respeten este requisito.

53.1.1. Ejemplo de funcionamiento

>>> rango_matriz([[1,0,0], [0,1,0], [0,0,1]])
3
>>> rango_matriz([[1,0,0], [0,1,0], [1,2,0]])
2

53.2. 2. Solución de sistema de ecuaciones

Definir una función lin_solve(A,B) que resuelve el sistema lineal de ecuaciones \(A\cdot x = B\) empleando el método de Gauss-Jordan. La función debe devolver la secuencia de operaciones a realizar sobre A|B, y el vector solución.

53.2.1. Ejemplo de funcionamiento

>>> lin_solve([[1,0,0], [0,2,0], [2,0,3]], [1, 0, 2])
([('div', 1, 2), ('mac', 2, 1, -2), ('div', 2, 3)], [1, 0, 0])

Hemos representado las operaciones por una tupla, que incluye una cadena ('div' para dividir, 'mac' para multiplicar y sumar, etc.) seguida de los argumentos necesarios (fila donde se aplica, fila con la que se opera, factor de multiplicación, etc.). Tu puedes representar las operaciones de forma diferente. Por ejemplo, se recomiendan clases.

53.3. 3. Inversa de una matriz

Definir la función inv_matriz(M) que devuelve la matriz inversa de la que se pasa como argumento.

53.3.1. Ejemplo de funcionamiento

>>> inv_matriz([[1,0,0], [0,4,0], [0,0,10]])
[[1,0,0], [0,0.25,0], [0,0,0.1]]
Next Section - 54. Resumen de métodos computacionales