How can I make a integration with trapz?
2 次查看(过去 30 天)
显示 更早的评论
Hi everyone,
I have x and y vectors, and ploted y verses x as below:
v=[2.2696;2.2696; 2.4646;2.4646;2.6775;2.6775; 2.9101;2.9101;3.1644];
x=[0 , -0.0476 , -0.0476 , -0.0952 , -0.0952 , -0.1429 , -0.1429 , -0.1905 ,-0.1905];
plot (x,v)
I want to find the inegral (The area under the curve) of curve in range of x=[0 and -0.08]. How can I do that?
Thank you in advance,
0 个评论
采纳的回答
Bruno Luong
2022-4-21
Note: The value is negative since x goes backward.
v=[2.2696;2.2696; 2.4646;2.4646;2.6775;2.6775; 2.9101;2.9101;3.1644];
x=[0 , -0.0476 , -0.0476 , -0.0952 , -0.0952 , -0.1429 , -0.1429 , -0.1905 ,-0.1905];
b=x<=0 & x>=-0.08;
xx=[x(b),-0.08];
vv=[v(b);NaN];
trapz(xx,fillmissing(vv,'previous'))
2 个评论
Davide Masiello
2022-4-21
I think that since the function lies all above the x axis, the area should be positive.
Bruno Luong
2022-4-21
I don't compute the area but the integral with trapz with x going backward, so it return negative of the area, as noted in my answer.
更多回答(2 个)
Davide Masiello
2022-4-21
编辑:Davide Masiello
2022-4-21
I don't think you really need trapz for this function
clear,clc
x=[0,-0.0476,-0.0476,-0.0952,-0.0952,-0.1429,-0.1429,-0.1905,-0.1905];
y=[2.2696;2.2696; 2.4646;2.4646;2.6775;2.6775; 2.9101;2.9101;3.1644];
plot (x,y)
x1 = [0,-0.0476,-0.0476,-0.08];
y1 = [2.2696;2.2696; 2.4646;2.4646];
dx = diff(unique(x1,'stable'))
dy = unique(y1,'stable')'
area = abs(sum(dx.*dy))
4 个评论
Bruno Luong
2022-4-21
编辑:Bruno Luong
2022-4-21
Check again. There are 2 steps I give the manual formula and value above: 0.1879
Davide Masiello
2022-4-21
The answer was indeed wrong because unique sorts the output unless specified otherwise. I fixed it and now it works. I also implemented to calculate the absolute value so the area comes out positive.
N/A
2022-4-25
2 个评论
Bruno Luong
2022-4-25
@shahin sharafi Only you can decide
"I want to find the inegral (The area under the curve)"
integral has sign changing with x direction, area has not.
You also stated you want using trapz.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!