22 may 2018

Los cuatro espacios fundamentales de una matriz

Cada que se considera una matriz $A\in \mathbb{F}^{n,m}$, donde $\mathbb{F}$ puede ser $\mathbb{R}$ o $\mathbb{C}$, esta induce naturalmente dos aplicaciones lineales: $A:\mathbb{F}^{m}\to \mathbb{F}^{n}$ y $A^{\top}:\mathbb{F}^{n}\to \mathbb{F}^{m}$; las cuales permiten determinar cuatro subespacios vectoriales, dos subespacios vectoriales en $\mathbb{F}^{n}$ y dos subespacios vectoriales en $\mathbb{F}^{m}$, conocidos usualmente como espacio nulo, espacio fila, espacio nulo izquierdo y espacio columna de $A$ respectivamente; por lo tanto, el objetivo en esta ocasión es estudiar estos conjuntos y las relaciones entre ellos.

Para comenzar, veamos la definición de espacio nulo y de rango de una matriz $A$: el espacio nulo de la aplicación $A:\mathbb{F}^m\to \mathbb{F}^n$, es el conjunto $N(A)\subseteq \mathbb{F}^{m}$ dado por \begin{equation} N(A)=\{x\in \mathbb{F}^{n}:Ax=0\} \end{equation}; y el espacio columna o rango, es el conjunto $R(A)\subseteq \mathbb{F}^{n}$ dado por \begin{equation} R(A)=\{y\in \mathbb{F}^{n}:y=Ax, \forall\,x\in \mathbb{F}^{m}\}. \end{equation}

En la Figura (1) se muestra el espacio nulo y el espacio columna asociados con la matriz $A$. En este gráfico, se puede apreciar que para la función $A:\mathbb{F}^{m}\to \mathbb{F}^{n}$ el espacio nulo es un subconjunto de $\mathbb{F}^{m}$; mientras que, el espacio columna es un subconjunto de $\mathbb{F}^{n}$. Recuerda que la ecuación homogénea $Ax=0$, siempre tiene como solución trivial $x=0$. Esta propiedad implica que, $O_{_{\mathbb{F}^{m}}}\in \mathbb{F}^{m}$ también pertenece a $N(A)$ y $O_{_{\mathbb{F}^{n}}}\in \mathbb{F}^{n}$ también pertenece a $R(A)$.

Figura 1. El espacio nulo y el rango de la aplicación $A:\mathbb{F}^m\to \mathbb{F}^n$.

El lector puede observar que, realmente $A$ tiene «cuatro subespacios vectoriales» asociados que son $N(A)$, $R(A)$, $N(A^{\top})$ y $R(A^\top)$. Observe que, el espacio nulo y el espacio columna son subespacios de espacios diferentes; más precisamente, una matriz $A\in \mathbb{F}^{m,n}$ define las aplicaciones $A:\mathbb{F}^{m}\to \mathbb{F}^{n}$, $A^{\top}:\mathbb{F}^{n}\to \mathbb{F}^{m}$ y los conjuntos $N(A)$, $R(A^\top)\subseteq \mathbb{F}^{m}$ y $N(A^\top), R(A)\subseteq \mathbb{F}^{n}$.

En efecto, para ver que $N(A)$, $R(A)$, $N(A^{\top})$ y $R(A^\top)$ son subespacios vectoriales, recordemos que un subconjunto $U\subset \mathbb{F}^{m}$ es cerrado bajo combinaciones lineales, si para cada par de elementos $x,y\in U$ y todos los escalares $a, b\in \mathbb{F}$ se tiene que $ax+by\in U$.

