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

CAPÍTULO 5. ESCRITURA DE FUNCIONES
118
aproximación de los valores encontrados. Estos criterios se aplicarán sobre el
módulo del incremento, ya que si este es cero entre dos iteraciones consecuti-
vas, se habrán encontrado los valores buscados. Se podrá optar entre dos cri-
terios: el simple valor absoluto del módulo del incremento, o un valor relativo
al módulo del vector encontrado. De este modo, la función para el método de
Newton-Raphson queda como sigue:
# Función para cálculo del módulo o magnitud de un vector
modulus
<-
function
(
x
)
sqrt
(
sum
(x
^
2
))
NwtRph
<-
function
(
ff
,
x0
,
eps
=
0.0001
,
lim
=
500
,
absComp
=F) {
n
<-
0
# numero de iteración
repeat
{
# repetición infinita
difx
<-
sigDx
(ff, x0)
# diferencia de la sig. aprox.
x
<-
x0
+
difx
# la siguiente aproximación
# Hacemos el módulo de la diferencia para checar
r
<-
modulus
(difx)
# distancia entre x y x0
# Comparación absoluta o relativa
if
(absComp) {
# <-absoluta
if
(r
<=
eps)
return
(x)
}
else
{
# <-relativa
if
(r
<=
eps
*
modulus
(x0))
return
(x)
}
# si llega al máximo de iteraciones
# salimos con null
if
(n
>
lim)
return
(
NULL
)
n
<-
n
+
1
x0
<-
x
# para la siguiente iteración
}
}
# Apliquemos para nuestro ejemplo, tomando
# p_tst, como valor inicial:
p
<-
NwtRph
(miFun, p_tst)
print
(p)
# <- SOLUCIÓN
## [1] 2 3
5.5.6. Ajuste a la función de densidad de probabilidades
Para concluir el ejemplo, se hará ahora el ajuste, con los parámetros esta-
dísticos de los datos, a la función Gamma de densidad de probabilidades. Así,
lo primero que se necesitará serán los parámetros estadísticos, la media y la
varianza en este caso, de los datos que se han introducido, como ejemplo, en la
sección 5.5.1.
1...,111,112,113,114,115,116,117,118,119,120 122,123,124,125,126,127,128,129,130,131,...198
Powered by FlippingBook