Foro Matemáticas

Graficador de algunas funciones

Ver el tema anterior Ver el tema siguiente Ir abajo

Graficador de algunas funciones

Mensaje  Favián el Mar Mar 29, 2011 4:26 pm

Esta aplicación grafica 3 funciones
sen(x)
cos(x)
1/(1+x^2)

no tiene botón para ejecutarse en cambio se le da click a el fondo blanco y listo.


1 public int funcion=0;
2
3 double f(double x,int funcion){
4 double y;
5 switch (funcion){
6 case 0:y=Math.sin(x);
7 break;
8 case 1:y=Math.cos(x);
9 break;
10 default :y=x/(1+x*x);
11 break;
12 }
13 return y;}
14
15 void ejes(int a, int b){
16 Graphics r=jPanel1.getGraphics();
17 r.drawLine(0, b/2, a, b/2);
18 r.drawLine(a/2, 0,a/2,b);
19 }
20 double[] puntosx(int n){
21 double[] x=new double[n];
22 for(int i=0;i23 x[i]=-4+i*8.0/n;
24 }
25 return x;}
26
27 double[] puntosy(double[ ] x){
28 int n=x.length;
29 double[] y=new double[n];
30 for(int i=0;i31 y[i]=f(x[i],funcion);
32 }
33 return y;}
34
35 int[] pixx(double x[ ],int ancho){
36 int[] xint=new int[x.length];
37 for(int i=0;i38 xint[i]=(int)((ancho/Cool*(x[i]+4));
39 }
40 return xint;}
41
42 int[] pixy(double y[],int alto){
43 int[] yint=new int[y.length];
44 for(int i=0;i45 yint[i]=(int)((alto/(-4))*(y[i]-2));
46 }
47 return yint;}
48
49 void graficador(int x[],int y[]){
50 Graphics r=jPanel1.getGraphics();
51 int n=x.length;
52 for(int k=1;k53 r.drawLine(x[k-1],y[k-1], x[k],y[k]);
54 }
55 }
56 private void jPanel1MouseClicked(java.awt.event.MouseEvent evt) {
57 int ancho,alto;

58 ancho=jPanel1.getWidth();
59 alto=jPanel1.getHeight();
60 ejes(ancho,alto);
61 int[] a=pixx(puntosx(100),ancho);
62 int[] b=pixy(puntosy(puntosx(100)),alto);

63 graficador(a,b);
64 }
65
66 private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
67 funcion=0;

68 }
69
70 private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
71 funcion=1;
72 }

73
74 private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
75 funcion=2;
76 }
77

Favián

Mensajes : 24
Fecha de inscripción : 12/01/2011
Localización : Popayán

Ver perfil de usuario http://www.unicauca.edu.co/matematicas/farenas

Volver arriba Ir abajo

modificacion del codigo

Mensaje  Jesteban el Sáb Abr 02, 2011 5:49 pm

las lineas que contiene el for(...) se han modificado.

Jesteban

Mensajes : 12
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: Graficador de algunas funciones

Mensaje  Favián el Sáb Abr 02, 2011 10:49 pm

tienes razón

Favián

Mensajes : 24
Fecha de inscripción : 12/01/2011
Localización : Popayán

Ver perfil de usuario http://www.unicauca.edu.co/matematicas/farenas

Volver arriba Ir abajo

Re: Graficador de algunas funciones

Mensaje  luisportilla el Lun Abr 04, 2011 9:00 pm

Código:
public double lagrange(double[]xv,  double[] yv, double x){
double p=0;
int n=xv.length;
for(int i=0; i<n;i++){
double m=1;
for(int j=0; j<n; j++){
if(i!=j){m=m*(x-xv[j])/(xv[i]-xv[j]);}
}p=p+m*yv[i];
}
return p;}


