showIntegral <- function (f, xmin, xmax, n = 16, fractionFromLeft = 0.5) { stopifnot(fractionFromLeft >= 0, fractionFromLeft <= 1, n >= 1) curve(f(x), from = xmin, to = xmax, lwd = 2, col = "blue") abline(h = 0) dx <- (xmax - xmin)/n right <- xmin + (1:n) * dx left <- right - dx mid <- right - dx * (1 - fractionFromLeft) fm <- f(mid) rect(left, 0, right, fm, density = 20, border = "red") points(mid, fm, col = "red", cex = 1.25, pch = 19) sum(fm * dx) } > showIntegral(function(x)1/x, 1, 4, n=3) - sum(1/(0.5 + (1:3))) [1] 0 > showIntegral(function(x)1/x, 1, 4, n=3, fractionFromLeft=0) - sum(1/(0 + > (1:3))) [1] 0 > showIntegral(function(x)1/x, 1, 4, n=3, fractionFromLeft=1) - sum(1/(1 + > (1:3))) [1] 0
Bill Dunlap TIBCO Software wdunlap tibco.com On Wed, Dec 16, 2015 at 9:00 AM, Steven Stoline <sstol...@gmail.com> wrote: > Dear William: Left and Right Riemann Sums > > > Is there is a way to modify your function to compute Left Riemann Sum and > Right Riemann Sum. I tried to modify yours, but i was not be able to make it > work correctly. > > This is your function used to compute the Middle Riemann Sum. > > > > showIntegral.med <- function (f, xmin, xmax, n = 16) > { > curve(f(x), from = xmin, to = xmax, lwd = 2, col = "blue") > abline(h = 0) > dx <- (xmax - xmin)/n > right <- xmin + (1:n) * dx > left <- right - dx > mid <- right - dx/2 > fm <- f(mid) > rect(left, 0, right, fm, density = 20, border = "red") > points(mid, fm, col = "red", cex = 1.25, pch = 19) > sum(fm * dx) > } > > > > ### Example 1: f(x) = x^2 , xmin=-4, xmax=4 > ### =============================== > > > > showIntegral.med(f=function(x)x^2, xmin=-4, xmax=4, n=16) > > > > with many thanks > steve > > On Sat, Nov 28, 2015 at 1:11 PM, William Dunlap <wdun...@tibco.com> wrote: >> >> Your right <- (1:n)*dx mean that your leftmost rectangle's left edge >> is at 0, but you want it to be at -4. You should turn this into a >> function >> so you don't have to remember how the variables in your code depend >> on one another. E.g., >> >> showIntegral <- function (f, xmin, xmax, n = 16) >> { >> curve(f(x), from = xmin, to = xmax, lwd = 2, col = "blue") >> abline(h = 0) >> dx <- (xmax - xmin)/n >> right <- xmin + (1:n) * dx >> left <- right - dx >> mid <- right - dx/2 >> fm <- f(mid) >> rect(left, 0, right, fm, density = 20, border = "red") >> points(mid, fm, col = "red", cex = 1.25, pch = 19) >> sum(fm * dx) >> } >> > showIntegral(f=function(x)x^2, xmin=-4, xmax=4, n=16) >> [1] 42.5 >> > showIntegral(f=function(x)x^2, xmin=-4, xmax=4, n=256) >> [1] 42.66602 >> > showIntegral(f=function(x)x^2, xmin=-4, xmax=4, n=1024) >> [1] 42.66663 >> >> > 2*4^3/3 >> [1] 42.66667 >> > showIntegral >> Bill Dunlap >> TIBCO Software >> wdunlap tibco.com >> >> >> On Fri, Nov 27, 2015 at 9:50 PM, Steven Stoline <sstol...@gmail.com> >> wrote: >> > Dear Peter: in my previous email I forgot to reply to the list too >> > >> > I used your code for more than one examples, and it works nicely. But >> > when >> > I tried to use for the the function: f(x) = x^2, it looks like I am >> > missing >> > something, but I could not figured it out. >> > >> > This what I used: >> > >> > >> > >> > f <- function(x) x^2 >> > >> > curve(f(x), from=-4, to=4, lwd=2, col="blue") >> > abline(h=0) >> > n <- 16 >> > dx <- 8/n >> > right <- (1:n)*dx >> > left <- right - dx >> > mid <- right - dx/2 >> > fm <- f(mid) >> > rect(left,0,right,fm, density = 20, border = "red") >> > points(mid, fm, col = "red", cex = 1.25, pch=19) >> > sum(fm*dx) >> > >> > >> > >> > 1/3 * (64+64) >> > >> > >> > >> > with many thanks >> > steve >> > >> > On Fri, Nov 27, 2015 at 3:36 PM, Steven Stoline <sstol...@gmail.com> >> > wrote: >> > >> >> many thanks >> >> >> >> steve >> >> >> >> On Fri, Nov 27, 2015 at 9:20 AM, peter dalgaard <pda...@gmail.com> >> >> wrote: >> >> >> >>> Something like this? >> >>> >> >>> f <- function(x) x^3-2*x >> >>> curve(f(x), from=0, to=4) >> >>> abline(h=0) >> >>> n <- 16 >> >>> dx <- 4/n >> >>> right <- (1:n)*dx >> >>> left <- right - dx >> >>> mid <- right - dx/2 >> >>> fm <- f(mid) >> >>> points(mid, fm) >> >>> rect(left,0,right,fm) >> >>> >> >>> sum(fm*dx) >> >>> >> >>> 1/4 * 4^4 - 4^2 >> >>> >> >>> >> >>> -pd >> >>> >> >>> >> >>> On 27 Nov 2015, at 13:52 , Steven Stoline <sstol...@gmail.com> wrote: >> >>> >> >>> > Dear All: >> >>> > >> >>> > I am trying to explain to my students how to calculate the definite >> >>> > integral using the Riemann sum. Can someone help me to graph the >> >>> > area >> >>> under >> >>> > the curve of the function, showing the curve as well as the >> >>> > rectangles >> >>> > between 0 and 4.. >> >>> > >> >>> > *f(x) = x^3 - 2*x * >> >>> > >> >>> > over the interval [0 , 4] >> >>> > >> >>> > >> >>> > >> >>> > with many thanks >> >>> > steve >> >>> > >> >>> > -- >> >>> > Steven M. Stoline >> >>> > 1123 Forest Avenue >> >>> > Portland, ME 04112 >> >>> > sstol...@gmail.com >> >>> > >> >>> > [[alternative HTML version deleted]] >> >>> > >> >>> > ______________________________________________ >> >>> > R-help@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. >> >>> >> >>> -- >> >>> Peter Dalgaard, Professor, >> >>> Center for Statistics, Copenhagen Business School >> >>> Solbjerg Plads 3, 2000 Frederiksberg, Denmark >> >>> Phone: (+45)38153501 >> >>> Office: A 4.23 >> >>> Email: pd....@cbs.dk Priv: pda...@gmail.com >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >> >> >> >> >> -- >> >> Steven M. Stoline >> >> 1123 Forest Avenue >> >> Portland, ME 04112 >> >> sstol...@gmail.com >> >> >> > >> > >> > >> > -- >> > Steven M. Stoline >> > 1123 Forest Avenue >> > Portland, ME 04112 >> > sstol...@gmail.com >> > >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > R-help@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. > > > > > -- > Steven M. Stoline > 1123 Forest Avenue > Portland, ME 04112 > sstol...@gmail.com ______________________________________________ R-help@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.