Saltar al contenido principal
LibreTexts Español

5.1: El Algoritmo Básico

  • Page ID
    125124
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    La mejor manera de entender cómo funciona la eliminación gaussiana es trabajar a través de un ejemplo concreto. Considera el siguiente\(N=3\) problema:

    \[\begin{bmatrix}1 &2 &3 \\ 3 &2 &2 \\ 2 &6 &2\end{bmatrix} \begin{bmatrix} x_0 \\ x_1 \\ x_2 \end{bmatrix} = \begin{bmatrix}3 \\ 4 \\ 4\end{bmatrix}.\]

    El algoritmo de eliminación gaussiana consta de dos fases distintas: reducción de filas y sustitución por retroceso.

    5.1.1 Educación de la fila R

    En la fase de reducción de filas del algoritmo, manipulamos la ecuación matricial para que la matriz se vuelva triangular superior (es decir, todas las entradas por debajo de la diagonal son cero). Para lograrlo, observamos que podemos restar una fila de otra, sin alterar la solución. De hecho, podemos restar cualquier múltiplo de una fila.

    Eliminaremos (cero) los elementos por debajo de la diagonal en un orden específico: de arriba a abajo a lo largo de cada columna, luego de izquierda a derecha para columnas sucesivas. Para nuestro\(3\times 3\) ejemplo, los elementos que pretendemos eliminar, y el orden en que los eliminaremos, están indicados por los números coloreados\(0\),\(1\), y\(2\) en la siguiente figura:

    clipboard_ee51b6655ea8f5114a5fdf27ae6c5a4fd.png
    Figura\(\PageIndex{1}\)

    El primer elemento matricial que queremos eliminar es at\((1,0)\) (círculo naranja). Para eliminarlo, restamos, de esta fila, un múltiplo de fila\(0\). Utilizaremos un factor de\(3/1=3\):

    \[(3x_0 + 2x_1 + 2x_2) - (3/1)(1x_0 + 2x_1 + 3x_2) = 4 - (3/1) 3\]

    El factor de\(3\) que usamos se determina de la siguiente manera: dividimos el elemento matriz en\((1,0)\) (que es el que pretendemos eliminar) por el elemento at\((0,0)\) (que es el que está a lo largo de la diagonal en la misma columna). Como resultado, el término proporcional a\(x_{0}\) desaparece, y obtenemos las siguientes ecuaciones lineales modificadas, que poseen la misma solución:

    clipboard_ea9ac17b2d6a51a7ab06a9dfded14addf.png
    Figura\(\PageIndex{2}\)

    (Tenga en cuenta que también hemos cambiado la entrada en el vector en el lado derecho, ¡no solo la matriz en el lado izquierdo!) A continuación, eliminamos el elemento en\((2,0)\) (círculo verde). Para ello, restamos, de esta fila, un múltiplo de fila\(0\). El factor a utilizar es\(2/1=2\), que es el elemento en\((2,0)\) dividido por el elemento\((0,0)\) (diagonal):

    \[(2x_0 + 6x_1 + 2x_2) - (2/1)(1x_0 + 2x_1 + 3x_2) = 4 - (2/1) 3\]

    El resultado es

    clipboard_e2f868d69e640f2417ce294c0831f5479.png
    Figura\(\PageIndex{3}\)

    A continuación, eliminamos el\((2,1)\) elemento (círculo azul). Este elemento se encuentra en columna\(1\), por lo que lo eliminamos restando un múltiplo de fila\(1\). El factor a utilizar es\(2/(-4)=-0.5\), que es el\((2,1)\) elemento dividido por el elemento\((1,1)\) (diagonal):

    \[(0x_0 + 2x_1 - 4x_2) - (2/(-4))(0x_0 - 4x_1 - 7x_2) = -5 - (2/(-4)) (-2)\]

    El resultado es

    clipboard_e2b08908b35369e1242c4b67cc2443259.png
    Figura\(\PageIndex{4}\)

    Ya hemos completado la fase de reducción de filas, ya que la matriz del lado izquierdo es superior-triangular (es decir, todas las entradas por debajo de la diagonal se han establecido en cero).

    5.1.2 Sustitución por retroceso

    En la fase de sustitución por retroceso, leemos la solución desde la fila más inferior hasta la fila más alta. Primero, examinamos la fila inferior:

    clipboard_e88050c7d67e5377372205efdc8d491ca.png
    Figura\(\PageIndex{5}\)

    Gracias a la reducción de filas, todos los elementos de la matriz en esta fila son cero excepto el último. De ahí que podamos leer la solución

    \[x_{2}=(-4.5)/(-7.5)=0.6.\]

    A continuación, nos fijamos en la fila de arriba:

    clipboard_e1a889d08902264079ef840ac8e9c2cfd.png
    Figura\(\PageIndex{6}\)

    Esta es una ecuación que involucra\(x_{1}\) y\(x_{2}\). Pero a partir del paso anterior de retro-sustitución, lo sabemos\(x_{2}\). Por lo tanto, podemos resolver para

    \[x_1 = [-5 - (-7) (0.6)] / (-4) = 0.2.\]

    Por último, nos fijamos en la fila de arriba:

    clipboard_e88e368fb3f4b56d5b06e6434386c14d4.png
    Figura\(\PageIndex{7}\)

    Esto involucra las tres variables\(x_{0}\),\(x_{1}\), y\(x_{2}\). Pero ya sabemos\(x_{1}\) y\(x_{2}\), así podemos leer la solución para\(x_{0}\). El resultado final es

    \[\begin{bmatrix}x_0 \\ x_1 \\ x_2\end{bmatrix} = \begin{bmatrix}0.8 \\ 0.2 \\ 0.6\end{bmatrix}.\]

    5.1.3 Tiempo de ejecución

    Resumamos los componentes del algoritmo de eliminación gaussiana y analicemos cuántos pasos toma cada parte:

    Reducción de filas
    Paso adelante a través de las filas. Para cada fila\(n\), \(N\)pasos
    Realizar pivotamiento (que se discutirá más adelante). \(N-n +1 \sim N\)pasos
    Paso adelante a través de las filas más grandes que\(n\). Para cada una de esas filas\(m\), \(N-n \sim N\)pasos
    Restar los\((A'_{mn}/A'_{nn})\) tiempos\(n\) de fila de la fila\(m\) (donde\(\mathbf{A}'\) está la matriz actual). Esto elimina el elemento de la matriz en\((m,n)\). \(O(N)\)operaciones aritméticas
    Sustitución por retroceso
    Paso hacia atrás a través de las filas. Para cada fila\(n\), \(N\)pasos
    Sustituto en las soluciones\(x_{m}\) para\(m>n\) (que ya se encuentran). De ahí, encuentra\(x_{n}\). \(N-n \sim O(N)\)operaciones aritméticas

    (El procedimiento de “pivotar” aún no se ha discutido; lo haremos en una sección posterior).

    Se concluye que el tiempo de ejecución de la fase de reducción de fila se escala como\(O(N^{3})\), y el tiempo de ejecución de la fase de retrosustitución se escala como\(O(N^{2})\). Por lo tanto, el tiempo de ejecución general del algoritmo escala como\(O(N^{3})\).


    This page titled 5.1: El Algoritmo Básico is shared under a CC BY-SA 4.0 license and was authored, remixed, and/or curated by Y. D. Chong via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.