package jacobi_2; /** * * @author Hernandez */ import java.io.*; public class Main { public static void main(String[] args) throws IOException { //Metodo Principal // Variable para entrada de datos .. BufferedReader entrada; entrada = new BufferedReader (new InputStreamReader(System.in)); // Declaracion de Variables ... // Varibles de la Matrcices double y1 = 0, y2 = 0, y3 =0; double x1 = 0, x2 = 0, x3 =0; double a1 = 0, a2 = 0, a3 = 0; double b1 = 0, b2 = 0, b3 = 0; double c1 = 0, c2 = 0, c3 = 0; double d1 = 0, d2 = 0, d3 = 0; // Variable de Error Propuesto ... double Epr = 0.0001; // Error Porcentual double Ep1 = 0 , Ep2 = 0 , Ep3 = 0 ; double Ea1 = 0 , Ea2 = 0 , Ea3 = 0 ; int Resp = 0; // Contador de Interaciones int n = -1; System.out.println(" MATERIA: METODOS NUMERICOS "); System.out.println(" ****Metodo de Jacobi**** \n"); System.out.println("Introduzca lo valores constantes de la matrcices \n"); System.out.println("\na1:"); a1 = Double.parseDouble(entrada.readLine()); System.out.println("\na2:"); a2 = Double.parseDouble(entrada.readLine()); System.out.println("\na3:"); a3 = Double.parseDouble(entrada.readLine()); if(a2+a3<a1) { System.out.println("\nb1:"); b1 = Double.parseDouble(entrada.readLine()); System.out.println("\nb2:"); b2 = Double.parseDouble(entrada.readLine()); System.out.println("\nb3:"); b3 = Double.parseDouble(entrada.readLine()); System.out.println("\nc1:"); c1 = Double.parseDouble(entrada.readLine()); System.out.println("\nc2:"); c2 = Double.parseDouble(entrada.readLine()); System.out.println("\nc3:"); c3 = Double.parseDouble(entrada.readLine()); System.out.println("\nd1:"); d1 = Double.parseDouble(entrada.readLine()); System.out.println("\nd2:"); d2 = Double.parseDouble(entrada.readLine()); System.out.println("\nd3:"); d3 = Double.parseDouble(entrada.readLine()); }else { System.out.println(" no es matriz dominate "); } // Iteraciones do { Ep1 = y1; Ep2 = y2; Ep3 = y3; n++; // Incremento de la Iteracion // Calculo de Valores ... y1 = ((-b1*x2) + (-c1*x3) + d1) / a1; y2 = ((-a2*x1) + (-c2*x3) + d2) / b2; y3 = ((-a3*x1) + (-b3*x2) + d3) / c3; // Cambio de Variables Ea1 = ( (y1 - Ep1) / y1 ) * 100; Ea2 = ( (y2 - Ep2) / y2 ) * 100; Ea3 = ( (y3 - Ep3) / y3 ) * 100; x1 = y1; x2 = y2; x3 = y3; // Impresion de resultados de la ecuacion ... System.out.println("Iteracion = " + n ); System.out.println(" y1 = " + y1 + "\t y2 = " + y2 + "\t y3 = "+ y3 + " \t error = " + Ea2); if(n==10 || Ea2==0.0001) { System.out.println(" ***** FIN DE LAS ITERACIONES **** "); } } while ( Math.abs(Ea1)> Epr) ; } } ********************** CORRIDAS IMPRESAS ********************************** Aquí primero nos muestra la introducción al programa y luego nos pide que introduzcamos los datos. en esta segunda parte nos muestra los resultados de las iteraciones y se detiene hasta que el n=10 0 el error <= o.ooo1 NOTA. compañeros este programa no resuelve matrices muy complejas debido a que si le metemos matrices muy grandes al sustituir los valores como lo hacemos en los ejercicios en clase se generarian numeros muy grandes y la maquina sufriria un desbordamiento de memoria.