[R] uniroot problem
Troels Ring
tr|ng @end|ng |rom gvdnet@dk
Fri Sep 16 08:05:22 CEST 2022
Dear friends - I have a problem with root finding using uniroot as goes:
I have the function
ASTA <- function(SID,H,ATOT,KA) {H + SID - kw/H - ATOT*KA/KA+H }
I know SID = 0.01199 - and I know H = 10^-4.57 - and I know kw = 1e-14
Therefore, as I make KA = 10^-seq(1,10,length=100), by letting ASTA = 0,
I can find ATOT for each KA as
ATOT <- (H+SID-kw/H)*(KA+H)/KA
and
summary(ATOT) = Min. 1st Qu. Median Mean 3rd Qu. Max.
0.012 0.013 0.115 171.263
18.278 3234.407
However, if I make use of uniroot by:
KA <- seq(1,10,length=100)
KA <- 10^-KA
ATOT <- c()
for (i in 1:100) {
ATOT[i] <- uniroot(ASTA,c(-1e3,1e3),tol=1e-20,maxiter=1e4,
SID=SID,KA=KA[i],H=10^-pH[1])$root
}
I get 100 identical ATOT values of 0.01204383 and no warnings.
I'm on Windows 10, using slightly old
$version.string
[1] "R version 4.0.5 (2021-03-31)"
Best wishes
Troels Ring, MD
Aalborg, Denmark
More information about the R-help
mailing list