Está en la página 1de 5

package jacobi_2;

/**
*
* @author Hernandez
*/
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException
BufferedReader entrada;
entrada =new BufferedReader (new InputStreamReader(System.in));
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;
double Epr =0.0001; // Error Porcentual
double Ep1 =0 , Ep2 =0 , Ep3 =0 ;
double Ea1=0 , Ea2 =0 , Ea3 =0 ;
int Resp =0;
// Declaracion de Variables ...
// Varibles de la Matrcices
// Variable para entrada de datos ..
{ //Metodo Principal
// Variable de Error Propuesto ...
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());
// Contador de Interaciones
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 ");
}
do
{
Ep1 = y1;
Ep2 = y2;
Ep3 = y3;
y1 =((-b1*x2) +(-c1*x3) +d1) / a1;
y2 =((-a2*x1) +(-c2*x3) +d2) / b2;
y3 =((-a3*x1) +(-b3*x2) +d3) / c3;
Ea1 =( (y1- Ep1) / y1 ) * 100;
Ea2 =( (y2- Ep2) / y2 ) * 100;
Ea3 =( (y3- Ep3) / y3 ) * 100;
x1 =y1; x2 =y2; x3 =y3;
// Iteraciones
n++; // Incremento de la Iteracion
// Calculo de Valores ...
// Cambio de Variables
{
}
// 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 introduccin 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
compaeros 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.
NOTA.

También podría gustarte