[R-br] Fit não linear com função que aprensenta singularidades.

Michelle Baú Graczyk mbgraczyk em gmail.com
Quarta Agosto 27 14:46:21 BRT 2014


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?

Abaixo está o código:



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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140827/d5b84ed5/attachment.html>


Mais detalhes sobre a lista de discussão R-br