Los conjuntos $N(A)$ y $R(A)$ son cerrados bajo combinaciones lineales; dado que, la función inducida por $A$ es una transformación lineal. En efecto, considere dos elementos arbitrarios $x_{_1}, x_{_2}\in N(A)$, entonces $Ax_{_1}=0$ y $Ax_{_2}=0$. Adicionalmente, para cualquier par de elementos $a,b\in \mathbb{F}$ se tiene: \begin{equation} A(ax_{_1}+bx_{_2})=aAx_{_1}+bAx_{_2}=0 \end{equation} de modo que, $(ax_{_1}+bx_{_2})\in N(A)$. Por consiguiente, $N(A)\subseteq \mathbb{F}^m$ es cerrado bajo combinaciones lineales. Análogamente, considere dos elementos $y_{_1}, y_{_2}\in R(A)$; esto es, existe $x_{_1}, x_{_2}\in \mathbb{F}^{m}$ tal que, $y_{_1}=Ax_{_1}$ y $y_{_2}=Ax_{_2}$. Entonces, para cualquier $a, b\in \mathbb{F}$ se tiene: \begin{equation} (ay_{_1}+by_{_2})=aAx_{_1}+bAx_{_2}=A(ax_{_1}+bx_{_2}) \Rightarrow (ay_{_1}+by_{_2})\in R(A). \end{equation} Por lo tanto, $(A)\subset \mathbb{K}^{n}$ es cerrado bajo combinaciones lineales.

En consecuencia, si $A=[A_{_{:1}},\dots, A_{_{:n}}]$, cualquier elemento $y\in R(A)$ puede ser expresado como $y=Ax$ para algún $x\in \mathbb{F}^{n}$; esto es, \begin{equation} y=Ax =[A_{_{:1}},\dots, A_{_{:n}}]\left[\begin{array}{c} x_{_1}\\ \vdots \\ x_{_n} \end{array}\right]=A_{_{:1}}x_{_1}+\cdots + A_{_{:n}}x_{_n}\in gen(\left\{A_{_{:1}}x_{_1},\dots, A_{_{:n}}x_{_n}\right\}). \end{equation} Es por esta razón que, el espacio columna y el rango son el mismo espacio. El lector puede verificar que cualquier elemento de la forma $y=A_{_{:1}}x_{_1}+\cdots + A_{_{:n}}x_{_n}$ es también un elemento de $R(A)$; por lo tanto, $y=Ax$.

El espacio nulo y el rango de una matriz cuadrada, caracterizan si la matriz es invertible o no; esto se establece en el siguiente resultado:

Teorema 1. Dada una matriz $A\in \mathbb{F}^{n,n}$, entonces las siguientes afirmaciones son equivalentes:
  • La matriz $A^{-1}$ existe;
  • $N(A)=\{0\}$;
  • $R(A)=\mathbb{F}^{n}$.

Veamos ahora algunas de las relaciones que existen entre los cuatro espacios asociados a un par de matrices $A$ y $B$, tales que, la matriz $B$ se pueda obtener mediante operaciones de fila sobre la matriz $A$. Asumimos entonces la siguiente notación: $A\stackrel{fila}{\longleftrightarrow}B$, para indicar que la matriz $A$ se puede transformar en la matriz $B$ mediante operaciones de Gauss sobre las filas de $A$. En tal caso, se tiene el siguiente teorema:

Teorema 2. Sean las matrices $A, B \in \mathbb{R}^{m,n}$, entonces:
  • $A\stackrel{fila}{\longleftrightarrow}B\Longleftrightarrow N(A)=N(B)$;
  • $A\stackrel{fila}{\longleftrightarrow}B\Longleftrightarrow R(A^\top)=R(B^\top)$.

Es fácil ver que este último resultado es verdadero; dado que, las operaciones de Gauss no cambian las soluciones de sistemas lineales; por lo cual, el sistema lineal $Ax = 0$ tiene exactamente las mismas soluciones de $x$ como el sistema lineal $Bx = 0$; es decir, $N (A) = N (B)$. La segunda propiedad también es cierta; ya que, las operaciones de Gauss en las filas de $A$, son equivalentes a las operaciones de Gauss sobre las columnas de $A^{\top}$. Ahora bien, es fácil ver que cada una de las operaciones de Gauss sobre las columnas de $A^{\top}$ no cambian el $R(A^{\top})$; por lo tanto, $R(A^{\top})=R(B^{\top})$.

