limit to infinity of Left Riemann Sum

4 visualizzazioni (ultimi 30 giorni)
Hi there,
Lets say I have created a function Sn=LeftRiemannSum(f,left,right,N) ,that computes the left riemann sum over the interval left to right with N subdomains.i.e.:
Sn=sum(f(xi)*h) for all subdomains i=0 to N-1. f is my function and xi=left+i*h , so the input arguments left=x0 and right=xN.
Let f be my anonymous function (ex f=@(x)(x.*log(1+x)) .
I also estimated the Sn for varying N, from N=10 to 100000.
Now, I simply want to compute the value of the series Sn when N -> infinity. Inside the function I have a for loop [ for i=0:(N-1)] so I will have endless loop ..
Can I pass the function somehow to the 'limit' command? Any clues?
Thanx!
PS: The main part of the code of my function LeftRiemann Sum is the following:
if true
for i=0:(N-1)
x=x0+i.*h;
y=f(x);
A=y.*h;
S=S+A
end
Sn=S
end

Risposta accettata

Zoltán Csáti
Zoltán Csáti il 3 Nov 2014
If I am not mistaken, you try to determine the limit of the left Riemann-sum for the value of the definite integral. Of course you can't take infinite members. If you want to use this approach, I recommend you to use a large number for N and also estimate the right Riemann-sum. If the two sums are approximately equal, then there is hope that this is the approximate value of the integral.
A comment: it can easily be vectorized:
N = 1000;
a = 1;
b = 2;
h = (b-a)/N;
x = x0+(0:N)*h;
fx = f(x);
sum(fx*h);

Più risposte (1)

Torsten
Torsten il 3 Nov 2014
Use
S_inf = integral(f,left,right)
to get the limit.
Best wishes
Torsten.
  3 Commenti
Stelina
Stelina il 3 Nov 2014
Yes, I should have clarified. I already integrated my function analytically with
syms x;f=x.*log(1+x);
F=int(f) %integrate
a=0;b=1;
area=int(f,a,b)
, so I know the exact result.
Though, I still don't quite get whats the point of this homework exercise. For example, even if I use a relatively not that large value for N (I tried N=10000000) to substitute "inf", I get the exact same number, meaning my numerical approximation is perfect.
Besides, I guess MATLAB uses sth like that to calculate int "analytically" right?
Lol, I should ask MATLAB.
Torsten
Torsten il 3 Nov 2014
If you use "int", MATLAB tries to analytically determine a function F such that F'=f.
In your case, F(x)=0.25*(2*(x^2-1)*log(1+x)-(x-2)*x).
Thus in the limit you get F(1)-F(0)=0.25.
Best wishes
Torsten.

Accedi per commentare.

Categorie

Scopri di più su Mathematics in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by