Olá pessoal obrigado pelas dicas, problema solucionado.

Abraço

Em 02/10/2015 17:58, "Jônatan" <jdtatsch@gmail.com> escreveu:
Wagner, veja a adaptação de seu código comentada abaixo.

# função
Lmax_fun <- function(par){
  L <- par
  Ho <- 12
  Hvar <- 0.09061577
  So <- -0.03
  k <- 4.182488e-06
  ((Ho*Hvar/((-So-(k*L^1.75))*(1-Hvar)))-L)^2
}

L <- 1:300
Ho <- 12; Hvar <- 0.09061577; So <- -0.03; k <- 4.182488e-06
DEN_L <- ((-So-(k*L^1.75))*(1-Hvar))*L
plot(L,DEN_L,type = "l", ylim = c(0,max(DEN_L)*1.10))
abline(h=Ho*Hvar)

# otimização unidimensional - optimize()
# resultado depende do intervalo escolhido
# pelo gráfico da função podemos ver os intervalos das raízes
optimize(f = Lmax_fun, interval = c(min(L), max(L)))
optimize(f = Lmax_fun, interval = c(1, 200))
optimize(f = Lmax_fun, interval = c(100, 300))

library(pracma)
# findmins() divide o intervalo de busca n vezes (n = 100 por default)
mins <- findmins(f = Lmax_fun, min(L), max(L))
points(mins, rep(Ho*Hvar, 3), pch = 20)

#Condição para valer a escolha da função
mins[abs(So)/(k*mins^1.75) >= 1.75+1] 

2015-10-02 14:48 GMT-03:00 Wagner Wolff <wwolff@usp.br>:
Olá pessoal!
Estou precisando de uma ajuda, preciso encontrar uma solução para uma variável que terei que usar um método iterativo para estimá-la, entretanto, existe duas soluções (raízes) ou mais para esta variável e preciso da segunda solução pois é a que tem explicação física, sendo assim, a função optmim me retorna a primeira, gostaria que retornasse todas as soluções possíveis, alguém saberia como posso fazer isso? Ou indicar outra função. Segue o código e o gráfico mostrando as duas soluções, onde a linha horizontal intersepta o perfil.

Abraço

Ho <- 12
Hvar <- 0.09061577
k <- 4.182488e-06

Lmax_fun <- function(par,Ho,Hvar,So,k){
    L <- par
    ((Ho*Hvar/((-So-(k*L^1.75))*(1-Hvar)))-L)^2
}
So <- -0.03
(Lmax <- optim(par=100,fn=Lmax_fun,Ho=Ho,Hvar=Hvar,k=k,So=So,method ="BFGS"))

abs(So)/(k*Lmax^1.75) >= 1.75+1 #Condição para valer a escolha da função

L <- 1:300
DEN_L <- ((-So-(k*L^1.75))*(1-Hvar))*L

plot(L,DEN_L,type = "l",ylim = c(0,max(DEN_L)*1.10))
abline(h=Ho*Hvar)
points(x=Lmax,Ho*Hvar)
Lmax2 <- 129.3757
points(x=Lmax2,Ho*Hvar)





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



--
###############################################################
##  Jônatan Dupont Tatsch
##  Professor do Departamento de Física
##  Coordenador Substituto do Programa de Pós-Graduação em Meteorologia (PPGMET)
##  Centro de Ciências Exatas e Naturais (CCNE)
##  Universidade Federal de Santa Maria - UFSM
##  Faixa de Camobi, Prédio 13 - Campus UFSM - Santa Maria, RS, Brasil - 97105-900
##  Telefone: +55(55)33012083
###############################################################

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