//@utor Jose Espejo Cuba
//Despejamos para que la diagonal principal sea cero
public static void despeje(double M[][],double V[],int m){
double d;
for(int i=0;i
for(int j=0;j
M[i][j]=-M[i][j]/d;
else
M[i][j]=0.0;
}
V[i]=V[i]/d;
}
}
//Metodo de Jacobi
public static void Jacobi(double M[][],double v[],double v1[],double v2[],int m){
for(int i=0;i
v2[i] +=M[i][j]*v1[j];
else
v2[i]+=v[i];
}
}
}
//Metodo de Seidel
public static void Seidel(double M[][],double v[],double v1[],double v2[],int m){
for(int i=0;i
else
v2[i] +=M[i][j]*v1[j];
}
v2[i]+=v[i];
}
}
//Esta es mi condicion de parada
public static double condicion(double v1[],double v2[],int m){
double may1,may2,error;
may1=may2=error=0.0;
for(int i=0;i
if(error>may1)
may1=error;
if(v2[i]>may2)
may2=v2[i];
}
return(may1/may2);
}
//Iteramos
public static void iterar(double M[][],double V[],int m){
int cont=0;
double cond=99999;
double x1[]=new double[m];
double x0[]=new double[m];
Arrays.fill(x1, 0.0);
Arrays.fill(x0, 0.0);
while(cond>=0.00000006){
//Seidel(M,V,x0,x1,m);
Jacobi(M,V,x0,x1,m);
cond=condicion(x0,x1,m);
x0=Arrays.copyOf(x1, m);
Arrays.fill(x1, 0.0);
cont++;
}
System.out.println("Numero de iteraciones: "+cont);
for(int i=0;i
}
System.out.println();
}
No hay comentarios:
Publicar un comentario