double[] puntosx(int n){
double[] x=new double[n];
for(int i=0;i<n;i++){
x[i]=-4+i*8.0/n;
}return x;
}
double[] puntosy(double[]z){
int n=z.length;
double[] x=new double[5];
 x[0]=Double.parseDouble(caja1.getText());
 x[1]=Double.parseDouble(caja2.getText());
 x[2]=Double.parseDouble(caja3.getText());
 x[3]=Double.parseDouble(caja4.getText());
 x[4]=Double.parseDouble(caja5.getText());
 double[] y=new double[5];
 y[0]=Double.parseDouble(caja6.getText());
 y[1]=Double.parseDouble(caja7.getText());
 y[2]=Double.parseDouble(caja8.getText());
 y[3]=Double.parseDouble(caja9.getText());
 y[4]=Double.parseDouble(caja10.getText());
 double[] u=new double[n];
for(int i=0; i<n;i++){
  u[i]= lagrange(x,y,z[i]);
   
}
return u;}


void ejes(int a, int b){
Graphics g=lienzo.getGraphics();
g.drawLine(0, b/2, a, b/2);
g.drawLine(a/2, 0, a/2, b);
}
void graficador1(int[] x, int[] y){
Graphics g=lienzo.getGraphics();
g.setColor(Color.red);
int n=x.length;
for(int i=0; i<n; i++){
g.fillOval(x[i], y[i], 5, 5);
}
}
int[] pixx(double[] x,int ancho){
 int[] xint=new int[x.length];
 for(int i=0; i<x.length;i++){
 xint[i]=(int)((ancho/8)*(x[i]+4));
 }
 return xint;
 }

int[] pixy(double[] y, int alto ){
int[] yint=new int[y.length];
for(int i=0;i<y.length;i++){
yint[i]=(int)((alto/-4)*(y[i]-2));
}
return yint;
}

void graficador2(int[] x, int[]y){
Graphics g=lienzo.getGraphics();
int n=x.length;
g.setColor(Color.cyan);
for(int k=1;k<n;k++){
g.drawLine(x[k-1], y[k-1], x[k], y[k]);
}
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        Graphics g=lienzo.getGraphics();
 int ancho=lienzo.getWidth();
 int alto=lienzo.getHeight();
 ejes(ancho, alto);
 double[] x=new double[5];
 x[0]=Double.parseDouble(caja1.getText());
 x[1]=Double.parseDouble(caja2.getText());
 x[2]=Double.parseDouble(caja3.getText());
 x[3]=Double.parseDouble(caja4.getText());
 x[4]=Double.parseDouble(caja5.getText());
 double[] y=new double[5];
 y[0]=Double.parseDouble(caja6.getText());
 y[1]=Double.parseDouble(caja7.getText());
 y[2]=Double.parseDouble(caja8.getText());
 y[3]=Double.parseDouble(caja9.getText());
 y[4]=Double.parseDouble(caja10.getText());
 
int[] u=pixx(x,ancho);
 int[] v=pixy(y,alto);
 graficador1(u,v);
    } 

 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                       
 Graphics g=lienzo.getGraphics();
  int ancho=lienzo.getWidth();
 int alto=lienzo.getHeight();
 ejes(ancho, alto);
  int [] a=pixx(puntosx(100),ancho);
 int [] b=pixy(puntosy(puntosx(100)),alto);
 graficador2(a,b);


    }

luisportilla

Mensajes : 21
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

subir la imagen me toma del pelo

Mensaje  luisportilla el Lun Abr 04, 2011 9:31 pm

este es el url de la imagen
http://img845.imageshack.us/i/lagrange.gif/
mírenlo alli jajaja y luego me enseñan a subir la imagen

luisportilla

Mensajes : 21
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: Graficador de algunas funciones

Mensaje  Jesteban el Lun Abr 04, 2011 9:47 pm

Código:

                   
public double lagrange (double[] pa, double[] pb, double x)
    {
    int n=pa.length;
    double p=0;
    for (int i=0; i<n;i++){
        double m=1;
      for (int j=0; j<n;j++){
        if (i!=j)
        {
        m=m*(x-pa[j])/(pa[i]-pa[j]);
        }
    } p=p+pb[i]*m;
        }return p;

    }


 
 void ejes(int a, int b){
Graphics r=jPanel1.getGraphics();
r.drawLine(0, b/2, a, b/2);
r.drawLine(a/2, 0, a/2, b);
}


double[] puntosx(int n){
double[] x=new double[n];
for(int i=0; i<n;i++){
        x[i]=-4+i*8.0/n;
    }return x;
}

