Olá Alessandro e demais colegas.

Você pode usar o optim para encontrar a solução aproximada. Acredito que haja uma solução mais simplificada, mas essa resolve o problema e pode ser generalizada para outras situações:


# Define os valores dos parametros que voce tem como conhecidos
b0=1
b1=1
b2=1
b3=1
b4=1
b5=1
s=1
id1=1
ab1=1

# Define expressao como funcao de x
der=function(x) {
  exp(b0 + b1/s + b2/x + b3 * (id1/x) * log(ab1) + b4 * (1 - id1/x) +b5 * (1 - id1/x) * s) * (b4 * (id1/x^2) - (b3 * (id1/x^2) *log(ab1) + b2/x^2) + b5 * (id1/x^2) * s)/x - exp(b0 + b1/s +b2/x + b3 * (id1/x) * log(ab1) + b4 * (1 - id1/x) + b5 *(1 - id1/x) * s)/x^2
}

# Caso queira fazer o gráfico
curve(der(x))

# Função para otimizar. 1 é o valor inicial, e o fnscale=-1 serve para ele maximizar
optim(1, der, method="BFGS", control=list(fnscale=-1))


$par
[1] 0.2928928

$value
[1] 50.55462

$counts
function gradient 
      29        8 

$convergence
[1] 0

$message
NULL


Paulo Dick
Estatístico
Mestrando em Epidemiologia em Saúde Pública
Tel.: (55 21) 99591-2716

Em 28 de abril de 2015 23:35, <aalmeidaalessandro@gmail.com> escreveu:
Como posso resolver essa equação sendo que sei os valores dos betas, id1,ab1 e s, quero achar o valor de x. (Não sei se é função solve ou outra função).
der= expression(exp(b0 + b1/s + b2/x + b3 * (id1/x) * log(ab1) + b4 * (1 - id1/x) +b5 * (1 - id1/x) * s) * (b4 * (id1/x^2) - (b3 * (id1/x^2) *log(ab1) + b2/x^2) + b5 * (id1/x^2) * s)/x - exp(b0 + b1/s +b2/x + b3 * (id1/x) * log(ab1) + b4 * (1 - id1/x) + b5 *(1 - id1/x) * s)/x^2)

Desde já agradeço!


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