<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>