Resolución de sistemas lineales de ecuaciones con Octave (o Matlab)

resolucion de sistemas lineales de ecuaciones por Octave

Teoría

Existen muchas maneras de resolver sistemas de ecuaciones lineales. Entre uno de los más conocidos en métodos numéricos está el método de Eliminación de Gauss. Existen métodos como el de la inversa de la matriz o la Descomposición LU. También existen métodos iterativos para matrices de gran tamaño como el de Gradientes conjugados.

En este artículo se verán maneras de resolver sistemas de ecuaciones por varios de estos métodos.

Ejemplo: La matriz a resolver

Se plantea resolver el siguiente sistema de ecuaciones:

El sistema se puede reducir a la siguiente expresión

donde,

Este sistema puede resolverse mediante los siguientes comandos de OCTAVE

Solución

Como se vio en el artículo almacenar matrices y tensores, definimos y almacenamos una matriz cuadrada dentro de una variable que llamaremos A

Posteriormente hacemos lo mismo con el vector {b}

La solución de este sistema puede resolverse por cualquiera de los siguientes comandos:

Inversa de A

Almacenamos el resultado dentro de sol_1, invirtiendo [A] y multiplicandola por {b}:

El resultado en la consola es:

A\b

Similar al anterior comando, se puede encontrar la solución al sistema lineal mediante:

obteniendose exactamente el mismo resultado pero almacenado en sol_2

rref

Podemos recurrir a la reducción escalonada de la matriz cuadrada meduante rref. Sin embargo primeramente se debe concatenar tanto la matriz A como el vector b lado a lado mediante [A b], e introducir esta matriz concatenada dentro del comando rref. Se guardará el resultado dentro de una variable sol_3:

El resultado en este caso será algo distinto a los dos anteriores, pues antes de mostrar los valores x1 a x4, muestra la matriz escalonada reducida que es igual a la matriz identidad, que en este caso es 4×4:

linsolve

Existen varias opciones dentro del comando linsolve para resolver sistemas de ecuaciones. Entre ellos, el comando puede resolver matrices triangulares superiores o triangulares inferiores entre otras. Sin embargo OCTAVE recomienda que sea el propio programa el que escoja cual de los métodos aplicar según los argumentos introducidos. En este caso se usan los valores por defecto y se almacenan los resultados en sol_4:

El resultado es idéntico al de los dos primeros métodos.

cgs (iterativo)

Este comando utiliza el algoritmo de gradientes conjugados para resolver iterativamente sistemas lineales de ecuaciones. Se guardan los resultados en una variable sol_5:

Otros algoritmos

Existen otros algoritmos más especializados de resolución de sistemas lineales, pero con los mostrados ya tienes suficientes armas para resolver sistemas lineales de ecuaciones convencionales sin problemas. Todos los métodos mencionados deberían darte el mismo resultado

autor: Marcelo Pardo

←←← VOLVER A TABLA DE CONTENIDO DE OCTAVE – MATLAB←←←

Deja una respuesta