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.