public class testrun {
public static double ellipticalequn(float x, float y){
double exp;
exp=(-2)*Math.exp(Math.pow((y-(.35*6.5)),2)-Math.pow((x-(.75*8)),2)/(2*.05*6.5));
return exp;
}
public static void jacobi(){
int ny=80;
int nx=80;
double[][][] p=new double[100][100][100];
for(int i=0;i<100;i++){p[i][i][0]=0;} //initialise
for(int i=0;i<nx;i++){
p[0][i][0]=10; //Boundary conditions
p[79][i][0]=10;
p[i][79][0]=50;
p[i][0][0]=50;
}
boolean loop=true;
int k=0;
while(loop){
double error=0;
for(int i=1;i<nx-1;i++){
for(int j=1;j<ny-1;j++){
p[i][j][k]=0.25*((p[i-1][j][k]+p[i+1][j][k]+p[i][j+1][k]+p[i][j-1][k])-ellipticalequn((float)i,(float)j));
error+=Math.pow(p[i][j][k],2);
}
}
error=Math.sqrt(error);
k++;
if(k>50){
loop=false;}
if(error<(10^(-8))){loop=false;}
else { loop=true;}
}
}
public static void main(String[] args){
jacobi();
}
}
j'ai passé 3 heures et je suis incapable de comprendre l'erreur! s'il vous plaît s'il vous plaît aidez-moi ici! l'erreur apparaît mais je ne sais pas pourquoi il does.i suis nouveau à Java. grâce AADIsur erreur d'index - implémentation de la méthode Jacobi
Quelle est l'erreur , poseriez-vous l'erreur aussi, s'il vous plaît? –
Si vous avez passé 3 heures à essayer de comprendre le problème, passez encore quelques minutes à poster la pile ... – Thihara
Je vous recommande fortement de nettoyer votre code - l'indentation est incohérente, il y a des endroits (comme où vous avez placé ' p [i] [j] [k] ') qui devrait vraiment être divisé en au moins des lignes séparées sinon des méthodes séparées, et il y a beaucoup de [nombres magiques] (http://en.wikipedia.org/wiki/ Magic_number_ (programmation) #Unnamed_numerical_constants). Il n'y a pas de commentaires non plus. Cela rend la tâche difficile si nous avons de la difficulté à comprendre votre code. – thegrinner