limit to infinity of Left Riemann Sum
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
0 commentaires
Réponse acceptée
Zoltán Csáti
le 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);
0 commentaires
Plus de réponses (1)
Torsten
le 3 Nov 2014
Use
S_inf = integral(f,left,right)
to get the limit.
Best wishes
Torsten.
3 commentaires
Torsten
le 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.
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!