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