why does 'sum' and 'trapz' function show same result ?
26 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Arif Hoq
el 14 de Dic. de 2021
Comentada: Walter Roberson
el 14 de Dic. de 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
0 comentarios
Respuesta aceptada
John D'Errico
el 14 de Dic. de 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 comentarios
Walter Roberson
el 14 de Dic. de 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.
Más respuestas (1)
the cyclist
el 14 de Dic. de 2021
sum() and trapz() do not give the same result, even assuming uniform spacing:
Y = [1 2 3 4 5];
sum(Y)
trapz(Y)
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.
Ver también
Categorías
Más información sobre Numerical Integration and Differentiation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!