Está en la página 1de 3

Métodos de Análisis Numérico

Eliminación Gaussiana con Sustitución hacia Atrás


Desarrollo Teórico
Una matriz de 𝑛 × (𝑛 + 1) se puede usar para representar el sistema lineal

Al construir

Donde la línea punteada vertical se usa para separar los valores de los coeficientes de las
incógnitas con los del lado derecho de las ecuaciones. El arreglo [A, b] recibe el nombre de matriz
aumentada.

Se resuelve la matriz con el método de Gauss, obteniendo las soluciones – de existir – de 𝑥1 , 𝑥2 , … ,


𝑥𝑛 .

Dado un sistema lineal

Primero se forma la matriz aumentada Ã,


Donde A denota la matriz formada por los coeficientes. Las entradas en la (𝑛 + 1) columna son
los valores de b; es decir, 𝑎𝑖,𝑛+1 = 𝑏𝑖 para cada 𝑖 = 1, 2, … , 𝑛.

Siempre y cuando 𝑎11 ≠ 0, se realiza las operaciones correspondientes para

Para eliminar el coeficiente de 𝑥1 en cada una de las filas. Luego se sigue el rpocedimiendo
seuencial para 𝑖 = 2, 3, … , 𝑛 − 1 y se realiza la operación

Siempre y cuando 𝑎𝑖𝑖 ≠ 0. Esto elimina 𝑥𝑖 en cada fila debajo del i-ésimo para todos los valores
de 𝑖 = 1, 2, … , 𝑛 − 1 . La matriz resultante es:

Esta nueva matriz representa un sistema lineal con la misma solución establecida como el
sistema original. El nuevo sistema es triangular,

Con esto, se logra resolver el sistema.


Código de MATLAB
%Método de Eliminación Gaussiana con Sustitución hacia atrás.

function solucion = eliminacionGaussiana(M)


% ENTRADA: matriz aumentada M.
% SALIDA: solución del sistema de ecuaciones lineales

[n, ~] = size(M);

% Paso 1: Proceso de eliminación


for i = 1:n-1
% Paso 2: Encontrar p
p = find(M(i:n, i), 1) + i - 1;

if isempty(p)
error('No existe una solución única');
end

% Paso 3: Intercambiar filas si es necesario


if p ~= i
M([i, p], :) = M([p, i], :);
end

% Paso 4: Eliminación hacia adelante


for j = i+1:n
m = M(j, i) / M(i, i);
M(j, i:end) = M(j, i:end) - m * M(i, i:end);
end
end

% Paso 7: Verificar si el sistema tiene solución única


if M(n, n) == 0
error('No existe una solución única');
end

% Paso 8: Sustitución hacia atrás


solucion = zeros(n, 1);
solucion(n) = M(n, n+1) / M(n, n);

% Paso 9: Calcular el resto de las incógnitas


for i = n-1:-1:1
solucion(i) = (M(i, n+1) - sum(M(i, i+1:n) * solucion(i+1:n))) / M(i, i);
end

% Paso 10: Mostrar la solución


disp('Solución:');
disp(solución);
end

También podría gustarte