How can I make a integration with trapz?

조회 수: 2 (최근 30일)
N/A
N/A 2022년 4월 21일
댓글: N/A 2022년 4월 27일
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!

댓글을 달려면 로그인하십시오.


N/A
N/A 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.
N/A
N/A 2022년 4월 27일
Thank you for your response.

댓글을 달려면 로그인하십시오.

카테고리

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