Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
642 views
ubuntu2004
Kernel: Octave

Operaciones Básicas con Matrices y Vectores con Octave

Dr. Juliho Castillo Colmenares

El álgebra lineal es uno de los campos del conocimiento matemático más estudiados en las ciencias e ingeniería. No solo debido a su utilidad en aplicaciones directas, como sistemas de ecuaciones lineales, sino también porque sustenta los fundamentos otras áreas como las ecuaciones diferenciales o el cálculo vectorial y es el soporte de desarrollos tecnológicos como las redes neuronales. Además es la antesala a parcelas del conocimiento más avanzadas como el análisis funcional o la mecánica cuántica.

Pero además de todo esto, oculta entre interminables cálculos tediosos y peligrosos (¡hay de aquel que, con lápiz y papel, se haya equivocado en un signo al inicio del método de Gauss-Jordan!), se encuentra oculta una belleza muy particular que nos es familiar debido a que abreva de la geometría euclidiana.

Desde mi perspectiva, la parte menos interesante del álgebra lineal son estas cuentas. ¡Ojalá hubiera una manera de evitarlas para poder concentrarse en otros aspectos más apasionantes como su geometría o las aplicaciones!... Pero, esperen, ¿acaso la hay? Por supuesto que esta es una pregunta retórica, la respuesta es sí.

Desde hace muchas décadas, los matemáticos, ingenieros y científicos se dieron cuenta de que no era buena idea lidiar con los interminables procedimientos del álgebra lineal, si es que se tenía a la mano una computadora. Como veremos, el álgebra lineal se mezcla muy bien con la computación.

Todos los lenguajes de programación son capaces de implementar las operaciones básicas del álgebra lineal, utilizando diferentes estructuras de datos. Pero existen algunos especialmente dedicados para hacer esta labor más sencilla. Uno de los más famosos es MATLAB, nacido a finales de la década de los 70's, pero que lamentablemente es de paga y que pocas universidades pueden costear.

Sin embargo, existe una alternativa que, además de funcionar exactamente igual que MATLAB en lo básico, es parte del proyecto GNU y por tanto software libre: OCTAVE.

En la siguiente serie de artículos, te mostraré como usar este software para resolver problemas de álgebra lineal, pero también de otras áreas de las matemáticas. No necesitas instalar algo, sólo crear una cuenta en COCALC y desde ahí podrás empezar a trabajar todos los ejemplos.

Proyecciones

Proyección de u sobre v

Proyección escalar
projv(u)=ucos(θ)=uuvuv=uvv|| proj_v(u)|| = ||u||cos(\theta) = ||u||\dfrac{u\cdot v}{||u|| ||v|||} = \dfrac{u \cdot v}{||v||}
Proyección vectorial
projv(u)=uvvvv=uvv2vproj_v(u) = \dfrac{u \cdot v}{||v||} \dfrac{v}{||v||} = \dfrac{u\cdot v}{||v||^2} v

Ya que vv=v2v \cdot v = ||v||^2, entonces podemos escribir projv(u)=uvvvvproj_v(u) = \dfrac{u\cdot v}{v \cdot v}v

Ejemplo 1

Encuentra la proyección de (3,5)(3,5) sobre (7,3)(7,3).

u = [3, 5] v = [7, 2]
u = 3 5 v = 7 2
proj = (dot(u,v)/(norm(v))^2)*v
proj = 4.0943 1.1698

Por lo tanto proj(7,2)((3,5))=(4.0943,1.1698)proj_{(7,2)}((3,5)) = (4.0943, 1.1698)

Operaciones Matriciales

Las operaciones matriciales pueden realizarse muy fácilmente. Empezaremos con operaciones entre matrices.

Ejemplo 2

Sea A=[123240111]A=\begin{bmatrix} 1 & 2 & -3 \\ 2 & 4 & 0 \\ 1 & 1 & 1 \end{bmatrix} y B=[123402461100]B=\begin{bmatrix} 1 & 2 & 3 & 4 \\ 0 &-2 & -4 & 6 \\ 1 & -1 & 0 & 0 \end{bmatrix}.

Encuentra ABAB.

A = [ 1, 2, -3; 2, 4, 0 ; 1, 1, 1 ]
A = 1 2 -3 2 4 0 1 1 1
B = [ 1 2 3 4 ; 0 -2 -4 6 ; 1 -1 0 0 ]
B = 1 2 3 4 0 -2 -4 6 1 -1 0 0
A*B
ans = -2 1 -5 16 2 -4 -10 32 2 -1 -1 10

En Octave, todas las operaciones se supone que son matriciales. Por tanto también es válido realizar operaciones como 4A4\ast A o 5B5\ast B, con AA y BB definidas como en el ejemplo anterior, pero BAB\ast A o A+BA+B nos darían errores (¿porqué?).

Para obtener la transpuesta (conjugada), podemos usar una comilla. Por ejemplo, para calcular BTAB^T A, escribimos B'*A.

B'*A
ans = 2 3 -2 -3 -5 -7 -5 -10 -9 16 32 -12

Para realizar operaciones matriciales básicas, necesitaremos la matriz identidad. Esto es fácil de hacer en Octave con el comando eye(n), el cual crea una matriz identidad de dimensión n.

Ejemplo

Encuentra 2A4I2A - 4I.

2*A - 4*eye(3) %eye(3) es la matriz identidad de 3x3
ans = -2 4 -6 4 4 0 2 2 -2

Octavetambién puede encontrar determinantes, inversa y valores propios.

det(A) % determinante de A
ans = 6
inv(A) % inversa de A
ans = 0.66667 -0.83333 2.00000 -0.33333 0.66667 -1.00000 -0.33333 0.16667 0.00000
eig(A) % valores propios de A
ans = 4.52510 + 0.00000i 0.73745 + 0.88437i 0.73745 - 0.88437i
  • Como notaste, Octave también puede manipular números complejos.

  • Estudiaremos el concepto de valores propios, en el curso de álgebra lineal.

  • Por último, Octave puede calcular otros invariantes matriciales como el rango de una matriz.

rank(A) % rango de A
ans = 3