viernes, 27 de mayo de 2016

DERIVACIÓN

DERIVACIÓN 





DERIVACIÓN RETRASADA (CÓDIGO EN JAVA)

import java.util.Scanner;

public class Retrasada{
    
    public static double funcion(double x){
        //Esta es la funcion que utilize y se puede cambiar pero tambien habria que calcular las derivadas
        return (Math.log(x))+(4*(Math.pow(x,3)));
        }
    
    public static double derivada1(double x){
        return (1/x)+(12*(Math.pow(x,2)));
        }
    
    public static double derivada2(double x){
        return (-1/(x*x))+(24*x);
        }
    
    public static double derivada3(double x){
        return (2/(Math.pow(x,3)))+(24);
        }
    
    public static void main(String[] args) {
        
        Scanner leer = new Scanner(System.in);
        double h,x,xt,m;
        double p1,p2,e1,e2;
        
        System.out.println("Introduzca el valor de X inicial: ");
        x = leer.nextDouble();
        
                
        xt=x;
        h=.1;
        System.out.println("PRIMERA DERIVADA");
        System.out.println("H: "+"   2 puntos    "+"     error real:");
        for (int i=0; i<4; i++){
            p1=(((funcion(xt))-(funcion(xt-h)))/h);
            e1=(((funcion(xt)-(funcion(xt-h)))/h)-derivada1(x));
            System.out.println(""+h+"  "+p1+"  "+e1);
            h=h/10;
        } 
        System.out.println("");
        h=.1;
        System.out.println("3 puntos      "+"      error real:");
        for (int i=0; i<4; i++){
            p2=((-3*funcion(xt-(2*h)))+(4*funcion(xt-h))-(funcion(xt)))/(2*h);
            e2=(((-3*funcion(xt-(2*h)))+(4*funcion(xt-h))-(funcion(xt)))/(2*h))-derivada1(x);
            System.out.println(""+p2+"  "+e2);
            h=h/10;
        }
        
        
        System.out.println("");
        System.out.println("");
        
        h=.1;
        System.out.println("SEGUNDA DERIVADA");
        System.out.println("H: "+"   3 puntos    "+"     error real:");
        for (int i=0; i<4; i++){
            p1=(funcion(xt-(2*h))-(2*funcion(xt-h))+funcion(xt))/(h*h);
            e1=((funcion(xt-(2*h))-(2*funcion(xt-h))+funcion(xt))/(h*h))-derivada2(x);
            System.out.println(""+h+"  "+p1+"  "+e1);
            h=h/10;
        }
        System.out.println("");
        h=.1;
        System.out.println("4 puntos      "+"      error real:");
        for (int i=0; i<4; i++){
            p2=((-1*funcion(xt-(3*h)))+(4*funcion(xt-(2*h)))-(5*funcion(xt-h))+(2*funcion(xt)))/(h*h);
            e2=(((-funcion(xt-(3*h)))+(4*funcion(xt-(2*h)))-(5*funcion(xt-h))+(2*funcion(xt)))/(h*h))-(derivada2(x));
            System.out.println(""+p2+"  "+e2);
            h=h/10;
        }
        
        System.out.println("");
        System.out.println("");
        
        h=.1;
        System.out.println("TERCERA DERIVADA");
        System.out.println("H: "+"   4 puntos    "+"     error real:");
        for (int i=0; i<4; i++){
            p1=(-1*((funcion(xt-(3*h)))-(3*funcion(xt-(2*h)))+(3*funcion(xt-h))-(funcion(xt))))/(h*h*h);
            e1=(-1*((funcion(xt-(3*h)))-(3*funcion(xt-(2*h)))+(3*funcion(xt-h))-(funcion(xt))))/(h*h*h)-derivada3(x);
            System.out.println(""+h+"  "+p1+"  "+e1);
            h=h/10;
        }        
    }
}


DERIVACIÓN CENTRADA (CÓDIGO EN JAVA)

