How to calculate partial area under a graph?
1 次查看(过去 30 天)
显示 更早的评论
Hello,
I am trying to find the area as a part of a graph( Red area in the picture below). I am asking here a simplified question of my complext problem. The area is definitely 0.5. However, when I am using "trapz" function, It is giving me 4.5.
x=[0 1 2 3 4 5 10 15 20];
y=[0 -1 -2 -3 -4 -5 0 5 0];
plot(x,y)
area=trapz(4:5)
Thanks, Frite
2 个评论
KSSV
2016-11-29
编辑:Walter Roberson
2016-11-30
You have asked the same question....and it got answered too.... http://www.mathworks.com/matlabcentral/answers/314470-how-can-i-calculate-the-area-under-a-graph-shaded-area
采纳的回答
Star Strider
2016-11-29
You are not coding the integration correctly to integrate the area you want.
Explore this and experiment with it:
x=[0 1 2 3 4 5 10 15 20];
y=[0 -1 -2 -3 -4 -5 0 5 0];
yi = interp1(x, y, [4:5]);
shaded_area = trapz([4:5],yi+5)
plot(x,y)
hold on
patch([4 5 5 4], [yi -5 -5], 'r')
hold off
shaded_area =
500.0000e-003
2 个评论
Namira
2017-5-10
I was looking your code. Why did you add 5 with yi in line 4? I can't understand it. Sorry I am not good at Matlab coding.
Star Strider
2017-5-10
I added 5 because the area to be integrated goes from -5 to the line. The trapz function would otherwise integrate from 0 to the line. The offset ‘resets’ the 0 reference to -5.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!