El arte de programar en R Un leguaje para la estadística - page 119

CAPÍTULO 5. ESCRITURA DE FUNCIONES
116
Ese cálculo se puede encontrar en el paquete “numDeriv” (Gilbert and Varad-
han [2012]), que está disponible en el sitio de CRAN
10
. R, puede instalar paque-
tes de ese sitio, mediante el sencillo llamado a la función
install.packages()
,
como se muestra en seguida.
install.packages
(
"numDeriv"
)
La instrucción anterior descarga, de algún repositorio remoto el paquete y
lo instala en el ambiente de R. Para usarlo, sin embargo, es necesario incluirlo
en la ejecución, por medio del llamado a la función
library()
, como se mues-
tra a continuación.
library
(numDeriv)
# Notese que aquí el nombre de la biblioteca no va
# entrecomillado.
La función
jacobian()
, tiene dos argumentos principales, a saber, una fun-
ción,
func
, con un resultado vectorial, y un vector,
x
, que sería el argumento de
func
, y que indica el punto en el que se quiere la evaluación de la matriz jaco-
biana.
Para poner todo esto en contexto, se propone aquí un ejemplo, con las si-
guientes dos ecuaciones no lineales:
x
2
+
yx
10
=
0
y
+
3
xy
2
57
=
0
(5.12)
Podemos poner esto en términos de una función vectorial
F
(
p
)
,
11
tal que
x
=
p
1
,
y
=
p
2
, y entonces el sistema anterior se puede expresar como:
F
(
p
) =
p
2
1
+
p
2
p
1
10
p
2
+
3
p
1
p
2
2
57
=
0
(5.13)
La traducción de una función como ésta al código de R, es casi directa:
miFun
<-
function
(
p
)
c
(p[
1
]
^
2
+
p[
1
]
*
p[
2
]
-
10
,
p[
2
]
+
3
*
p[
1
]
*
p[
2
]
^
2
-
57
)
# y se puede evaluar en un punto cualquiera
# por ejemplo
p_tst
<-
c
(
1.5
,
3.5
)
# x=1.5, y=3.5
miFun
(p_tst)
## [1] -2.500 1.625
10
CRAN es
The Comprehensive R Archive Network
y su sitio es
11
Aquí,
p
= (
p
1
,
p
2
)
.
1...,109,110,111,112,113,114,115,116,117,118 120,121,122,123,124,125,126,127,128,129,...198
Powered by FlippingBook