Carlos Jimémez-Gallardo | Estadístico | MSc Infórmatica Educativa |
Universidad de La Frontera
carlos.jimenez@ufrontera.cl
Data Expert
www.innovate.cl
| cjimenez@innovate.cl
R no solo sirve para estadística y análisis de datos. También permite realizar cálculos matemáticos, evaluar funciones, aproximar derivadas, trabajar con sumatorias y productorias, y calcular integrales.
En este documento veremos ejemplos de:
Una función matemática puede escribirse, por ejemplo, como
\[ f(x)=x^3+2x^2-5x+1. \]
En R podemos definirla de la siguiente forma:
## [1] 7
También podemos evaluarla en varios valores simultáneamente:
## x y
## 1 -5.0 -49.000
## 2 -4.5 -27.125
## 3 -4.0 -11.000
## 4 -3.5 0.125
## 5 -3.0 7.000
## 6 -2.5 10.375
Y podemos visualizarla:
plot(
x, y,
type = "l",
lwd = 2,
main = "Función f(x) = x^3 + 2x^2 - 5x + 1",
xlab = "x",
ylab = "f(x)"
)
abline(h = 0, v = 0, lty = 2)La derivada de una función representa su tasa de cambio instantánea.
Si
\[ f(x)=x^3+2x^2-5x+1, \]
entonces
\[ f'(x)=3x^2+4x-5. \]
D()R base incluye la función D() para derivar expresiones
simbólicas sencillas.
## 3 * x^2 + 2 * (2 * x) - 5
Podemos evaluar la derivada en un punto. Por ejemplo, para \(x=2\):
## [1] 15
Matemáticamente,
\[ f'(2)=3(2)^2+4(2)-5=15. \]
La segunda derivada se obtiene derivando nuevamente:
\[ f''(x)=6x+4. \]
## 3 * (2 * x) + 2 * 2
## [1] 16
La definición de derivada es
\[ f'(x)=\lim_{h\to0}\frac{f(x+h)-f(x)}{h}. \]
Podemos aproximarla numéricamente usando un valor pequeño de \(h\):
## [1] 15.00001
Una aproximación generalmente más precisa es la diferencia central:
\[ f'(x)\approx \frac{f(x+h)-f(x-h)}{2h}. \]
derivada_central <- function(f, x, h = 1e-6) {
(f(x + h) - f(x - h)) / (2*h)
}
derivada_central(f, 2)## [1] 15
Una sumatoria se representa matemáticamente como
\[ \sum_{i=1}^{n} a_i. \]
Por ejemplo,
\[ \sum_{i=1}^{10}i = 1+2+3+\cdots+10. \]
En R utilizamos sum():
## [1] 55
El resultado es:
\[ \sum_{i=1}^{10}i=55. \]
También podríamos construir la sumatoria manualmente:
## [1] 385
Aunque funciona, en R normalmente se prefiere la versión vectorizada:
## [1] 385
Una productoria tiene la forma
\[ \prod_{i=1}^{n}a_i. \]
En R utilizamos prod().
Por ejemplo,
\[ \prod_{i=1}^{5} i = 1\cdot2\cdot3\cdot4\cdot5. \]
## [1] 120
Esto corresponde a
\[ 5! = 120. \]
R también tiene una función específica para factoriales:
## [1] 120
Calculemos
\[ \prod_{i=1}^{5}(i+1). \]
## [1] 720
Es decir,
\[ (1+1)(2+1)(3+1)(4+1)(5+1) = 2\cdot3\cdot4\cdot5\cdot6. \]
La integral definida de una función \(f(x)\) entre \(a\) y \(b\) es
\[ \int_a^b f(x)\,dx. \]
R puede calcular integrales numéricamente usando
integrate().
Consideremos
\[ f(x)=x^2. \]
Queremos calcular
\[ \int_0^2x^2\,dx. \]
Sabemos analíticamente que
\[ \int x^2\,dx=\frac{x^3}{3}+C. \]
Por tanto,
\[ \int_0^2x^2\,dx = \left[\frac{x^3}{3}\right]_0^2 = \frac{8}{3}. \]
En R:
## 2.666667 with absolute error < 3e-14
Para guardar solo el valor calculado:
## [1] 2.666667
Calculemos
\[ \int_0^\pi \sin(x)\,dx. \]
Teóricamente,
\[ \int_0^\pi \sin(x)\,dx=2. \]
## 2 with absolute error < 2.2e-14
Una integral indefinida busca una función cuya derivada sea la función original:
\[ \int f(x)\,dx = F(x) + C, \]
donde
\[ F'(x)=f(x) \]
y \(C\) es una constante de integración.
Es importante distinguir entre dos casos:
integrate() en R base calcula integrales
definidas numéricamente.caracas, que utiliza SymPy.caracasLa instalación solo necesita hacerse una vez:
Luego se carga el paquete:
Nota:
caracaspuede requerir una instalación funcional de Python y SymPy.
Consideremos
\[ \int x^2\,dx. \]
Matemáticamente,
\[ \int x^2\,dx = \frac{x^3}{3}+C. \]
En R, usando caracas:
El resultado simbólico representa
\[ \frac{x^3}{3}. \]
La constante de integración se agrega conceptualmente:
\[ \boxed{ \int x^2\,dx=\frac{x^3}{3}+C } \]
Consideremos
\[ \int \sin(x)\,dx. \]
Sabemos que
\[ \frac{d}{dx}[-\cos(x)]=\sin(x), \]
por lo tanto
\[ \int\sin(x)\,dx=-\cos(x)+C. \]
En R:
Para
\[ \int e^x\,dx, \]
la antiderivada es
\[ e^x+C. \]
En R:
Consideremos
\[ \int xe^x\,dx. \]
Mediante integración por partes,
\[ \int xe^x\,dx = xe^x-e^x+C, \]
o equivalentemente,
\[ \int xe^x\,dx = e^x(x-1)+C. \]
Con caracas:
Consideremos
\[ \int \frac{1}{x}\,dx. \]
Su antiderivada es
\[ \ln|x|+C. \]