Documentos de Académico
Documentos de Profesional
Documentos de Cultura
- Eliminación de Gauss: La técnica de eliminación de Gauss es llamada así porque involucra combinación
de ecuaciones para eliminar las incógnitas. Aunque es uno de los métodos más antiguos para resolver
ecuaciones simultáneas, permanece como el más importante de los algoritmos en uso hoy y es la base
para resolver ecuaciones lineales en muchos software incluyendo Matlab.
Método gráfico. Una solución gráfica para un sistema de dos ecuaciones lineales se obtiene graficando
en coordenadas cartesianas con un eje correspondiendo a x1 y el otro a x2, Debido a que las ecuaciones
son lineales, cada ecuación originará una línea recta. Por ejemplo, suponga que tenemos las siguientes
ecuaciones:
3 x1 + 2 x2 = 18
− x1 + 2 x2 = 2
Si asumimos que x1 es la abscisa, se puede resolver cada una de las ecuaciones para x2 de la forma:
3
x2 = − x1 + 9
2
1
x2 = x1 + 1
2
Las ecuaciones están ahora de la forma de líneas rectas, x2 = (pendiente) x1 + intercepto. Cuando estas
ecuaciones son graficadas, los valores de x1 y x2 en la intersección de las líneas representa la solución.
Para este caso x1 = 4 y x2 = 3.
Para tres ecuaciones simultáneas, cada ecuación será representada por un plano en un sistema de
coordenadas de tres dimensiones. El punto donde los tres planos se interceptan representa la solución.
Más allá de tres ecuaciones, los métodos gráficos no funcionan, por lo que tienen poco valor práctico
para resolver ecuaciones simultáneas. Sin embargo, son útiles para visualizar las propiedades de las
soluciones.
Determinantes y la regla de Cramer. La regla de Cramer es otra técnica que se ajusta perfectamente a
solución de sistemas pequeños de ecuaciones. Esta regla estipula que cada incógnita en un sistema de
ecuaciones lineales algebraicas puede ser expresada como una fracción de dos determinantes con el
denominador D y con el numerador utilizando D pero reemplazando la columna de coeficientes de la
incógnita que se está resolviendo por las constantes b1, b2, . . . , bn . Por ejemplo, para tres ecuaciones,
x1 sería calculado como:
b1 a12 a13
b2 a22 a23
b3 a32 a33
x1 =
D
Solución. El determinante puede ser calculado directamente en MATLAB con la función det. Primero
creamos la matriz A y calculamos su determinante (D):
>> D=det(A);
>> A(:,1)=[-0.01;0.67;-0.44]
>> A(:,1)=b;
>> x1=det(A)/D
x1 =
-14.9000
Para más de tres ecuaciones, la regla de Cramer se vuelve impráctica, debido a que el número de
ecuaciones se incrementa y los determinantes son difíciles de obtener en poco tiempo. Como
consecuencia, otros métodos son usados.
a11x1 + a12x2 = b1
a21x1 + a22x2 = b2
La estrategia básica es multiplicar las ecuaciones por constantes de tal forma que una de las incógnitas
sea eliminada cuando las dos ecuaciones sean combinadas. El resultado es una ecuación única que
puede ser resuelta para la incógnita restante. Este valor puede ser substituido en la ecuación original
para calcular la otra variable.
Por ejemplo, si multiplicamos la primer ecuación por a21 y la segunda ecuación por a11 tenemos que
a11b2 − a21b1
x2 =
a11a22 − a21a12
a22b1 − a12b2
x2 =
a11a22 − a21a12
La eliminación de incógnitas puede ser extendida a sistemas con más de dos o tres ecuaciones. Sin
embargo, los cálculos numerosos que son requeridos para grandes sistemas hace que el método sea
tedioso para hacerlo a mano.
- Eliminación de Gauss sencilla. En la sección anterior la eliminación de incógnitas fue usada para
resolver un par de ecuaciones simultáneas. El procedimiento consiste en dos partes:
1. Las ecuaciones fueron manipuladas para eliminar una de las incógnitas de las ecuaciones. El resultado
de esta eliminación es una ecuación con una incógnita.
Esta aproximación básica puede ser extendida a grandes números de ecuaciones desarrollando un
esquema o algoritmo para eliminar variables y sustituir en la anterior. La eliminación de Gauss es el más
básico de estos esquemas. Aunque estas técnicas son adecuadas para implementación en
computadores, algunas modificaciones se deben realizar para obtener un algoritmo confiable. En
particular, el programa debe evitar la división por cero. El siguiente método se llama eliminación de
Gauss sencilla porque no evita este problema.
Fase de eliminación. Esta fase utiliza sólo una operación elemental para multiplicar una ecuación
(digamos la ecuación j ) por una constante λ y substraerla de otra ecuación (equation i ).
Comencemos con la ecuación (a) para ser la ecuación pivote y escogemos el multiplicador λ para
eliminar x1 de las ecuaciones (b) y (c):
Esto completa el primer paso, ahora escogemos (b) como la ecuación pivote y eliminamos x2 de (c):
3x3 = 9 (c)
Terminando así la fase de eliminación. Las ecuaciones originales han sido reemplazadas por ecuaciones
equivalentes que pueden ser resueltas fácilmente mediante sustitución. Una mejor forma de
representar las ecuaciones es mediante la matriz de coeficientes aumentada como instrumento para
desarrollar los cálculos. Así de las ecuaciones originales sería:
4 − 2 1 11
− 2 4 − 2 − 16
1 − 2 4 17
4 −2 1 11
0 3 − 1.5 − 10.5
0 − 1.5 3.75 14.25
4 −2 1 11
0 3 − 1.5 − 10.5
0 0 3 9
Fase de sustitución. Las incógnitas pueden ser calculadas sustituyendo en reversa desde la última
ecuación:
x3 = 9/3 = 3
Fase de eliminación. Si se observan las ecuaciones en algún instante durante la fase de eliminación, se
puede asumir que las primeras filas k de A han sido transformadas a una forma triangular superior. Por
eso, la actual ecuación de pivote es la ecuación k-ésima y todas las ecuaciones debajo de ella aún no han
sido transformadas. La situación es descrita mediante la matriz aumentada como se muestra a
continuación. Note que los componentes de A no son los coeficientes de las ecuaciones originales (a
excepción de la fila 1) ya que han sido alterados por el proceso de eliminación. Lo mismo se aplica para
las constantes b.
Hagamos la fila i como la ecuación pivote que será transformada, lo que significa que el elemento Aik
será eliminado. Esto se puede hacer multiplicando la fila pivote por λ = Aik/Akk y sustrayéndolo de la fila i.
El cambio correspondiente en la fila i es:
bi ← bi − λbk
Para transformar la matriz de coeficientes entera a la forma matricial triangular, k e i deben tener el
rango de :
for k = 1:n-1
for i= k+1:n
if A(i,k) ˜= 0
lambda = A(i,k)/A(k,k);
A(i,k+1:n) = A(i,k+1:n) - lambda*A(k,k+1:n);
b(i)= b(i) - lambda*b(k);
end
end
end
xn=bn\Ann
Considere ahora el estado de la sustitución en retroceso donde xn, xn−1, . . . , xk+1 ya han sido calculadas
(en ese orden), y vamos a calcular xk de la ecuación k:
La solución es:
n
1
xk = (bk − ∑
j = k +1
Akj x j )
Akk
, k = n − 1, n − 2,...,1
for k = n:-1:1
b(k) = (b(k) - A(k,k+1:n)*b(k+1:n))/A(k,k);
end
Archivo m. El siguiente código utiliza el método simple de eliminación de Gauss para resolver un sistema
de n ecuaciones lineales:
function x = GaussNaive(A,b)
% GaussNaive: naive Gauss elimination
% x = GaussNaive(A,b): Gauss elimination without pivoting.
% input:
% A = coefficient matrix
% b = right hand side vector
% output:
% x = solution vector
[m,n] = size(A);
if m~=n, error('Matrix A must be square'); end
nb = n+1;
Aug = [A b];
% forward elimination
for k = 1:n-1
for i = k+1:n
factor = Aug(i,k)/Aug(k,k);
Aug(i,k:nb) = Aug(i,k:nb)-factor*Aug(k,k:nb);
end
end
% back substitution
x = zeros(n,1);
x(n) = Aug(n,nb)/Aug(n,n);
for i = n-1:-1:1
x(i) = (Aug(i,nb)-Aug(i,i+1:n)*x(i+1:n))/Aug(i,i);
end
Problema. Utilize la funcion GaussNaive para resolver los siguientes sistemas de ecuaciones lineales:
a).
Referencias:
- J. Kiusalaas, Numerical methods in engineering with Matlab, Cambridge University Press (2005).
- S.C. Chapra, Applied numerical methods with Matlab, Mc Graw Hill (2008).