Ola a todos, tenho uma duvida aqui.<div>Estou lendo um livro sobre programação em R e empaquei num problema aqui.</div><div><br></div><div>Eu tenha a função:</div><div><div>           x ≤ 0  ∈ (0, 1]    > 1</div></div><div>
<div><div>f(x)       −x3        x2       √x</div></div><div><br></div><div><br></div><div>ai resolvo no intervalo de -2 a 2 com o comando if:</div><div><br></div><div>#começo do script</div><div><br></div><div>rm(list=ls())</div>
<div><br></div><div><div># input</div><div>x.values <- seq(-2, 2, by = 0.1)</div><div><br></div><div># for each x calculate y</div><div>n <- length(x.values)</div><div>y.values <- rep(0, n)</div><div>for (i in 1:n) {</div>
<div>x<-x.values[i]</div><div># your expression for y goes here</div><div>if (x>1)  {</div><div>  y<-sqrt(x)</div><div>} else {</div><div>  if (x<=0) {</div><div>    y<- -x^3</div><div>    } else {</div><div>
      y<- x^2</div><div>  }</div><div>}</div><div>#end of y expression</div><div>y.values[i] <- y</div><div>}</div><div># output</div><div><br></div><div>plot(x.values, y.values, type = "l")</div></div><div>
<br></div><div>#até aqui tudo funcionou beleza.</div><div>#mas dai fui tentar fazer com ifelse a mesma coisa</div><div><br></div><div><div><div><div>y.values2 <- rep(0, n)</div><div><br></div><div>resultado<-ifelse(x.values>1,y.values2<-sqrt(x.values),</div>
<div>  ifelse(x.values<=0,y.values2<- -x.values^3, y.values2<- x.values^2)</div><div>)</div><div><br></div><div>#o vetor resultado fica correto</div><div>resultado==y.values</div><div>#mas o vetor y.values2 fica errado</div>
<div>y.values2==y.values</div></div></div></div><div><br></div><div>#o resultado ficou</div><div> [1] 8.000000 6.859000 5.832000 4.913000 4.096000 3.375000 2.744000 2.197000</div><div><div> [9] 1.728000 1.331000 1.000000 0.729000 0.512000 0.343000 0.216000 0.125000</div>
<div>[17] 0.064000 0.027000 0.008000 0.001000 0.000000 0.010000 0.040000 0.090000</div><div>[25] 0.160000 0.250000 0.360000 0.490000 0.640000 0.810000 1.000000 1.048809 1.303840 1.341641 1.378405</div><div>[41] 1.414214</div>
</div><div><br></div><div>#mas os valores que ficam salvos são no vetor y.values2 são:</div><div><div>> y.values2</div><div> [1] 4.00 3.61 3.24 2.89 2.56 2.25 1.96 1.69 1.44 1.21 1.00 0.81 0.64 0.49 0.36</div><div>[16] 0.25 0.16 0.09 0.04 0.01 0.00 0.01 0.04 0.09 0.16 0.25 0.36 0.49 0.64 0.81</div>
<div>[31] 1.00 1.21 1.44 1.69 1.96 2.25 2.56 2.89 3.24 3.61 4.00</div></div><div><br></div><div>#minha duvida então é pq ele so resolve tudo elevando ao quadrado no y.values2</div><div>#o que acontece, por exemplo, com o primeiro valor de resultado que vejo 8 qd mas fica salvo 4 quando vou olhar o y.values2.</div>
<div>#alguém pode me iluminar sobre o que esta acontecendo?</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>-- <br><div>Grato<br>Augusto C. A. Ribas</div>
<div> </div>
<div>Site Pessoal: <a href="http://augustoribas.heliohost.org" target="_blank">http://augustoribas.heliohost.org</a></div>
<div>Lattes: <a href="http://lattes.cnpq.br/7355685961127056" target="_blank">http://lattes.cnpq.br/7355685961127056</a><br></div><br>
</div>