Ejercicio 1

Usa el método de Newton paso por paso para aproximar la solución de las siguientes ecuaciones en el intervalo dado.

  1. \(x^3-2x^2-5=0\), \([1,4]\)
f_1a <- function(x){x^3-2*x^2-5}
df_1a <- function(x){3*x^2-4*x} #derivada de f
it_nr1a <- function(x){x-f_1a(x)/df_1a(x)}

x_1a <- seq(from=1, to=4, by=0.1)
y_1a <- f_1a(x_1a)

graf_1a <- ggplot()+
  geom_vline(xintercept = 0, linetype="dashed")+ #eje x
  geom_hline(yintercept = 0, linetype="dashed")+ #eje y
  geom_line(aes(x=x_1a, y=y_1a), color="gold", size=1)+
  #coord_fixed(ratio = 1)+ # misma escala en los ejes
  labs(x="x", y="f(x)", title="Método de Newton Raphson")+
  theme_bw()

#plot(graf_1)

ggplotly(graf_1a)
p0 <- 1 

it_nr1a(it_nr1a(it_nr1a(it_nr1a(it_nr1a(p0)))))
## [1] 0.5940384

[1] 0.5940384

  1. \(x-cosx=0\), \([0, \pi/2]\) `
## [1] 0.7390851

Utilizando el método de Newton-Raphson la aproximación despues de cuatro iterciones es [1] 0.7390851

Ejercicio 2

Aproxima la solución de las siguientes ecuaciones por medio del método de Newton y compáralo con las soluciones obtenidas por medio del método de la bisección (ejercicio 3 de la tarea 2).

  1. \(x-2^{-x}=0\) para \(0\leq x\leq 1\)
f_2a <- function(x){x-2^(-x)}
df_2a <- function(x){1+log(2)*2^(-x)}

x_2a <- seq(from=-1, to=2, by=01)
y_2a <- f_2a(x_2a)

graf_2a <- ggplot()+
  geom_vline(xintercept = 0, linetype="dashed")+ #eje x
  geom_hline(yintercept = 0, linetype="dashed")+ #eje y
  geom_line(aes(x=x_2a, y=y_2a), color="blue", size=1)+
  #coord_fixed(ratio = 1)+ # misma escala en los ejes
  labs(x="x", y="y", title="Método de raphson ")+
  theme_bw()

#plot(graf_3c)

ggplotly(graf_2a)
p0 <- -1
newtonRaphson(f_2a, .5, df_2a)
## $root
## [1] 0.6411857
## 
## $f.root
## [1] 0
## 
## $niter
## [1] 4
## 
## $estim.prec
## [1] 2.843895e-14

Utilizando el método de Newton-Raphson la raíz 0.6411857 de la función x-2^{-x}=0 después de cuatro iteraciones. Para el método de bisección se obtuvo esta raíz despues de 13 iteracciones más, pero no tuvimos que sacar la derivada manualmente.

  1. \(e^x-x^2+3x-2=0\) para \(0\leq x\leq 1\)
f_2b <- function(x){exp(x)-x^2+3*x-2}
df_2b <- function(x){exp(x)-2*exp(x)+3}


x_2b <- seq(from=-5, to=4, by=0.01)
y_2b <- f_2b(x_2b)

graf_2b <- ggplot()+
  geom_vline(xintercept = 0, linetype="dashed")+ #eje x
  geom_hline(yintercept = 0, linetype="dashed")+ #eje y
  geom_line(aes(x=x_2b, y=y_2b), color="green", size=1)+
  #coord_fixed(ratio = 1)+ # misma escala en los ejes
  labs(x="x", y="y", title= "Método de Raphson")+
  theme_test()

plot(graf_2b)

#ggplotly(graf_2a)

p0 <-1
newtonRaphson(f_2b, 0, df_2b)
## Warning in newtonRaphson(f_2b, 0, df_2b): Maximum number of iterations 'maxiter'
## was reached.
## $root
## [1] 496.4375
## 
## $f.root
## [1] 3.981783e+215
## 
## $niter
## [1] 501
## 
## $estim.prec
## [1] 1

En el método de newton raphson son necesarias 4 interacciones para encontrar la raíz, pero en la tarea 2 habían sido necesarias 17 interacciones, pero no tuvimos que sacar la derivada manualmente.

  1. \(2x\cos (2x)-(x+1)^2=0\) para \(-3\leq x\leq -2\) y \(-1\leq x \leq 0\)
f_2c <- function(x){2*x*cos(2*x)-(x+1)^2}
df_2c <- function(x){2*cos(2*x)-4*x*sin(2*x)-2*(x+1)}


x_2c <- seq(from=-3, to=0, by=0.01)
y_2c <- f_2c(x_2c)

graf_2c <- ggplot()+
  geom_vline(xintercept = 0, linetype="dashed")+ #eje x
  geom_hline(yintercept = 0, linetype="dashed")+ #eje y
  geom_line(aes(x=x_2c, y=y_2c), color="green", size=1)+
  #coord_fixed(ratio = 1)+ # misma escala en los ejes
  labs(x="x", y="y", title="Método de New raphson 2c")+
  theme_bw()

#plot(graf_3c)

ggplotly(graf_2c)
newtonRaphson(f_2c, -2, df_2b)
## Warning in newtonRaphson(f_2c, -2, df_2b): Maximum number of iterations
## 'maxiter' was reached.
## $root
## [1] 18.92671
## 
## $f.root
## [1] -359.67
## 
## $niter
## [1] 501
## 
## $estim.prec
## [1] 2.168397e-06

Utilizado el método de Newton-Raphson la raíz -2.191308 de la función 2x(2x)-(x+1)^2=0 después de diecisiete iteraciones Para el método de bisección se obtuvo esta misma raiz con este mismo número

  1. \(x\cos x-2x^2+3x-1=0\) para \(0.2\leq x\leq 0.3\) y \(1.2\leq x \leq 1.3\)
f_2d <- function(x){x*cos(x)-2*x^2+3*x-1}
df_2d<- function(x){-x*sin(x)-4*x+cos(x)+3}

x_2d <- seq(from=-2, to=2, by=0.01)
y_2d <- f_2d(x_2d)

graf_2d <- ggplot()+
  geom_vline(xintercept = 0, linetype="dashed") + #eje x
  geom_hline(yintercept = 0, linetype="dashed") + #eje y
  geom_line(aes(x=x_2d, y=y_2d), color="green",  size=1)+
  #coord_fixed(ratio = 1)+ # misma escala en los ejes
  labs(x="x", y="y", title="Método de raphson") +
  theme_bw()

plot(graf_2d)

#ggplotly(graf_2d)

p0 <-1
newtonRaphson(f_2d, 0, df_2d)
## $root
## [1] 0.2975302
## 
## $f.root
## [1] 0
## 
## $niter
## [1] 5
## 
## $estim.prec
## [1] 8.883671e-12

Ejercicio 3

Aproxima la solución de las siguientes ecuaciones por medio del método de Newton y de la secante.

  1. \(e^x+2^{-x}+2\,cos\,x-6=0\), para \(1\leq x\leq 2\).
f_3a <- function(x){exp(x)+2^(-x)+2*cos(x)-6}
df_3a <- function(x){exp(x)-log(2)*2^(-x)-2*sin(x)}

x_3a <- seq(from=0, to=2, by=0.01)
y_3a <- f_3a(x_3a)

graf_3a <- ggplot()+
  geom_vline(xintercept = 0, linetype="dashed")+ #eje x
  geom_hline(yintercept = 0, linetype="dashed")+ #eje y
  geom_line(aes(x=x_3a, y=y_3a), color="green", size=1)+
  #coord_fixed(ratio = 1)+ # misma escala en los ejes
  labs(x="x", y="y", title="Método Newton Rapshon ")+
  theme_test()

#plot(graf_3a)

ggplotly(graf_3a)
newtonRaphson(f_3a, 1.5, df_3a)
## $root
## [1] 1.829384
## 
## $f.root
## [1] 0
## 
## $niter
## [1] 6
## 
## $estim.prec
## [1] 2.165497e-16
  1. \(log(x-1)+cos(x-1)=0\) para \(1.3\leq x \leq 2\).
f_3b <- function(x){log(x-1)+cos(x-1)}
df_3b <- function(x){1/(x-1)-sin(x-1)}

x_3b <- seq(from=1, to=3, by=0.01)
y_3b <- f_3b(x_3b)

graf_3b <- ggplot()+
  geom_vline(xintercept = 0, linetype="dashed")+ #eje x
  geom_hline(yintercept = 0, linetype="dashed")+ #eje y
  geom_line(aes(x=x_3b, y=y_3b), color="green", size=1)+
  #coord_fixed(ratio = 1)+ # misma escala en los ejes
  labs(x="x", y="y", title="Método Newton Rapshon 3b")+
  theme_test()

#plot(graf_3c)

ggplotly(graf_3b)
newtonRaphson(f_3b, 1.5, df_3b)
## $root
## [1] 1.397748
## 
## $f.root
## [1] 2.220446e-16
## 
## $niter
## [1] 5
## 
## $estim.prec
## [1] 6.951135e-13
secant(f_3b, 1.2, 1.5)
## $root
## [1] 1.397748
## 
## $f.root
## [1] -5.085579e-09
## 
## $iter
## [1] 5
## 
## $estim.prec
## [1] 7.705866e-06

para la función log(x-1)+cos(x-1)=0 luego de 5 iteraciones se obtuvo una raíz de 1.397748 con ambos métodos

  1. \(2x\,cos\,2x-(x-2)^2=0\) para \(2\leq x \leq 3\) y \(3\leq x \leq 4\).
f_3c <- function(x){2*x*cos(2*x)-(x-2)^2}
df_3c <- function(x){-4*x*sin(2*x)+2*cos(2*x)-2*(x-2)}


x_3c <- seq(from=0, to=5, by=0.01)
y_3c <- f_3c(x_3c)

graf_3c <- ggplot()+
  geom_vline(xintercept = 0, linetype="dashed")+ #eje x
  geom_hline(yintercept = 0, linetype="dashed")+ #eje y
  geom_line(aes(x=x_3c, y=y_3c), color="green", size=1)+
  #coord_fixed(ratio = 1)+ # misma escala en los ejes
  labs(x="x", y="y", title="Método de Newton-raphson")+
  theme_bw()

#plot(graf_3c)

ggplotly(graf_3c)
p0 <-1
newtonRaphson(f_3c, 2, df_3c)
## $root
## [1] 2.370687
## 
## $f.root
## [1] 1.720846e-15
## 
## $niter
## [1] 5
## 
## $estim.prec
## [1] 5.970602e-15
secant(f_3c, 2.2, 2.4)
## $root
## [1] 2.370687
## 
## $f.root
## [1] -6.037115e-13
## 
## $iter
## [1] 4
## 
## $estim.prec
## [1] 2.443943e-08

Para la función 2x,cos,2x-(x-2)^2=0 encontramos una raíz de 2.370687 después de 4 y 5 iteracciones

newtonRaphson(f_3c, 4, df_3c)
## $root
## [1] 3.722113
## 
## $f.root
## [1] -3.552714e-15
## 
## $niter
## [1] 5
## 
## $estim.prec
## [1] 1.552625e-15
secant(f_3c, 3, 4)
## $root
## [1] 3.722113
## 
## $f.root
## [1] -5.194745e-09
## 
## $iter
## [1] 6
## 
## $estim.prec
## [1] 3.512699e-06
  1. \(e^x-3x^2=0\) para \(0\leq x \leq 1\) y \(3\leq x \leq 5\).
f_3d <- function(x){exp(x)-3*x^2}
df_3d <- function(x){exp(x)-6*x}

x_3d <- seq(from=-.5, to=5.5, by=0.01)
y_3d <- f_3d(x_3d)

graf_3d <- ggplot()+
  geom_vline(xintercept = 0, linetype="dashed")+ #eje x
  geom_hline(yintercept = 0, linetype="dashed")+ #eje y
  geom_line(aes(x=x_3d, y=y_3d), color="blue", size=1)+
  #coord_fixed(ratio = 1)+ # misma escala en los ejes
  labs(x="x", y="y", title="Método Newton Rapshon")+
  theme_gray()

#plot(graf_3d)

ggplotly(graf_3d)
newtonRaphson(f_3d, 4, df_3d)
## $root
## [1] 3.733079
## 
## $f.root
## [1] 7.105427e-15
## 
## $niter
## [1] 5
## 
## $estim.prec
## [1] 2.187036e-11
secant(f_3d, 3.3, 4)
## $root
## [1] 3.733079
## 
## $f.root
## [1] 2.214691e-10
## 
## $iter
## [1] 6
## 
## $estim.prec
## [1] 3.617632e-07

encontramos una raíz de 3.733079 después de 5 y 6 iteracciones