How can I make a integration with trapz?

6 visualizaciones (últimos 30 días)
shahin sharafi
shahin sharafi el 21 de Abr. de 2022
Comentada: shahin sharafi el 27 de Abr. de 2022
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,

Respuesta aceptada

Bruno Luong
Bruno Luong el 21 de Abr. de 2022
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 comentarios
Davide Masiello
Davide Masiello el 21 de Abr. de 2022
I think that since the function lies all above the x axis, the area should be positive.
Bruno Luong
Bruno Luong el 21 de Abr. de 2022
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.

Iniciar sesión para comentar.

Más respuestas (2)

Davide Masiello
Davide Masiello el 21 de Abr. de 2022
Editada: Davide Masiello el 21 de Abr. de 2022
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 comentarios
Bruno Luong
Bruno Luong el 21 de Abr. de 2022
Editada: Bruno Luong el 21 de Abr. de 2022
Check again. There are 2 steps I give the manual formula and value above: 0.1879
Davide Masiello
Davide Masiello el 21 de Abr. de 2022
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!

Iniciar sesión para comentar.


shahin sharafi
shahin sharafi el 25 de Abr. de 2022
What should I do guys? Please inform me about the correct code
  2 comentarios
Bruno Luong
Bruno Luong el 25 de Abr. de 2022
@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.
shahin sharafi
shahin sharafi el 27 de Abr. de 2022
Thank you for your response.

Iniciar sesión para comentar.

Categorías

Más información sobre Numerical Integration and Differentiation en Help Center y File Exchange.

Productos


Versión

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by