import java.util.Scanner;
import java.lang.Math;
public class Derivadas_centradas {
    public static double funcionx (double x) {
      return 2*Math.pow(x,5) + 8*Math.pow(x,3) + 285;
    }
    public static double primerax (double x) {
      return 10*Math.pow(x,4) + 24*Math.pow(x,2);
    }
    public static double segundax (double x) {
      return 40*Math.pow(x,3) + 48*x;
    }
    public static double tercerax (double x) {
      return 120*Math.pow(x,2) + 48;
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i,j;
        double d2,d3,sd3,sd4,td4,td5,fp[],xp[];
        double x[]= new double[100], f[]= new double[100], h, pd2, pd3, sesd3, sesd4,tetd4,tetd5 ;
        System.out.println("\t\t\t\"Derivadas Centradas\"");
        for(i=0; i>8; i++){
        System.out.println("Dame x");
        x[i]= sc.nextDouble();
        System.out.println("Dame funcion");
        f[i]=sc.nextDouble();
        }
        for(h=0.1, i=1; i<5; i++, h =h/10){
        for(j=0; j<6; j++){
            xp[j] = x[i]-h *j;
            fp[j] = funcionx(xp[j]);
        }
        d2 =(fp[1]-fp[0])/(xp[1]-xp[0]);
        d3 = (fp[2]+2*fp[1]-fp[0])/(2*h);
        pd2 =primerax(x[i])-d2;
        pd3 =primerax(x[i])-d3;
        System.out.println("Valor de d2 es: " +d2+ "Valor de d3 es:" +d3);
        System.out.println("Valor de pd3 es: " +pd2+ "Valor de pd3 es:" +pd3);

        sd3 = (fp[1]-2*fp[0]+fp[-1])/(Math.pow(h,2));
        sd4 = (-fp[2]+16*fp[1]-30*fp[0]+16*fp[-1]-fp[-2])/(12*Math.pow(h,2));
        sesd3 =segundax(x[i])-sd3;
        sesd4 =segundax(x[i])-sd4;
         System.out.println("Valor de sd3 es: " +sd3+ "Valor de sd4 es:" +sd4);
         System.out.println("Valor de sesd3 es: " +sesd3+ "Valor de sesd4 es:" +sesd4);
         
        td4 = (fp[-2]-2*fp[1]+2*fp[-1]-fp[-2])/(2*Math.pow(h,3));
        td5 = (-fp[3]+8*fp[2]-13*fp[1]+13*fp[-1]-8*fp[-2]+fp[-3])/(8*Math.pow(h,3));
        tetd4 =tercerax(x[i])-td4;
        tetd5 =tercerax(x[i])-td5;
         System.out.println("Valor de td4 es: " +td4+ "Valor de td5 es:" +td5);
         System.out.println("Valor de tetd4 es: " +tetd4+ "Valor de tetd5 es:" +tetd5);
        }
    }
    }
    

DERIVACIÓN ADELANTADA (CÓDIGO EN JAVA)

public class Derivada_Adelantadas {
    
