Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - AndenBomber

#1
He desarrollado un programilla que me tendría que resolver el problema de localización por el método del centro de gravedad. Más info aquí, diapositivas 28,29,30.
Ese método que menciono es iterativo; esto es, para cada iteración el valor obtenido se va acercando al valor óptimo. El problema que tengo es que tengo que hacer muchas iteraciones con mi algoritmo. El profesor dijo que luego de algo más de 20 iteraciones ya se podrá intuir cuál es el valor, pero mi programa requiere hacer muchas(muchísimas) iteraciones para poder converger. En otras palabras, converge, pero lo hace muy lentamente. Si hago los cálculos manualmente, coinciden los valores de la primera y segunda iteración, así que el algoritmo debe estar bien hecho. El problema es el número de iteraciones, ¿creen que pasa por el tipo de variable que uso (double)?
import java.io.*;
import java.math.*;
public class modet2{

double rutina(double x,double y,double w,double a,double b)
{
double g=w/Math.sqrt(Math.pow(x-a,2)+Math.pow(y-b,2));
return g;
}
public static void main(String args[])throws IOException{

modet2 waa = new modet2();
double A[][] = {{0,0,5,12},{0,10,0,6},{0.25,0.25,0.25,0.25}};
int i,k;
double p,q,w,numx=0,numy=0,den=0,x=4.25,y=5;


for(k=0;k<100000;k++){ //La variable 'k' determina el número de iteraciones
for(i=0;i<4;i++){
numx=A[0][i]*waa.rutina(x,y,A[2][i],A[0][i],A[1][i])+numx;
numy=A[1][i]*waa.rutina(x,y,A[2][i],A[0][i],A[1][i])+numy;
den=waa.rutina(x,y,A[2][i],A[0][i],A[1][i])+den;
}
x=numx/den;
y=numy/den;
System.out.println("IteraciOn\t X \t\t Y");
System.out.println((k+1)+"\t"+x+"\t"+y);
System.out.println();
}

}

}

Muchas gracias por su tiempo.
#2
Ejercicios / Generar matrices en 'espiral'
25 Octubre 2008, 03:56 AM
Hola comunidad elhacker.net!
Necesito ayuda tratando de generar la siguiente sucesion de matrices:




Osea, ingresar un entero (el orden de la matriz), y que el programa devuelva la matriz 'espiral' de dicho orden.
¿Alguna idea para generar dicha matriz?
Programo en Java, con el JCreator.
Gracias por su tiempo, salu2 ! 
#3
Necesito ayuda...
Recién empiezo en esto del Java. Estoy usando en JCreator como compilador.
Hice este programa que se supone deberá hacer: pregunta la cantidad de alumnos (n), luego pregunta las notas de los (n) alumnos, las promedia y muestra el resultado.
import javax.swing.*;
public class notas2
{
    public static void main( String [] args )
    {

    String m,x,y,z;
    int n,i,r,P,S;
   
m=JOptionPane.showInputDialog("Ingrese numero de alumnos:");
n=Integer.parseInt(m);
final int N=n;
int V[] = new int[N];
i=1;
while (i<=n){
x=JOptionPane.showInputDialog("Ingrese nota del alumno "+i);
    V[i]=Integer.parseInt(x);
    i++;
    }
S=0;
for (int l=1;l<=n-1;l++){
System.out.println(V[l]);
S=S+V[l];
}
P=S/n;
JOptionPane.showMessageDialog(null, "El promedio del aula es"+P );
    }
    }

No me sale error al compilar, en consola empieza bien, pero cuando deber{ía salir el resultado (Promedio de notas) me sale esta pantalla:

Alguna luz por favor  :-(