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
Abaixo está o código:Boa Tarde,
Eu estou fazendo um fit nâo linear com um polinômio. Porém, a fiunção que eu estou usando :
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.
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.
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?
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?
file <- read.table(file="/Users/bau/Desktop/teste/DISparam.txt", col.names=c('x','y'))
plot(x=file$x, y=file$y, xlab='Valores de x', ylab='Valores de y', lwd=0.5,)
dados <- data.frame(x=file$x,y=file$y)
#chute inicial
guess <- list(a=1, b=3, n=3)
# funcao usada para o fit #
func <- function(x,n, a, b){
y <- (-(a*(x^(2*n)) +b)/((x-186)*(x+186)))
return(y)
}
#executa o fit e armazena resultado na variavel 'fit'
fit <- nls(y ~ func(x,n,a,b), data=dados, start=guess, lower=-200, upper=200)
fit
summary(fit)
#gera valores de y a partir do resultado do fit, para plotar
#o resultado no mesmo grafico que os dados
yfit <- predict(fit)
#plota a linha do fit
lines(dados$x, yfit, col='blue',lwd=2)
#carrega os parametros
param <- coef(fit)Obrigada,Michelle
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.