How can I make a integration with trapz?

5 次查看(过去 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,

采纳的回答

Bruno Luong
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'))
ans = -0.1879
  2 个评论
Davide Masiello
Davide Masiello 2022-4-21
I think that since the function lies all above the x axis, the area should be positive.
Bruno Luong
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
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'))
dx = 1×2
-0.0476 -0.0324
dy = unique(y1,'stable')'
dy = 1×2
2.2696 2.4646
area = abs(sum(dx.*dy))
area = 0.1879
  4 个评论
Bruno Luong
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
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.
Thanks for pointing it out @Bruno Luong!

请先登录,再进行评论。


shahin sharafi
shahin sharafi 2022-4-25
What should I do guys? Please inform me about the correct code
  2 个评论
Bruno Luong
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Numerical Integration and Differentiation 的更多信息

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by