Sin embargo, no podemos pensar que el párrafo anterior es suficiente para hacer una demostración del teorema. Veamos una presentación más detallada de las ideas anteriores. Una forma de hacerlo, es utilizar la multiplicación de matrices para expresar la propiedad en la cual las operaciones de Gauss no cambian las soluciones de sistemas lineales. Con esto, se puede probar lo siguiente: Si se tienen las matrices $A$ y $B$ de orden $n\times m$ relacionadas por las operaciones de Gauss en sus filas, entonces existe una matriz $G$ de orden $m × m$ invertible $GA = B$. La prueba de esta propiedad es simple; debido a que cada una de las operaciones de Gauss se asocia con una matriz invertible, $E$, llamada una matriz de Gauss elemental. Cada matriz de Gauss elemental es invertible, ya que cada operación de Gauss siempre se puede revertir. El resultado de varias operaciones de Gauss sobre una matriz $A$, es el producto de las matrices de Gauss elementales apropiadas en el mismo orden que se realizan las operaciones de Gauss. Si se obtiene la matriz $B$ de la matriz $A$, haciendo operaciones de Gauss dadas por matrices $E_{_i}$, para $i = 1,\dots k$, en ese orden, podemos expresar el resultado del método de Gauss de la siguiente manera: \begin{equation} E_{_k}\cdots E_{_1}A=B\hspace{0.5cm} G=E_{_k}\cdots E_{_1} \Longrightarrow GA =B. \end{equation} Donde cada matriz elemental de Gauss es una matriz invertible; y por lo tanto, $G$ también es invertible.

Considere dos matrices $A$ y $B$ de orden $m\times n$ que están relacionadas por operaciones de Gauss en sus filas; siendo así, existe una matriz $G$ de orden $m\times m$, tal que, $GA = B$. Esta observación es la clave para mostrar que $N(A) = N(B)$, ya que dado cualquier elemento $x \in N(A)$ \begin{equation} Ax=0\Longleftrightarrow GAx=0, \end{equation} donde la equivalencia se sigue del hecho de que $G$ es invertible. Entonces es simple (¡Lo simple es una provocación para que tú lo verifiques!) ver que: \begin{equation} 0=GAx=Bx \Longleftrightarrow x\in N(B). \end{equation} Así pues, se tiene que $N(A)=N(B)$. Ahora veamos la afirmación opuesta: Si $N(A)=N(B)$, significa que sus formas escalonadas reducidas $E_{_A}, E_{_B}$ son las mismas; es decir, $E_{_A}=E_{_B}$; esto significa que existen operaciones de Gauss en las filas $A$ que la transforman en la matriz $B$

Ahora mostraremos que $R(A^{\top})= R(B^{\top})$. Considere un elemento $x\in R(A^{\top})$, por lo tanto, existe un elemento $y\in \mathbb{F}^{m}$, tal que: \begin{equation} x=A^{\top}y = A^{\top}G^{\top}(G^{\top})^{-1}y=(GA)^{\top}\bar{y}=B^{\top}\bar{y},\hspace{0.5cm} \bar{y}=(G^{\top})^{-1}\bar{y} \end{equation} Veamos que dado un $x\in R(A^{\top})$, se puede decir que, $x\in R(B^{\top})$; esto es, $R(A^{\top})\subset R(B^{\top})$. La implicación opuesta se prueba de igual forma: Considere $x\in R(B^{\top})$, por ende existe $\bar{y}\in \mathbb{F}^{m}$, tal que: \begin{equation} x=B^{\top}\bar{y}=B^{\top}(G^{\top})^{-1}G^{\top}\bar{y}=(G^{-1}B)^{\top}y=A^{\top}y,\hspace{0.5cm} y=G^{\top}\bar{y}. \end{equation} De modo que, se ha mostrado que para cualquier $x\in R(B^{\top})$, por lo cual $x\in R(A^{\top})$; es decir, $R(B^{\top})\subset R(A^{\top})$; y en consecuencia, $R(A^{\top})=R(B^{\top})$. Ahora sí se asume que $R(A^{\top})=R(B^{\top})$; esto quiere decir que, cada fila de $A$ es una combinación lineal de las filas de $B$; que a su vez, significa que existen operaciones de Gauss sobre las filas de $A$ que transforman a $A$ en $B$; y por lo tanto, con eso se establece el resultado final del teorema 2.

Un argumento similar también dice que, $E_{_A^{\top}}=E_{_{B^{\top}}}$ sí y sólo sí $A^{\top}\stackrel{fila}{\longleftrightarrow} B^{\top}$. También se puede concluir que, $E_{_{A^{\top}}}=E_{_{B^{\top}}}$ es equivalente a $R(A)=R(B)$ y esto también es equivalente a $N(A^{\top})=N(B^{\top})$.

