[R] Obtain gradient at multiple values for exponential decay model

David Winsemius dw|n@em|u@ @end|ng |rom comc@@t@net
Fri Apr 6 17:15:13 CEST 2018


> On Apr 6, 2018, at 8:03 AM, David Winsemius <dwinsemius using comcast.net> wrote:
> 
> 
>> On Apr 6, 2018, at 3:43 AM, g l <gnulinux using gmx.com> wrote:
>> 
>>> Sent: Friday, April 06, 2018 at 5:55 AM
>>> From: "David Winsemius" <dwinsemius using comcast.net>
>>> 
>>> 
>>> Not correct. You already have `predict`. It is capale of using the `newdata` values to do interpolation with the values of the coefficients in the model. See: 
>>> 
>>> ?predict
>>> 
>> 
>> The § details did not mention interpolation explicity; thanks.
>> 
>>> The original question asked for a derivative (i.e. a "gradient"), but so far it's not clear that you understand the mathematical definiton of that term. We also remain unclear whether this is homework.
>>> 
>> 
>> The motivation of this post was simple differentiation of a tangent point (dy/dx) manually, then wondering how to re-think in modern-day computing terms. Hence the original question about asking the appropriate functions/syntax to read further ("curiosity"), not the answer (indeed, "homework"). :)
>> 
>> Personal curiosity should be considered "homework".
> 
> Besides symbolic differentiation, there is also the option of numeric differentiation. Here's an amateurish attempt:
> 
> myNumDeriv <- function(x){ (exp( predict (graphmodeld, newdata=data.frame(t=x+.0001))) - 
>                                            exp( predict (graphmodeld, newdata=data.frame(t=x) )))/
>                                          .0001 }
> myNumDeriv(c(100, 250, 350))

I realized that this would not work in the context of your construction. I had earlier made a more symbolic version using R formulae:

 graphdata<-read.csv(text='t,c
 0,100
 40,78
 80,59
 120,38
 160,25
 200,21
 240,16
 280,12
 320,10
 360,9
 400,7')
 graphmodeld<-lm(log(c)~t, graphdata)
 graphmodelp<-exp(predict(graphmodeld))
 plot(c~t, graphdata)
 lines(graphdata[,1],graphmodelp)
 myNumDeriv(c(100, 250, 350), graphmodeld )
#----------------------------------------------
          1           2           3 
-0.31464102 -0.11310753 -0.05718414 


> 
> 
> 
> David Winsemius
> Alameda, CA, USA
> 
> 'Any technology distinguishable from magic is insufficiently advanced.'   -Gehm's Corollary to Clarke's Third Law
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

David Winsemius
Alameda, CA, USA

'Any technology distinguishable from magic is insufficiently advanced.'   -Gehm's Corollary to Clarke's Third Law




More information about the R-help mailing list