voy a crear la función del numero factorial: \[ n!=n*(n-1)*(n-2)..........*2*1 \]
factorial=function(n){
f=1
valores=NULL
for(i in seq(1,n)){
if(n==0){
valores=1
}
else if(n>0){
f<-f*i
valores=f}
else {
valores="No existe el factorial"
}
}
return(valores)
}
La voy a provar mi función creada
factorial(4)
## [1] 24
formula de taylor para aporximar al número de euler \(e\): \[ e^x= \frac{x^0}{o!}+\frac{x^1}{1!}+\frac{x^2}{2!}+..........+\frac{x^n}{n!} \] Equivale: \[ \sum_{i=0}^{n}\frac{x^n}{n!}=\frac{x^0}{o!}+\frac{x^1}{1!}+\frac{x^2}{2!}+..........+\frac{x^n}{n!} \] La estructura de programacion de la funcion de taylor
taylor=function(x,n){
taylor=1
factorial=function(n){
f=1
valores=NULL
for(i in seq(1,n)){
if(n==0){
valores=1
}
else if(n>0){
f<-f*i
valores=f}
else {
valores="No existe el factorial"
}
}
return(valores)
}
for(a in 1:n){
taylor=taylor+(x^a/factorial(a))
}
return(taylor)
}
Voy a probar la funcion de Taylor
taylor(1,20)
## [1] 2.718282
Voy a crear un cuadro o un dataframe en donde me muestre los errores
cuadro=function(a,b){
diferencia=NULL
resta=NULL
datos=data.frame()
for (i in 1:b) {
diferencia<-rbind(diferencia,taylor(a,i))
}
for (a in 1:b) {
numero=exp(1)-diferencia[a]
resta=rbind(resta,numero)
}
datos=data.frame(Aproximacion=diferencia,euler=rep(exp(1),b),error=resta,error_relativo=(resta)/diferencia)
print(datos)
}
cuadro(1,20)
## Aproximacion euler error error_relativo
## numero 2.000000 2.718282 7.182818e-01 3.591409e-01
## numero.1 2.500000 2.718282 2.182818e-01 8.731273e-02
## numero.2 2.666667 2.718282 5.161516e-02 1.935569e-02
## numero.3 2.708333 2.718282 9.948495e-03 3.673291e-03
## numero.4 2.716667 2.718282 1.615162e-03 5.945381e-04
## numero.5 2.718056 2.718282 2.262729e-04 8.324808e-05
## numero.6 2.718254 2.718282 2.786021e-05 1.024930e-05
## numero.7 2.718279 2.718282 3.058618e-06 1.125204e-06
## numero.8 2.718282 2.718282 3.028859e-07 1.114255e-07
## numero.9 2.718282 2.718282 2.731266e-08 1.004777e-08
## numero.10 2.718282 2.718282 2.260552e-09 8.316107e-10
## numero.11 2.718282 2.718282 1.728764e-10 6.359767e-11
## numero.12 2.718282 2.718282 1.228573e-11 4.519667e-12
## numero.13 2.718282 2.718282 8.149037e-13 2.997863e-13
## numero.14 2.718282 2.718282 5.018208e-14 1.846096e-14
## numero.15 2.718282 2.718282 2.220446e-15 8.168565e-16
## numero.16 2.718282 2.718282 -4.440892e-16 -1.633713e-16
## numero.17 2.718282 2.718282 -4.440892e-16 -1.633713e-16
## numero.18 2.718282 2.718282 -4.440892e-16 -1.633713e-16
## numero.19 2.718282 2.718282 -4.440892e-16 -1.633713e-16