    public static void main(String[] args) {
       
       
     int a=5;
     double b=5.4;
     double h=0.1;
     
     double vd=fd(a);
     double vdd=fdd(a);
     double vddd=fddd(a);
     
     double ad[][]=new double[5][2];
     double re[][]=new double[5][2];
     double cean[][]=new double[5][2];
     double cead[][]=new double[5][2];
     
     double da2,da3,da4,da5,da6,da7,dr2,dr3,dr4,dr5,dr6,dr7,dc2,dc3,dc4,dc5,dc6,dc7;
     double ea2,ea3,ea4,ea5,ea6,ea7,er2,er3,er4,er5,er6,er7,ec2,ec3,ec4,ec5,ec6,ec7;
     
     System.out.println("-------------DERIVADAS--------------");
     System.out.println("");
             
     
     for(int i=a;i<=b;i++){
         
         for(int k=0;k<4;k++){
             
             for (int j=0;j<5;j++){
                
                 ad[j][0]=i+(h*j);
                 ad[j][1]=f(ad[j][0]);

                 cean[j][0]=i-(h*j);
                 cean[j][1]=f(cean[j][0]);
                 cead[j][0]=i+(h*j);
                 cead[j][1]=f(cead[j][0]);
                 
                 re[j][0]=i-(h*j);
                 re[j][1]=f(re[j][0]);
                 
             }
         
             da2=(ad[1][1]-ad[0][1])/h;
             da3=(-ad[2][1]+4*ad[1][1]-3*ad[0][1])/2*h;
             da4=(ad[2][1]-2*ad[1][1]+ad[0][1])/Math.pow(h,2);
             da5=(-ad[3][1]+4*ad[2][1]-5*ad[1][1]+2*ad[0][1])/Math.pow(h,2);
             da6=(ad[3][1]-3*ad[2][1]+3*ad[1][1]-ad[0][1])/Math.pow(h,3);
             da7=(-3*ad[4][1]+14*ad[3][1]-24*ad[2][1]+18*ad[1][1]-5*ad[0][1])/2*Math.pow(h,3);
             
             dr2=(re[1][1]-re[0][1])/h;
             dr3=(-3*re[2][1]+4*re[1][1]-re[0][1])/2*h;
             dr4=(re[2][1]-2*re[1][1]+re[0][1])/Math.pow(h,2);
             dr5=(-re[3][1]+4*re[2][1]-5*re[1][1]+2*re[0][1])/Math.pow(h,2);      
             dr6=-(re[3][1]-3*re[2][1]+3*re[1][1]-re[0][1])/Math.pow(h,3);
             dr7=-(-3*re[4][1]+14*re[3][1]-24*re[2][1]+18*re[1][1]-5*re[0][1])/2*Math.pow(h,3);
            
             dc2=(cead[1][1]-cean[1][1])/2*h;
             dc3=(-cead[2][1]+8*cead[1][1]-8*cean[1][1]+cean[2][1])/12*h;
             dc4=(cead[1][1]-2*cean[0][1]+cean[1][1])/Math.pow(h,2);
             dc5=(-cead[1][1]+4*cean[0][1]-5*cean[1][1]+2*cean[2][1])/Math.pow(h,2);      
             dc6=-(-cead[2][1]+2*cead[1][1]-2*cean[1][1]+cean[2][1])/2*Math.pow(h,3);
             dc7=-(3*cead[2][1]-14*cead[1][1]+24*cean[0][1]-18*cean[1][1]+5*cean[2][1])/2*Math.pow(h,3);
             
             
              ea2= Math.abs(vd-da2);
              ea3= Math.abs(vd-da3);
              ea4= Math.abs(vdd-da4);
              ea5= Math.abs(vdd-da5);
              ea6= Math.abs(vddd-da6);
              ea7= Math.abs(vddd-da7);
              
              er2= Math.abs(vd-dr2);
              er3= Math.abs(vd-dr3);
              er4= Math.abs(vdd-dr4);
              er5= Math.abs(vdd-dr5);
              er6= Math.abs(vddd-dr6);
              er7= Math.abs(vddd-dr7);
             
              ec2= Math.abs(vd-dc2);
              ec3= Math.abs(vd-dc3);
              ec4= Math.abs(vdd-dc4);
              ec5= Math.abs(vdd-dc5);
              ec6= Math.abs(vddd-dc6);
              ec7= Math.abs(vddd-dc7);
             
              
            
             System.out.println("");
             System.out.println("Valores con h: "+h+"---------------");
             System.out.println("");
             System.out.println("adelantadas***********************");
             System.out.println("Primera derivada con 2 puntos: "+da2+" con error del "+ea2+" y 3 puntos "+da3+" con error del "+ea3);
             System.out.println("Segunda derivada con 3 puntos: "+da4+" con error del "+ea4+" y 4 puntos "+da5+" con error del "+ea5);
             System.out.println("Primera derivada con 4 puntos: "+da6+" con error del "+ea6+" y 5 puntos "+da7+" con error del "+ea7);
             System.out.println("");
             System.out.println("Centradas***********************");
            System.out.println("Primera derivada con 2 puntos: "+dc2+" con error del "+ec2+" y 3 puntos "+dc3+" con error del "+ec3);
             System.out.println("Segunda derivada con 3 puntos: "+dc4+" con error del "+ec4+" y 4 puntos "+dc5+" con error del "+ec5);
             System.out.println("Primera derivada con 4 puntos: "+dc6+" con error del "+ec6+" y 5 puntos "+dc7+" con error del "+ec7);
             System.out.println("");
             System.out.println("Retrasadas***********************");
             System.out.println("Primera derivada con 2 puntos: "+dr2+" con error del "+er2+" y 3 puntos "+dr3+" con error del "+er3);
             System.out.println("Segunda derivada con 3 puntos: "+dr4+" con error del "+er4+" y 4 puntos "+dr5+" con error del "+er5);
             System.out.println("Primera derivada con 4 puntos: "+dr6+" con error del "+er6+" y 5 puntos "+dr7+" con error del "+er7);
             System.out.println("");
             h=h/10;
                     }
     }    
    
   
    }
    
     private static double f(double x){
         return ((2*Math.pow(x,4))+(3*Math.pow(x,2)));
       }
     private static double fd(double x){
         return ((8*Math.pow(x,3))+(6*x));
       }
     private static double fdd(double x){
         return ((24*Math.pow(x,2))+6);
       }
     private static double fddd(double x){
         return (48*x);
       }
}

0 comentarios:

Publicar un comentario