double[] puntosy(double[] x){
int n=x.length;
double[] y=new double[n];
double[] pa=new double[5];
pa[0]=Double.parseDouble(caja1.getText());
pa[1]=Double.parseDouble(caja2.getText());
pa[2]=Double.parseDouble(caja3.getText());
pa[3]=Double.parseDouble(caja4.getText());
pa[4]=Double.parseDouble(caja5.getText());

double[] pb=new double[5];
pb[0]=Double.parseDouble(caja6.getText());
pb[1]=Double.parseDouble(caja7.getText());
pb[2]=Double.parseDouble(caja8.getText());
pb[3]=Double.parseDouble(caja9.getText());
pb[4]=Double.parseDouble(caja10.getText());
for(int i=0; i<n;i++){
        y[i]=lagrange(pa,pb, x[i]);
    }return y;
}

int[] pixx(double x[], int ancho){
int[] xint=new int [x.length];
for(int i=0; i<x.length;i++){
        xint [i]=(int)((ancho/8)*(x[i]+4));
}return xint;
}

int[] pixy(double y[], int alto){
int[] yint=new int [y.length];
for(int i=0; i<y.length;i++){
        yint [i]=(int)((alto/(-4))*(y[i]-2));
}return yint;
}

void graficador(int x[], int y[]){
Graphics r=jPanel1.getGraphics();
int n=x.length;
for(int k=1;k<n;k++)
        {
        r.fillOval(x[k], y[k],2,2);

        }
}
void graficador1(int x[], int y[]){
Graphics r=jPanel1.getGraphics();
int n=x.length;
for(int k=1;k<n;k++)
        {
        r.drawLine(x[k-1], y[k-1], x[k], y[k]);
        }
}
    private void puntosActionPerformed(java.awt.event.ActionEvent evt) {                                     
        Graphics r=jPanel1.getGraphics();
    int ancho,alto;
      ancho=jPanel1.getWidth();
      alto=jPanel1.getHeight();
      ejes(ancho,alto);

double[] pa=new double[5];
pa[0]=Double.parseDouble(caja1.getText());
pa[1]=Double.parseDouble(caja2.getText());
pa[2]=Double.parseDouble(caja3.getText());
pa[3]=Double.parseDouble(caja4.getText());
pa[4]=Double.parseDouble(caja5.getText());

double[] pb=new double[5];
pb[0]=Double.parseDouble(caja6.getText());
pb[1]=Double.parseDouble(caja7.getText());
pb[2]=Double.parseDouble(caja8.getText());
pb[3]=Double.parseDouble(caja9.getText());
pb[4]=Double.parseDouble(caja10.getText());

int[] a=pixx(pa,ancho);
int[] b=pixy(pb,alto);
      graficador(a,b);

    }                                     

    private void interpolarActionPerformed(java.awt.event.ActionEvent evt) {                                         
      Graphics r=jPanel1.getGraphics();
  int ancho=jPanel1.getWidth();
 int alto=jPanel1.getHeight();
 ejes(ancho, alto);
  int [] a=pixx(puntosx(100),ancho);
 int [] b=pixy(puntosy(puntosx(100)),alto);
 graficador1(a,b);
 

    }                                 

Jesteban

Mensajes : 12
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: Graficador de algunas funciones

Mensaje  Favián el Lun Abr 04, 2011 10:23 pm

luisportilla escribió:este es el url de la imagen
http://img845.imageshack.us/i/lagrange.gif/
mírenlo alli jajaja y luego me enseñan a subir la imagen
Para insertar la imagen ya la tienes alojada en un servidor
http://img845.imageshack.us/i/lagrange.gif/
allí puedes ver la imagen
si usás en Mozilla
le das click derecho en ...ver imagen
alli de muestra la imagen con la dirección http://img845.imageshack.us/img845/1673/lagrange.gif
esa es la dirección que hay que poner en el foro

si usás en Internet Explorer (Yo no lo recomiendo)
le das click derecho en ...Propiedades
entre otras te muestra la la dirección URL http://img845.imageshack.us/img845/1673/lagrange.gif
esa es la dirección que hay que poner en el foro


Favián

Mensajes : 24
Fecha de inscripción : 12/01/2011
Localización : Popayán

