<p>Michelle seu codigo nao e reproduzivel. Nao e possivel acessar os dados com esse codigo de um dput(seusdados) copie a saida e cole no email</p>
<div class="gmail_quote">Em 27/08/2014 14:46, "Michelle Baú Graczyk" <<a href="mailto:mbgraczyk@gmail.com">mbgraczyk@gmail.com</a>> escreveu:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><div>Boa Tarde,<br><br>Eu estou fazendo um fit nâo linear com um polinômio. Porém, a fiunção que eu estou usando : <br>y=
- {[a*(x^(2*n)) + b]/[(x-186)(x+186)]} apresenta duas assíntotas em +-
186 e por isso dá um erro no fit: Erro em numericDeriv(form[[3l]],
names(ind), env): obtido valor faltante ou infinito quando avaliando o
modelo.<br>Pelo que eu entendi, o motivo é que a derivada também possui assíntotas nestes mesmo postos e daí na função vai para o infinito.<br>Eu
fiz D( (-(a*(x^(2*n)) + b)/((x-186)(x+186))), "x") e a mensagem de erro
foi: Erro em x^(2*n)argumento não numérico para operador binário. Aí eu
pensei que era por causa do n e deixei então só o x^2 e o erro foi o
mesmo. Eu procurei na internet e não achei nada que explicasse o que
está querendo dizer. O que seria um operador binário? <br><br>Voltando
às assintotas, eu achei uma função chamada ‘NLSstAsymptotic(xy)’ que é
para assintotas verticais em gráficos mas eu tentei emplementá-la e nâo
deu certo. Tem outra função que eu possa usar para que o fit seja feito
mesmo que a função usada para o fit apresente singularidades?<br></div><br></div>Abaixo está o código:<br><br><div><div><br><br>file <- read.table(file="/Users/bau/Desktop/teste/DISparam.txt", col.names=c('x','y'))<br>
plot(x=file$x, y=file$y, xlab='Valores de x', ylab='Valores de y', lwd=0.5,)<br><br><br>dados <- data.frame(x=file$x,y=file$y)<br><br>#chute inicial<br>guess <- list(a=1, b=3, n=3)<br><br># funcao usada para o fit #<br>
func <- function(x,n, a, b){<br> y <- (-(a*(x^(2*n)) +b)/((x-186)*(x+186))) <br> return(y)<br>}<br><br>#executa o fit e armazena resultado na variavel 'fit'<br>fit <- nls(y ~ func(x,n,a,b), data=dados, start=guess, lower=-200, upper=200)<br>
fit<br>summary(fit)<br>#gera valores de y a partir do resultado do fit, para plotar<br>#o resultado no mesmo grafico que os dados<br>yfit <- predict(fit)<br>#plota a linha do fit<br>lines(dados$x, yfit, col='blue',lwd=2)<br>
#carrega os parametros<br>param <- coef(fit)<br><br></div><div>Obrigada,<br><br></div><div>Michelle<br></div></div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">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.<br></blockquote></div>