package serieTaylor;
import java.text.DecimalFormat;
import org.lsmp.djep.djep.DJep;
import org.nfunk.jep.Node;
import org.nfunk.jep.ParseException;
public class DesarrolloTaylor {
double vectorResultados[];
public double[] Derivar(String funcion,double n,double base){//Recibir la funcion
String derivada="";
String derivadaRespaldo="";
double b=Math.toRadians(base);
vectorResultados=new double[(int)n+1];
String vectorDerivadas[]=new String[(int) n+1];//Vector para guardar las funciones en texto
/*Funciones que pueden ser utilizadas*/
String seno="sin(x)";
String senoN="-sin(x)";
String coseno="cos(x)";
String cosenoN="-cos(x)";
String tangente="tan(x)";
String tangenteN="-tan(x)";
String exponencial="e^x";
String exponencialN="-e^x";
DJep Derivar=new DJep();
Derivar.addStandardFunctions();//Funciones estandar
Derivar.addStandardConstants();//Funciones constantes
Derivar.addComplex();//Numeros complejos
Derivar.setAllowUndeclared(true);//Variables no declarables
Derivar.setAllowAssignment(true);
Derivar.setImplicitMul(true);//Multiplicaciones
Derivar.addStandardDiffRules();//Reglas de derivadas
try{
vectorDerivadas[0]=funcion.replace("x", String.valueOf(base));
if(funcion.equals(seno)|funcion.equals(senoN)){
if(funcion.equals(senoN)){
vectorResultados[0]=-Math.sin(b);
}else{
vectorResultados[0]=Math.sin(b);
}
}
if(funcion.equals(coseno)|funcion.equals(cosenoN)){
if(funcion.equals(cosenoN)){
vectorResultados[0]=-Math.cos(b);
}else{
vectorResultados[0]=Math.cos(b);
}
}
if(funcion.equals(tangente)|funcion.equals(tangenteN)){
if(funcion.equals(tangenteN)){
vectorResultados[0]=-Math.tan(b);
}else{
vectorResultados[0]=Math.tan(b);
}
}
if(funcion.equals(exponencial)|funcion.equals(exponencialN)){
if(funcion.equals(exponencialN)){
vectorResultados[0]=-Math.exp(base);
}else{
vectorResultados[0]=Math.exp(base);
}
}

Comentarios

Publicar un comentario