programa de jacobi - Equipo-desarrollador-de

Anuncio
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.
Descargar