Ver perfil de usuario http://www.unicauca.edu.co/matematicas/farenas

Volver arriba Ir abajo

Re: Graficador de algunas funciones

Mensaje  felipe nar el Lun Abr 11, 2011 6:31 pm

Código:
 public double lagrange(double[] xv, double [] yv, double x){
double p=0;
int n= xv.length;
for(int i=0; i<n; i++){
double m=1;
for(int j=0;j<n;j++){
    if(i!=j){m=m*(x-xv[j])/(xv[i]-xv[j]);}
    }
p= p+yv[i]*m;
}
return p;}
   




void ejes(int a, int b){
Graphics r=lienzo.getGraphics();
r.drawLine(0,b/2,a,b/2);
r.drawLine(a/2, 0, a/2, b);
}
void graficador(int[] x, int[] y){
Graphics r=lienzo.getGraphics();
r.setColor(Color.red);
int n=x.length;
for(int k=1;k<n;k++){
r.fillOval(x[k], y[k],4,4);
}
}
double[] puntosx(int n){
double[] x=new double[n];
for(int i=0;i<n;i++){
x[i]=-4+i*8.0/n;
}return x;
}
double[] puntosy(double[]z){
int n=z.length;
double[] x=new double[5];
 x[0]=Double.parseDouble(caja1.getText());
 x[1]=Double.parseDouble(caja3.getText());
 x[2]=Double.parseDouble(caja5.getText());
 x[3]=Double.parseDouble(caja7.getText());
 x[4]=Double.parseDouble(caja9.getText());
 double[] y=new double[5];
 y[0]=Double.parseDouble(caja2.getText());
 y[1]=Double.parseDouble(caja4.getText());
 y[2]=Double.parseDouble(caja6.getText());
 y[3]=Double.parseDouble(caja8.getText());
 y[4]=Double.parseDouble(caja10.getText());
 double[] u=new double[n];
for(int i=0; i<n;i++){
  u[i]= lagrange(x,y,z[i]);

}
return u;}

int[] pixx(double[] y,int ancho){
int[] yint=new int[y.length];
for(int i=0;i<y.length;i++){
yint[i]=(int)((ancho/8)*(y[i]+4));

}
return yint;
}
int[] pixy(double[] y,int alto){
int[] yint=new int[y.length];
for(int i=0;i<y.length;i++){
yint[i]=(int)((alto/(-4))*(y[i]-2));

}
return yint;
}


void graficador1(int[] x,int[] y){
Graphics g=lienzo.getGraphics();
g.setColor(Color.YELLOW);
int n=x.length;
for(int k=1;k<n;k++){
g.drawLine(x[k-1], y[k-1],x[k] , y[k]);
}

}


    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                       
      Graphics g=lienzo.getGraphics();
      int ancho=lienzo.getWidth();
      int alto=lienzo.getHeight();
      ejes(ancho, alto);
      double[] x=new double[5];
      x[0]=Double.parseDouble(caja1.getText());
      x[1]=Double.parseDouble(caja3.getText());
      x[2]=Double.parseDouble(caja5.getText());
      x[3]=Double.parseDouble(caja7.getText());
      x[4]=Double.parseDouble(caja9.getText());

      double[] y=new double[5];
      y[0]=Double.parseDouble(caja2.getText());
      y[1]=Double.parseDouble(caja4.getText());
      y[2]=Double.parseDouble(caja6.getText());
      y[3]=Double.parseDouble(caja8.getText());
      y[4]=Double.parseDouble(caja10.getText());

      int[] v=pixx(x,ancho);
      int[] w=pixy(y,alto);
      graficador(v,w);

    }                                       

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
    Graphics g=lienzo.getGraphics();
  int ancho=lienzo.getWidth();
 int alto=lienzo.getHeight();
 ejes(ancho, alto);
  int [] a=pixx(puntosx(100),ancho);
 int [] b=pixy(puntosy(puntosx(100)),alto);
 graficador1(a,b);
     

    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new visual().setVisible(true);
            }
        });
    }


felipe nar

Mensajes : 12
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: Graficador de algunas funciones

Mensaje  Contenido patrocinado Hoy a las 11:21 am


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.