why does 'sum' and 'trapz' function show same result ?

20 vues (au cours des 30 derniers jours)
Arif Hoq
Arif Hoq le 14 Déc 2021
Commenté : Walter Roberson le 14 Déc 2021
Just found the same result for "sum" and "trapz" function. is it same for uniform spacing (i think here is1) in trapz ?
if yes, then can use 'sum' function for integration instead of 'trapz', right ?
if no, what can be the possible reason ?
attached the 'mat' file here.
Code:
clear;
A=load('positive_value.mat');
power_positive_value=A.B;
integration=trapz(power_positive_value)
summation=sum(power_positive_value)
Result:
integration =
5.9126e+06
summation =
5.9126e+06

Réponse acceptée

John D'Errico
John D'Errico le 14 Déc 2021
Um, no. Sum is not the same as trapz. Are they close, under some circumstances? Well, yes.
format long g
sum(B)
ans =
5912588.32712044
trapz(B)
ans =
5912588.3236019
Do you see they are not the same result?
Is sum close? Yes. And that is because when you use sum and trapz, trapz first assumes a unit stride between the points. If the stride was not 1, then trapz would not produce something even close. This gets into the question of what an integral is, and what rectangle rule means, etc. I won't teach a beginning calc course here. Sorry. But if we assume a stride of 1, then you still see they are not identical.
Anyway, as you can see, sum is NOT the same. If you look closely at the formula for rectangle rule to approximate an integral, and then look at the formula for trapz, you will see they essentially only differ at the ends. And since your vector B is almost zero at each end, then sum and trapz will be quite close in their prediction.
  2 commentaires
Arif Hoq
Arif Hoq le 14 Déc 2021
Nice explanation. Thank you very much.
Walter Roberson
Walter Roberson le 14 Déc 2021
Right, in the case with regular stride and where the endpoints happen to be zero, the trapz and sum happen to have the same result.

Connectez-vous pour commenter.

Plus de réponses (1)

the cyclist
the cyclist le 14 Déc 2021
sum() and trapz() do not give the same result, even assuming uniform spacing:
Y = [1 2 3 4 5];
sum(Y)
ans = 15
trapz(Y)
ans = 12
It only seemed to be the same in your case, because of the large numbers involved, but sum(B) and trapz(B) do not give the same value in your case, either. Try subtracting those two values, to see the relatively small difference.

Catégories

En savoir plus sur Numerical Integration and Differentiation dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by