Otro resultado con respecto a la transpuesta de $A$ dice:

Teorema 3.Para cada matriz $A\in \mathbb{F}^{n,m}$ se cumple que $\dim R(A)=\dim R(A^{\top})$.
Sabiendo que una matriz se dice que es de rango completo, sí y sólo sí, $\dim R(A)=\min(m,n)$. Entonces podemos enunciar el siguiente teorema donde se establecen algunas de las relaciones principales de los cuatro espacios fundamentales:
Teorema 4. Si una matriz $A\in \mathbb{F}^{n,m}$ es de rango completo, entonces:
  • Si $m=n$, por lo tanto: \[\dim R(A)=\dim R(A^{\top})=n=m\Leftrightarrow \{0_{_{\mathbb{F}^{m}}}\}=N(A)=N(A^{\top})\subset \mathbb{F}^{m};\]
  • Si $n < m$, de forma que: \[\dim R(A)=\dim R(A^{\top})=n < m \Leftrightarrow \left\{\begin{array}{l} \{0_{_{\mathbb{F}^{m}}}\}\varsubsetneq N(A)\subset \mathbb{F}^{m},\\ \{0_{_{\mathbb{F}^{n}}}\}=N(A^{\top})\subset \mathbb{F}^{n};\end{array}\right.\]
  • Si $m>n$, siendo así: \[ \dim R(A)=\dim R(A^{\top})= m < n \Leftrightarrow \left\{\begin{array}{l} \{0_{_{\mathbb{F}^{m}}}\}= N(A)\subset \mathbb{F}^{m},\\ \{0_{_{\mathbb{F}^{n}}}\}\varsubsetneq N(A^{\top})\subset \mathbb{F}^{n}; \end{array}\right.\]

Recordemos que, el rango de una matriz $A$ es el número de pivotes columna de la matriz escalonada reducida $E_{_A}$ y que coincide con la dimensión de $R(A)$. Si una matriz $A$ de orden $m\times n$ tiene $rang(A)=n$, esto quiere decir dos cosas: Primero, $n\leq m$; y segundo, que cada columna de $E_{_A}$ tiene un pivote; es decir, que no hay variables libres en la solución de la ecuación $Ax=0$, y así $x=0$ es la única solución. Debido a esto, $N(A)=0$. Por otro lado, al estudiar $N(A^{\top})$ es necesario considerar dos casos: $n=m$ o $n < m$. Si $n=m$, entonces las matrices son cuadradas; debido a esto, se puede decir que no hay variables libres en la ecuación $A^{\top}y=0$; y por lo tanto, se concluye que $N(A^{\top})=0_{_{\mathbb{F}^{n}}}$. Por otra parte, si $n < m$ entonces hay variables libres en la solución de la ecuación $A^{\top}y=0$; y por ende, $\{0_{_{\mathbb{F}^{n}}}\}\varsubsetneq N(A^{\top})$. Si se tiene una matriz $A$ de orden $m\times n$ con $rang(A)=m$, note que $rang(A)=rang(A^{\top})$; esto quiere decir dos cosas: Primero que $m \leq n$; y segundo que cada columna de $E_{_A^{\top}}$ tiene un pivote. Esta última afirmación muestra que $A^{\top}$ es de rango completo; es decir, $N(A^{\top})=0$. Ya se han analizado todos los casos en que $n=m$; sólo falta analizar qué pasa cuando $m < n$. En este caso, hay variables libres en la solución de la ecuación $Ax=0$; por lo tanto, $\{0_{_{\mathbb{F}^{m}}}\}\varsubsetneq N(A)$.

Figura 2. Relaciones entre los cuatro espacios fundamentales de $A:\mathbb{F}^m\to\mathbb{F}^n$.

Para terminar, enunciamos el siguiente resultado que relaciona las dimensiones de los espacios nulos y el rango de una transformación lineal en espacios vectoriales de dimensión finita. Este resultado se suele llamar Teorema de la Nulidad y el Rango, donde la nulidad de una transformación lineal es la dimensión de su espacio nulo, y el rango es la dimensión de su espacio de columna. Este resultado también se le conoce como el Teorema de la Dimensión.

Teorema 4. Para cada transformación lineal $T:V\to W$ entre espacios vectoriales $V$ y $W$ se cumple que: \begin{equation} \dim N(T)+\dim R(T) = \dim V. \end{equation}

Si consideramos el producto punto de dos vectores $u, v\in \mathbb{F}^{m}$ como el producto matricial definido por $u\cdot v =u^{\top}v$; podemos observar lo siguiente: \begin{equation} Ax=\left[\begin{array}{c} A_{_{1:}}x\\ \vdots \\ A_{_{m:}}x \end{array}\right] \end{equation} Note que las filas $A$ son las columnas de $A^{\top}$, por lo tanto, $A^{\top}_{_{i:}}\cdot x= A_{_{i*}}x$ Si $x\in N(A)$, y por ende, se puede concluir que: $N(A)$ es el complemento ortogonal de $R(A^{\top})$,y por consiguiente, $N(A)\cap R(A^{\top})=\emptyset$. En otro orden de ideas, si la dimensión de $\dim R(A)=r$, entonces la dimensión del espacio nulo $\dim N(A) = m-r$; y $\dim R(A^{\top})=r$, luego $\dim N(A^{\top})=n-r$. Note que, $\dim N(A)\oplus R(A^{\top}) = m$ y $\dim N(A^{\top})\oplus R(A) = n$; es decir que, $ N(A)\oplus R(A^{\top})\cong \mathbb{F}^{m}$ y $N(A^{\top})\oplus R(A) \cong \mathbb{F}^{n}$. Estas relaciones se resumen en la Figura 2.

Bueno, ya nos hemos extendido lo suficiente por esta ocasión. Esperamos que aprovechen mucho este post.

Referencias

21 may 2018

Números de coma o punto flotante y sistemas lineales

En esta ocasión, estudiaremos algunos aspectos generales de los números de punto flotante y algunas dificultades que se presentan cuando se realizan cálculos elementales en la resolución de sistemas lineales por eliminación Gaussiana y Gauss-Jordan. Esperamos que lo disfruten mucho.

Los números de coma o punto flotante, son un conjunto finito de números racionales que se emplean para representar números reales empleando computadoras. Existen diferentes tipos de números de punto flotante; todos ellos, se caracterizan porque tienen un número finito de dígitos cuando se escriben en una base particular. La necesidad de estos números es precisamente porque las computadoras sólo pueden representar los números reales con un conjunto finito de dígitos.

Definición. Un número racional \(x\) es un número de punto flotante en base $b\in \mathbb{N}$, de precisión $p\in \mathbb{N}$, con rango de exponencial $N\in \mathbb{Z}$, sí y sólo sí, existen enteros $d_{_i}$, para $i=1,\dots, b-1$ y $d_{_1}\neq 0$ tal que, $x$ tiene la forma: \begin{equation}\label{eq:01} x=\pm 0.d_{_1}\cdots d_{_p}\times b^{n},\hbox{ con } -N\leq n\leq - N. \end{equation} Se denota por $\mathbb{F}_{p, b, N}$ el conjunto de todos los números de punto flotante con precisión $p$, base $b$ y rango exponencial $N$.

Lo primero que se puede observar es que el conjunto $\mathbb{F}_{p, b, N}$ es un conjunto finito, y que no hay una distribución homogénea de sus elementos. Por ejemplo, si consideramos el conjunto de números flotantes de precisión $1$, base $10$ y rango exponencial $10$, como el lector podrá notar, es fácil listar los elementos positivos de este conjunto. En efecto sus elementos son: \[\{0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09\}=\{0.i\times 10^{-1}\}_{i=1}^{9},\] \[\{0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9\}=\{0.i\times 10^{0}\}_{i=1}^{9},\] \[\{1, 2, 3, 4, 5, 6, 7, 8, 9\}=\{0.i\times 10^{0}\}_{i=1}^{9}.\]

Como se puede observar, los elementos de $\mathbb{F}_{1, 10, 1}$ no se encuentran homogéneamente distribuidos sobre el intervalo $[0,10]$. Esta distribución irregular afecta notablemente la posibilidad de hacer cálculos de adición y multiplicación entre números pequeños y números grandes, o solamente entre números grandes. Observe por ejemplo que, cuando sumamos $0.01$ con $9$ obtenemos $9.01$, que no pertenece a $\mathbb{F}_{1, 10, 1}$; igualmente, se puede verificar que el producto de $8$ por $9$ tampoco pertenece.


Figura 1. Distribución no homogénea de los elementos de $\mathbb{F}_{1, 10, 1}$.

En general, los conjuntos de números flotantes $\mathbb{F}_{p, b, N}\subset\mathbb{R}$ no son cerrados bajo la suma o la multiplicación. Por lo tanto, al tratar de representar números reales en algún conjunto $\mathbb{F}_{p, b, N}\subset\mathbb{R}$, habrán ciertos cálculos aritméticos que no serán permitidos. Una manera de realizar cálculos con números reales en $\mathbb{F}_{p, b, N}\subset\mathbb{R}$ es, primero proyectar los números reales en los números de punto flotante y luego realizar el cálculo; ya que, el resultado podría no estar en el conjunto $\mathbb{F}_{_{p, b, N}}\subset\mathbb{R}$, uno debe proyectar de nuevo el resultado en $\mathbb{F}_{p, b, N}\subset\mathbb{R}$. La acción de proyectar un número real en el conjunto de números flotantes, es llamada redondear un número real. Existen muchas formas de hacer esto. A continuación, presentamos la forma más común de hacerlo.

Definición. Sea $X_{_N}=\max \mathbb{F}_{p, b, N}$; por esto, la función de redondeo se define como una aplicación $fl:\mathbb{R}\cap [-X_{_N},X_{_N}]\to \mathbb{F}_{p, b, N}$ definida como: Dado un número real $x\in \mathbb{R}\cap [-X_{_N},X_{_N}]$, con $x=\pm 0.d_{_1}\cdots d_{_p}d_{_{p+1}}\cdots \times b^{n}$ y $-N\leq n\leq N$, se tiene que: \begin{equation} fl(x)=\left\{\begin{array}{cl} \pm 0.d_{_1}\cdots d_{_p}\times b^n & \hbox{ si }d_{_{p+1}}<\frac{b}{2}, \\ \pm (0.d_{_1}\cdots d_{_p}+b^{-p})\times b^n & \hbox{ si }d_{_{p+1}}\geq \frac{b}{2}.\end{array}\right. \end{equation}

Por ejemplo, si consideramos el conjunto de números flotantes $\mathbb{F}_{3,10,3}$, entonces algunas proyecciones de los números reales serían $fl(0.2103\times 10^{3})=0.210\times 10^3$, $fl(0.21037\times 10^{3})=0.210\times 10^3$, $fl(0.2105\times 10^{3})=0.211\times 10^3$ y $fl(0.2107\times 10^{3})=0.211\times 10^3$. Observe cómo la función $fl$ no es una función inyectiva, y por lo tanto, diferentes números reales pueden ser representados con el mismo número flotante.

Otra consecuencia que cabe mencionar, es que la aritmética de los número reales cambia notablemente; es decir, si $x,y\in \mathbb{R}$, siendo así, la suma de reales sobre un conjunto $\mathbb{F}_{p, b, N}$ queda definida por: \begin{equation} x+_{f}y=fl(fl(x)+fl(y)) \end{equation} y la multiplicación por: \begin{equation} x\cdot_{f}y=fl(fl(x)\cdot fl(y)) \end{equation} Aquí las operaciones $+_{f}$ y $\cdot_{f}$ son la suma y la multiplicación en el conjunto de coma flotante $\mathbb{F}_{p, b, N}$. Éstas operaciones son diferentes de la suma ($+$) y la multiplicación ($\cdot$) usual de números reales. En efecto, se tiene la siguiente proposición:

Proposición. Sea $\mathbb{F}_{p, b, N}$, entonces siempre existen $x,y\in \mathbb{R}$ tales que, \begin{equation} fl(fl(x)+fl(y))\neq fl(x+y),\hspace{0.5cm} fl(fl(x)\cdot fl(y))\neq fl(xy).\end{equation}

Estamos seguros de que el lector puede encontrar algunos ejemplos sencillos que verifican la proposición anterior.

Como se ha visto, las operaciones aritméticas usuales no son posibles, en general, en los conjuntos $\mathbb{F}_{p, b, N}$; debido a que, estos conjuntos no son cerrados bajo estas operaciones. Por lo que, se han definido de una manera un poco artificial las operaciones $+_{f}$ y $\cdot_{f}$. A continuación, veremos algunos efectos de estas operaciones cuando se trata de resolver sistemas de ecuaciones lineales en algún $\mathbb{F}_{p, b, N}$.

Considere el conjunto de números flotantes $\mathbb{F}_{3,10,3}$ para resolver el siguiente sistema de ecuaciones lineales: \[ \begin{array}{rcc} 5x_{_1}+x_{_2} &=& 6,\\ 9.34x_{_1}+1.57x_{_2} &=& 11. \end{array} \] Observe que, al resolver este sistema $\mathbb{R}$, sin las limitaciones de $\mathbb{F}_{3,10,3}$, encontramos que las soluciones son $x_{_1}=x_{_2}=1$. Veamos ahora qué ocurre cuando empleamos $\mathbb{F}_{3,10,3}$ con las operaciones $+_{f}$ y $\cdot_{f}$ al realizar Gauss-Jordan sobre este sistema de ecuaciones. Inicialmente tenemos el sistema matricial: \[\left[\begin{array}{cc|c} 5 & 1 & 6\\ 9.43 & 1.57 & 11\end{array}\right]\]; para cambiar la segunda fila, podemos hacer las siguientes operaciones sobre las filas: empleamos la suma y la multiplicación de redondeo en $\mathbb{F}_{3,10,3}$. \[\hat{a}_{_{2i}}=fl(a_{_{21}}-fl\left(fl(a_{_{1i}})\cdot fl\left(\frac{9.53}{5}\right)\right)\hbox{ con } i=1,2,3\], donde $\hat{a}_{_{2i}}$ son las entradas de la nueva fila $2$, y $a_{_{1i}}$ son las entradas de la fila $1$ en el sistema inicial. Al hacer estas operaciones se tiene que: \[\left[\begin{array}{cc|c} 5 & 1 & 6\\ 9.43 & 1.57 & 11\end{array}\right]\rightarrow \left[\begin{array}{cc|c} 5 & 1 & 6\\ 0.02 & -0.32 & -0.3\end{array}\right].\] En este caso no es posible continuar con el método de Gauss-Jordan al menos que, $\hat{a}_{_{21}}=0$; lo cual no es posible. Si introducimos la modificación de que $\hat{a}_{_{21}}=0$, se tiene para nuestro ejemplo que, \[\left[\begin{array}{cc|c} 5 & 1 & 6\\ 9.43 & 1.57 & 11\end{array}\right]\rightarrow \left[\begin{array}{cc|c} 5 & 1 & 6\\ 0 & -0.32 & -0.3\end{array}\right].\] Es importante notar que, aquí no se ha redondeado el error, pues el valor $0.02$ pertenece a $\mathbb{F}_{3,10,3}$. Lo que se ha hecho es una modificación al sistema para poder continuar con el proceso de Gauss-Jordan. Si completamos el proceso bajo las operaciones $+_{f}$ y $\cdot_{f}$ de $\mathbb{F}_{3,10,3}$, se encuentra \[\left[\begin{array}{cc|c} 1 & 0 & 1.01\\ 0 & 1 & 0.938\end{array}\right]\rightarrow \begin{array}{l} x_{_1}=0.101\times 10,\\ x_{_2}=0.938.\end{array}\] Note que la solución bajo $\mathbb{F}_{3,10,3}$, difiere de la solución exacta $x_{_1}=x_{_2}=1$. El error se produce por los redondeos y por la modificación hecha para poder completar el procedimiento de Gauss-Jordan.

En general, los errores por redondeo son muy importantes cuando se hacen sumas entre números pequeños con números grandes o cuando se divide por números muy pequeños. Por ejemplo, considere $x=0.100\times 10^4$ y $y=0.400\times 10$; estos números pertenecen al conjunto $\mathbb{F}_{3,10,4}$; y observe que, $fl(x)=x$ y $fl(y)=y$. Por lo tanto, cuando se hace la suma, se obtiene: \[fl(x+y)=fl(1000+4)=fl(0.1004\times 10^3)=1\times 10^3=x.\] Es decir, la información de $y$ se pierde completamente.

Hay tres estrategias conocidas como el pivoteo parcial, pivoteo parcial escalado y pivoteo completo que buscan evitar la división por números grandes; para así, reducir un poco los errores por redondeo. Considere una matriz $A$ de tamaño $m\times n$ y veamos en qué consisten estos dos métodos:

  • Pivoteo Parcial: En cada paso $k$ de la eliminación Gaussiana, se elige en calidad de pivote a la entrada con índice $(k,p)$ tal que: \begin{equation} |A_{_{kp}}|=\max_{p\leq i \leq m}|A_{_{ip}}|, \end{equation}; es decir, la mayor entrada de la $p$ - ésima columna empezando con $(p,p)$ hasta $(m,p)$. Por ejemplo, supongamos que vamos a realizar el paso $p$ de la eliminación Gaussiana, entonces nuestra matriz tendrá una forma parecida a esto: \[\left[\begin{array}{cccccc|c} * & * & * & & * & & * \\ 0 & * & * & & * & & * \\ 0 & 0 & * & & * & & * \\ \vdots & \vdots & \vdots & & \vdots & & \vdots \\ 0 & 0 & 0 & & A_{_{pp}} & & * \\ \vdots & \vdots & \vdots & & \vdots & & \vdots \\ 0 & 0 & 0 & & A_{_{mp}} & & * \\ \end{array}\right]_{m\times n}\] Y suponga que nuestro máximo es $|A_{_{kp}}|=\max_{p\leq i \leq m}|A_{_{ip}}|$, luego la entrada $A_{kp}$ se usará como pivote. Esto significa que se aplicará el intercambio de las filas $R_{_p}\leftrightarrow R_{_k}$, y luego se aplican las operaciones elementales para eliminar las entradas desde $(p+1,p)$ hasta $(m,p)$.
  • Pivoteo Parcial Escalado: Suponga que estamos en el paso $p$. En cada renglón $i$, con $p\leq i \leq m$, se calcula el valor máximo absoluto en la parte principal de la matriz: \[s_{_i}=\max_{p\leq j\leq m} |A_{_{ij}}|.\] Suponga que $s_{_i}>0$ para todo $i\in \{k,\dots, m\}$. Si se elige el menor entero $q$ con \[\frac{|A_{_{qk}}|}{s_{_q}}=\max_{p\leq i\leq m}\frac{|A_{_{ip}}|}{s_{_i}}.\] En otras palabras, sea $q$ el menor de los índices $i$ en los cuales la expresión $\frac{|A_{_{ip}}|}{s_{_i}}$ alcanza el máximo. Si $q\neq p$, entonces se intercambian los renglones $p$ y $q$, y luego se eliminan las entradas por debajo de $(p,p)$.
  • Pivoteo Completo: En el $k$ - ésimo paso de la eliminación Gaussina, se buscan los índices $p,q\in \{k,\dots, m\}$ tales que, \[|A_{_{rs}}|=\max_{\substack{p\leq i\leq m \\ p\leq j\leq n}}|A_{_{ij}}|.\] En otras palabras, se busca el máximo entre los números $|A_{_{ij}}|$ con $p\leq i \leq m$ y $p\leq j \leq m$. En este caso, antes de efectuar el paso $p$ de la eliminación Gaussiana, la matriz tendrá una forma como ésta: \[\left[\begin{array}{ccccccc|c} * & * & * & & * & & * & *\\ 0 & * & * & & * & & * & * \\ 0 & 0 & * & & * & & * & *\\ \vdots & \vdots & \vdots & & \vdots & & \vdots & \vdots\\ 0 & 0 & 0 & & A_{_{pp}} & \cdots & A_{_{pn}} & * \\ \vdots & \vdots & \vdots & & \vdots & & \vdots & *\\ 0 & 0 & 0 & & A_{_{mp}} & \cdots & A_{_{mn}} & *\\ \end{array}\right]_{m\times n}\] Si $(r,s)\neq (p,p)$, entonces se intercambian los renglones y las columnas de tal manera que la entrada $A_{_{rs}}$ se pone en la posición $(p,p)$, y luego se aplican las operaciones elementales para anular las entradas por debajo de $(p,p)$.
Esperamos que esta entrada haya sido de su agrado, nos vemos en otra ocasión.

Referencias