> On 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.
I think it's actually Dalgaard's method. > > 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) Wouldn't it just involve skipping the 'mid' calculations and using either the right or left values? Illustration for right: showIntegral.rt <- 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 fr <- f(right) rect(left, 0, right, fr, density = 20, border = "red") points(right, fr, col = "red", cex = 1.25, pch = 19) sum(fr * dx) } You can make it prettier with plotmath: showIntegral.rt <- 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 fr <- f(right) rect(left, 0, right, fr, density = 20, border = "red") points(right, fr, col = "red", cex = 1.25, pch = 19) sum(fr * dx) text(0,10, # might want to do some adaptive positioning instead bquote( integral( .(body(f) )*dx, a, b) == .( sum(fr * dx )) ) ) } -- David. > > > > 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 > > [[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. David Winsemius Alameda, CA, USA ______________________________________________ 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.