<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial'; COLOR: #000000">
<DIV>Romero,</DIV>
<DIV> </DIV>
<DIV>A função curve não serve não seu caso porque vc tem um vetor na sua função. 
Compare os gráficos</DIV>
<DIV> </DIV>
<DIV>xi=seq(1.8,2.1,length.out=180)</DIV>
<DIV>fi=vector()</DIV>
<DIV>for (i in 1:length(xi))fi[i]=fx0(xi[i])</DIV>
<DIV>fyt=curve(fx0, 1.5, 2.5,n=length(xi))</DIV>
<DIV>plot(xi,fi,type="l")</DIV>
<DIV>cbind(xi,fi,fyt$x,fyt$y)</DIV>
<DIV>xi[which.min(fi)] </DIV>
<DIV> </DIV>
<DIV>Para seu código não dar erro tem que definir x primeiro como vetor e depois 
atribuir o valor inicial</DIV>
<DIV>x <- vector()</DIV>
<DIV>x <- 1.6</DIV>
<DIV> </DIV>
<DIV>Logo seu código roda mas não para a função específica que vc quer, não 
pesquisei porque, mesmo aumentando o nº de passos a 500. Pode ser que exista um 
probelma mas derivadas, pois elas não aproximan da solução. O algoritmo em si 
aparentemente funciona, teste com </DIV>
<DIV> </DIV>
<DIV>#Aproximação da raiz de 5</DIV><SPAN class=Apple-style-span 
style="FONT-FAMILY: ; WHITE-SPACE: pre-wrap; WORD-SPACING: 0px; BORDER-COLLAPSE: separate; TEXT-TRANSFORM: none; COLOR: ; ORPHANS: 2; WIDOWS: 2; LETTER-SPACING: normal; LINE-HEIGHT: 17px; TEXT-INDENT: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><PRE tabIndex=0 id=rstudio_console_output class=GAKS5OJBBCB style="BORDER-TOP-STYLE: none; FONT-FAMILY: ; WHITE-SPACE: pre-wrap !important; BORDER-BOTTOM-STYLE: none; WORD-BREAK: break-all; BORDER-RIGHT-STYLE: none; OUTLINE-STYLE: none; MARGIN: 0px; BORDER-LEFT-STYLE: none; OUTLINE-COLOR: ; LINE-HEIGHT: 1.2; -webkit-user-select: text"><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text"><FONT face="Lucida Console"><FONT style="FONT-SIZE: 11pt; BACKGROUND-COLOR: #e1e2e5" color=#0000ff>> </FONT></FONT></SPAN><FONT style="FONT-SIZE: 11pt"><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">f=function(x){(x^3)/3-5*x}
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">> </SPAN></FONT></FONT></FONT><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">df=function(x){x^2 - 5}
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">> </SPAN></FONT></FONT></FONT><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">ddf=function(x){2*x}
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">> </SPAN></FONT></FONT></FONT><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text"><FONT style="BACKGROUND-COLOR: #e1e2e5" color=#0000ff face="Lucida Console">> </FONT></SPAN><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">ns=110
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">> </SPAN></FONT></FONT></FONT><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">tol=10^-9 
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">> </SPAN></FONT></FONT></FONT><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text"><FONT style="BACKGROUND-COLOR: #e1e2e5" color=#0000ff face="Lucida Console">> </FONT></SPAN><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">i=1
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">> </SPAN></FONT></FONT></FONT><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">x=vector()
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">> </SPAN></FONT></FONT></FONT><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">x=12.5
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">> </SPAN></FONT></FONT></FONT><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">dif=100
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">> </SPAN></FONT></FONT></FONT><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text"><FONT style="BACKGROUND-COLOR: #e1e2e5" color=#0000ff face="Lucida Console">> </FONT></SPAN><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">while(i<ns & dif>tol){
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">+ </SPAN></FONT></FONT></FONT><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">    x[i+1] <- x[i]-df(x[i])/ddf(x[i])
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">+ </SPAN></FONT></FONT></FONT><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">    dif <- abs(x[i+1]-x[i])
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">+ </SPAN></FONT></FONT></FONT><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">    i <- i+1
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">+ </SPAN></FONT></FONT></FONT></FONT><FONT face="Lucida Console"><FONT color=#0000ff><FONT style="BACKGROUND-COLOR: #e1e2e5"><FONT style="FONT-SIZE: 11pt"><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: ">    print(c(i,x[i]))
</SPAN><SPAN class="GAKS5OJBFCB ace_keyword" style="WHITE-SPACE: pre; COLOR: ; -webkit-user-select: text">+ </SPAN></FONT><SPAN class="GAKS5OJBIBB ace_keyword" style="COLOR: "><FONT style="FONT-SIZE: 11pt">}</FONT></SPAN></FONT></FONT></FONT></PRE></SPAN>
<DIV></DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>
<DIV style="FONT: 10pt tahoma">
<DIV><FONT face=Arial></FONT> </DIV><SPAN class=Apple-style-span 
style="FONT-FAMILY: ; WHITE-SPACE: pre-wrap; WORD-SPACING: 0px; BORDER-COLLAPSE: separate; TEXT-TRANSFORM: none; COLOR: ; ORPHANS: 2; WIDOWS: 2; LETTER-SPACING: normal; LINE-HEIGHT: 17px; TEXT-INDENT: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><PRE tabIndex=0 id=rstudio_console_output class=GAKS5OJBBCB style="BORDER-TOP-STYLE: none; FONT-FAMILY: ; WHITE-SPACE: pre-wrap !important; BORDER-BOTTOM-STYLE: none; WORD-BREAK: break-all; BORDER-RIGHT-STYLE: none; OUTLINE-STYLE: none; MARGIN: 0px; BORDER-LEFT-STYLE: none; OUTLINE-COLOR: ; LINE-HEIGHT: 1.2; -webkit-user-select: text"><FONT face="Lucida Console"><FONT style="FONT-SIZE: 11pt; BACKGROUND-COLOR: #e1e2e5">[1] 2.00 6.45
[1] 3.000000 3.612597
[1] 4.000000 2.498321
[1] 5.000000 2.249833
[1] 6.00000 2.23611
[1] 7.000000 2.236068
[1] 8.000000 2.236068</FONT></FONT></PRE></SPAN>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A title=beniltoncarvalho@gmail.com 
href="mailto:beniltoncarvalho@gmail.com">Benilton Carvalho</A> </DIV>
<DIV><B>Sent:</B> Wednesday, June 25, 2014 1:43 PM</DIV>
<DIV><B>To:</B> <A title=r-br@listas.c3sl.ufpr.br 
href="mailto:r-br@listas.c3sl.ufpr.br">r-br</A> </DIV>
<DIV><B>Subject:</B> Re: [R-br]Ajuda com método de Newton Raphson!! 
Urgente!!!</DIV></DIV></DIV>
<DIV> </DIV></DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>
<DIV dir=ltr>alem disso, o 'x' eh definido inicialmente como escalar e depois 
usado como vetor. b</DIV>
<DIV class=gmail_extra><BR><BR>
<DIV class=gmail_quote>Em 25 de junho de 2014 10:54, Rodrigo Coster <SPAN 
dir=ltr><<A href="mailto:rcoster@gmail.com" 
target=_blank>rcoster@gmail.com</A>></SPAN> escreveu:<BR>
<BLOCKQUOTE class=gmail_quote 
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
  <DIV dir=ltr>O problema está no chute inicial, pq a tua função [aparentemente] 
  não é definida no ponto x = 0. Colocando qualquer outro valor da certo (apesar 
  deu achar que o algoritmo ta errado, pq sempre converge pra um valor perto do 
  chute inicial, seja qual for ele) 
  <DIV class=gmail_extra><BR><BR>
  <DIV class=gmail_quote>2014-06-25 10:16 GMT-03:00 Manoel Galdino <SPAN 
  dir=ltr><<A href="mailto:mcz.fea@gmail.com" 
  target=_blank>mcz.fea@gmail.com</A>></SPAN>: 
  <DIV>
  <DIV class=h5><BR>
  <BLOCKQUOTE class=gmail_quote 
  style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
    <DIV dir=ltr>Confesso que fiquei com preguiça de olhar o seu código. Mas 
    tente o seguinte para descobrir qual é o erro: 
    <DIV> </DIV>
    <DIV>1. Adicione um print(i) no loop para saber em que passo do loop dá o 
    erro.</DIV>
    <DIV>2. Em seguida, rode <SPAN 
    style="FONT-SIZE: 13px; FONT-FAMILY: arial,sans-serif">i < 100 & dif 
    > tol e veja se retorna um True ou False.</SPAN></DIV>
    <DIV><SPAN style="FONT-SIZE: 13px; FONT-FAMILY: arial,sans-serif">3. Não 
    retornando, veja o conteúdo de dif e tol.</SPAN></DIV>
    <DIV><SPAN 
    style="FONT-SIZE: 13px; FONT-FAMILY: arial,sans-serif"><BR></SPAN></DIV>
    <DIV><FONT face="arial, sans-serif">Por fim, vendo o erro (NaN, ou seja, Not 
    a Number), em algum momento você pode estar fazendo alguma operação 
    proibida.</FONT></DIV>
    <DIV><FONT face="arial, sans-serif">Por exemplo, se você rodar no R 0 / 0, 
    ele dá NaN. Isso pode acontecer no seu código, por exemplo, por um problema 
    de aritimética de ponto flutuante. Como tol é inicializado como 10^-9, 
    dependendo das operações que você faz, o R vai aproximar o valor pra zero e 
    vai acontecer uma divisão pro zero, e vai retornar um NaN. E aí, na condição 
    do while, algo como x > NaN dá um NA (ao invpés de T ou F), dando o seu 
    erro. Enfim, estou especulando apenas com base no erro.</FONT></DIV>
    <DIV><FONT face="arial, sans-serif"><BR></FONT></DIV>
    <DIV><FONT face="arial, sans-serif"><BR></FONT></DIV>
    <DIV><FONT face="arial, sans-serif">Abcs</FONT></DIV>
    <DIV><FONT face="arial, sans-serif"><BR></FONT></DIV>
    <DIV><FONT face="arial, sans-serif">M</FONT></DIV></DIV>
    <DIV class=gmail_extra><BR><BR>
    <DIV class=gmail_quote>2014-06-25 1:09 GMT-03:00 Romero Luiz M. Sales Filho 
    <SPAN dir=ltr><<A href="mailto:romero.sfilho@gmail.com" 
    target=_blank>romero.sfilho@gmail.com</A>></SPAN>:<BR>
    <BLOCKQUOTE class=gmail_quote 
    style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
      <DIV>
      <DIV>
      <DIV dir=ltr>Caros amigos,  
      <DIV> </DIV>
      <DIV>por gentileza alguém poderia me auxiliar nesse programa!!</DIV>
      <DIV> </DIV>
      <DIV>Estou tentando obter a raiz de uma função utilizando o método de 
      Newton, entretanto o R dá um erro e não consigo obter o valor da raiz... 
      Alguém poderia me alertar sobre o que estou errando?</DIV>
      <DIV> </DIV>
      <DIV>Segue o códio completo:</DIV>
      <DIV> </DIV>
      <DIV>
      <DIV>#fornecendo os parâmetros</DIV>
      <DIV>n<-100</DIV>
      <DIV>u<-runif(n)</DIV>
      <DIV>q<-1.5</DIV>
      <DIV>theta<-2</DIV>
      <DIV>#Obtendo valores da variável Y</DIV>
      <DIV>y = (1/(theta*(q-2)))*((u^((1-q)/(2-q))-1)/((1-q)/(2-q)))</DIV>
      <DIV>###função que quero obter a raiz</DIV>
      <DIV>f <- 
      quote((n/x)-((n*sum(y/(1+x*y)))/sum(log(1+x*y)))-sum(y/(1+x*y)))</DIV>
      <DIV>fx0 <- function(x){ eval(f) }</DIV>
      <DIV>curve(fx0, 2, 10)</DIV>
      <DIV>### primeira derivada da função</DIV>
      <DIV>f1 
      <-quote((n*(sum(y/(1+x*y)))^2/(sum(log(1+x*y)))^2)-sum(-(y^2/(1+x*y)^2))-(n*sum(-(y^2/(1+x*y)^2))/sum(log(1+x*y)))-(n/x^2))</DIV>
      <DIV>fx1 <- function(x){ eval(f1) }</DIV>
      <DIV>curve(fx1, 0, 10, col=2) </DIV>
      <DIV>###segunda derivada da função</DIV>
      <DIV>f2 
      <-quote((2*n/x^3)-sum(2*y^3/(1+x*y)^3)-(n*sum(2*y^3/(1+x*y)^3)/sum(log(1+x*y)^3))+(3*n*sum(-(y^2/(1+x*y)^2))*sum(y/(1+x*y))/(sum(log</DIV>
      <DIV> </DIV>
      <DIV>(1+x*y)))^2)-(2*n*(sum(y/1+x*y))^3/(sum(log(1+x*y)))^3))</DIV>
      <DIV>fx2 <- function(x){ eval(f2) } </DIV>
      <DIV> </DIV>
      <DIV>#aplicando o newton-raphson</DIV>
      <DIV># valor inicial para o passo</DIV>
      <DIV>i <- 1       </DIV>
      <DIV># valor inical para a diferença entre duas avaliações</DIV>
      <DIV>dif <- 100   </DIV>
      <DIV># diferência mínima entre duas avaliações (tolerância)</DIV>
      <DIV>tol <- 10^-9 </DIV>
      <DIV># número máximo de passos</DIV>
      <DIV>dif <- 100   </DIV>
      <DIV># valor inicial para a raiz</DIV>
      <DIV>x <- 0       </DIV>
      <DIV>while(i<100 & dif>tol){</DIV>
      <DIV>  x[i+1] <- x[i]-fx1(x[i])/fx2(x[i])</DIV>
      <DIV>  dif <- abs(x[i+1]-x[i])</DIV>
      <DIV>  i <- i+1</DIV>
      <DIV>  print(x[i])</DIV>
      <DIV>}</DIV>
      <DIV> </DIV>
      <DIV> </DIV>
      <DIV>No final estou tendo o seguinte erro:</DIV>
      <DIV> </DIV>
      <DIV>
      <DIV>[1] NaN</DIV>
      <DIV>Erro em while (i < 100 & dif > tol) { : </DIV>
      <DIV>  valor ausente onde TRUE/FALSE necessário</DIV></DIV>
      <DIV> </DIV>
      <DIV> </DIV>
      <DIV> </DIV>
      <DIV>Alguém pode me ajudar??</DIV>
      <DIV>Obrigado,</DIV>
      <DIV> </DIV>
      <DIV>Romero.<BR></DIV></DIV></DIV>
      <DIV> </DIV></DIV></DIV>_______________________________________________<BR>R-br 
      mailing list<BR><A href="mailto:R-br@listas.c3sl.ufpr.br" 
      target=_blank>R-br@listas.c3sl.ufpr.br</A><BR><A 
      href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" 
      target=_blank>https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</A><BR>Leia 
      o guia de postagem (<A href="http://www.leg.ufpr.br/r-br-guia" 
      target=_blank>http://www.leg.ufpr.br/r-br-guia</A>) e forneça código 
      mínimo reproduzível.<SPAN><FONT 
    color=#888888><BR></FONT></SPAN></BLOCKQUOTE></DIV><SPAN><FONT 
    color=#888888><BR></FONT></SPAN></DIV></BLOCKQUOTE></DIV></DIV></DIV></DIV></DIV></BLOCKQUOTE></DIV></DIV></DIV></DIV></DIV></BODY></HTML>