On Fri, Feb 25, 2011 at 4:11 AM, zbynek.jano...@gmail.com <zbynek.jano...@centrum.cz> wrote: > > I am having following problem: > I´m constructing model for calculation of area of triangle. > I know sides a, b, and gamma angle. > I wish to calculate the area using heron´s formula: > S <- sqrt(s*(s-a)*(s-b)*(s-c)) > where > s <- (a+b+c)/2 > and c is calculated using law of cosines: > c <- sqrt(a^2 + b^2 -2*a*b*cos(gamma)) > > since i am calculating a regression model, i need derivation of this > expression for area S. > something like (D(expression.S,c("a","b"))) > > To write it all into a single expression, it is too complicated, so i would > like to use some kind of substitution. however, if i try: > > s.e <- substitute(expression((a+b+c)/2), list(c = > expression(sqrt(a^2+b^2-2*a*b*cos(gamma))))), > I get >>s.e > expression((a + b + expression(sqrt(a^2 + b^2 - 2 * a * b * cos(gamma))))/2) > > which is not what I wanted > > Can someone point me to the right direction?
Try this: > e <- substitute((a+b+c)/2, list(c = quote(sqrt(a^2+b^2-2*a*b*cos(gamma))))) > D(e, "a") (1 + 0.5 * ((2 * a - 2 * b * cos(gamma)) * (a^2 + b^2 - 2 * a * b * cos(gamma))^-0.5))/2 Also > library(Ryacas) # http://ryacas.googlecode.com > > a <- Sym("a"); b <- Sym("b"); gamma <- Sym("gamma") > > c <- sqrt(a^2+b^2-2*a*b*cos(gamma)) > deriv((a+b+c)/2, a) expression(2 * ((2 * a - 2 * b * cos(gamma))/(2 * root(a^2 + b^2 - 2 * a * b * cos(gamma), 2)) + 1)/4) -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ R-help@r-project.org mailing list 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.