Métodos iterativos para sistemas de ecuaciones
METODOS NUMÉRICOS
PRESENTADO A: Edinson Martínez
PRESENTADO POR: Jhoimer Hernández
Nicolás Barrera
Jorge Torrado
Larry MartínezGRUPO: A
FECHA: 02/12/2013
Métodos iterativos para sistemas de ecuaciones
Sistema de ecuaciones lineales
Para estos métodos existen algunas restricciones como:
Restricciones
La resolución iterativa no es aplicable a todos los problemas pero resulta muy útil para ciertos tipos, por ejemplo, si el número de incógnitases muy grande y la matriz de los coeficientes dispersa.
La precisión de la solución obtenida por un método iterativo dependerá del número (k) de iteraciones y de la convergencia del método.
Todos los métodos iterativos requieren una estimación inicial que designamos por x0 para comenzar la iteración.
X0 puede ser cualquier vector (n‐úpla) arbitrario pero si se dispone de una buena estimacióninicial el proceso de convergencia se acelera.
En caso de no disponer de una buena estimación inicial se puede tomar x0 como el vector 0.
para que el método sea aplicable es que A sea de diagonal estrictamente dominante [1] .
Método de Jacobi
El método iterativo de Jacobi, sirve para hallar la resolución de un sistema lineal AX = B mediante la generación de una sucesión, y con una aproximacióninicial mediante los siguientes pasos.
1. se toman los datos iniciales como el sistema lineal de ecuación Ax=b, valor inicial x0 y la tolerancia permitida.
2. Dado xk se calcula xk+1
3. Se condiciona para con el número de iteraciones para saber si la ecuación converge o no,
4. fin del programa.
Algoritmo
clear all; clc; close all;
fprintf('******************* METODO DE JACOBY****************** \n\n')
n=input('Ingrese el el numero de incognitas del sistema = ');
fprintf('\n');
fprintf('Matriz coeficientes del sistema \n\n')
for i=1:n
for j=1:n
fprintf('coeficiente A(%d,%d) = ', i,j ) % Definición de la matriz A
A(i,j)=input(' ');
end
end
fprintf('\nVector términos independientes \n\n')
for i=1:n
fprintf('término b(%d) = ', i ) %Definición del vector b
b(i)=input(' ');
end
b=b';
fprintf('\nVector aproximación inicial\n\n')
for i=1:n
fprintf('xo(%d) = ', i ) % Definición de la aproximación inicial
xo(i)=input(' ');
end
xo=xo';
e=input('\nIngrese el valor de la tolerancia = '); % Definición de la tolerancia
fprintf('\n');
for i=1:n
c(i)=b(i)/A(i,i); % Cálculo del vector c
for j=1:n
ifi==j T(i,j)=0;
else T(i,j)=-A(i,j)/A(i,i); % Cálculo de la matriz T
end
end
end
c=c';
Er=A*xo-b;
while norm(Er,inf)>=e
x=T*xo+c;
xo=x;
Er=A*xo-b;
end
fprintf('x1=%.3f\n',x(1));
fprintf('x2=%.3f\n',x(2));
fprintf('x3=%.3f\n',x(3));
MÉTODO DE GAUSS SEIDEL
El método de Jacobi usa las coordenadas de x(k) para calcular las de x(k+1); sin embargo,será más conveniente usar en la iteración actual las componentes ya calculadas. Esta pequeña modificación da origen al método iterativo de Gauss-Siedel.
Pasos:
Entrada: n, A, b, x (aproximación inicial), (tolerancia).
Salida: solución aproximada x1,x2,x3,...xn.
Paso 1: Er=A*x-b.
Paso 2: Mientras Err>tol hacer pasos 3-8
Paso 3: Para i=1 hasta n hacer pasos 4-7
Paso 4: s=0
Paso 5: Para j=1hasta n hacer paso 6
Paso 6: Si i=j hacer s=s+A(i,j)*x(j)
Paso 7: x(i)=(b(i)-s)/A(i,i)
Paso 8: Er=A*x-b
Paso 9: Solución aproximada x1,x2,x3,...xn.
Algoritmo
clear all; clc; close all;
fprintf('Gauss_seidel\n\n')
n=input('Ingrese el el numero de incognitas del sistema = ');
fprintf('Matriz coeficientes del sistema \n\n')
for i=1:n
for j=1:n
fprintf('coeficiente...
Regístrate para leer el documento completo.