clc
clear
%limpiar ventana
%valores iniciales a la funcionpara poder ir trabajando hacia abajo y
%reemplazar estos valores en la funcion x1
x2=0;
x3=0;
%segun el metodo de gauss seidel se sustituye el valor de x2 y x3 por 0
%se dan los valores despejados de cada una de las ecuaciones
%y cada x1, x2,x3 adquiere este valor
x1=((8 + 0.2*x2 + 0.5*x3)/3);
x2=((-19.5 - 0.1*x1 - 0.4*x3)/7);
x3=((72.4 - 0.4*x1 + 0.1*x2)/10);
%valor del error que se pide
error = 1.0;
%se igualan a los valores iniciales dados
xa1=x1;
xa2=x2;
xa3=x3;
%en este caso el valor inicial del error se tomara como 100%
e1=100;
e2=100;
e3=100;
%contador
i = 1;
% se utiliza el bucle while con el fin de hacer las iteraciones necesarias
while ((error < e1) || (error < e2) || (error < e3 ))% "mientras" el error obtenido sea menor al error requerido se seguiran realizando las iteraciones.
%se reemplazan los valores obtenidos
xa1=x1;
xa2=x2;
xa3=x3;
%se definen los valores de la iteracion anterior
x1=((8 + 0.2*x2 + 0.5*x3)/3);
x2=((-19.5 - 0.1*x1 - 0.4*x3)/7);
x3=((72.4 - 0.4*x1 + 0.1*x2)/10);
%se calcula el valor del error para ser agregado en la tabala
e1=abs((x1-xa1)/x1)*100;
e2=abs((x2-xa2)/x2)*100;
e3=abs((x3-xa3)/x3)*100;
i=i+1;
%el contador aumenta cada vez que se realize el ciclo /numero de iteracione
fprintf('%0d \t %1f \t %3f \t %5f \t %8f \t %10f \t %12f \n',i,x1,x2,x3,e1,e2,e3);
end % se cierra el ciclo
% se imprimen valores finales obtenidos, señalando la cantidad de
% operaciones necesarias para llegar al resultado obteniendo los valores de
% error requeridos
fprintf('cant. iteraciones: %f \n\n', i);
fprintf('x1 = %f \n\n', x1);
fprintf('x2 = %f \n\n', x2);
fprintf('x3 = %f \n\n', x3);
No hay comentarios:
Publicar un comentario