Integrate pressure over area, from dataset points

조회 수: 5 (최근 30일)
Francesco Brescia
Francesco Brescia 2023년 10월 30일
댓글: Francesco Brescia 2023년 11월 2일
Hi, i want to compute the integral over the area of the pressure distribution p(x,y). I have vectors x and y ,say each one of size n by 1,containing the coordinates at which the pressure is known, and a vector of pressures, size n by 1, with the pressure at each coordinate. I thought i could use trapz 2 times to compute the integral first in one direction and then the other, but to do this i would need a Matrix of pressure, instead i have a vector of the same size of the coordinates x and y. I also know that the area I have is an anulus surface, as i can see from plotting using stem3(x,y,p). The coordinates are taken w.r.t the center of the anulus, in cartesian coordinates. Hope you can help me figure this out, thanks.
  댓글 수: 5
Dyuman Joshi
Dyuman Joshi 2023년 10월 31일
Why not just sum the discrete values of Pressure-force at each point?
Torsten
Torsten 2023년 10월 31일
편집: Torsten 2023년 10월 31일
If your suggestion was used, the density of the measurement points had to mirror the areas associated with them. But imagine data accumulating in a certain area while in another, there are almost no measurements. In this case, the weights for the datapoints in the integration couldn't be equally chosen.

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

채택된 답변

Torsten
Torsten 2023년 10월 30일
편집: Torsten 2023년 10월 30일
Maybe you want to get mean pressure over the face. In this case, divide "sol" by area = pi*(5^2-1^2) as done below.
x = load("x.mat")
x = struct with fields:
x1: [1323×1 double]
y = load("y.mat")
y = struct with fields:
y1: [1323×1 double]
p = load("p.mat")
p = struct with fields:
p: [1323×1 double]
plot(x.x1,y.y1,'o')
F = scatteredInterpolant(x.x1,y.y1,p.p);
fun = @(r,theta)F(r.*cos(theta),r.*sin(theta)).*r;
sol = integral2(fun,1,5,0,2*pi)
Warning: Reached the maximum number of function evaluations (10000). The result fails the global error test.
sol = 37.9349
mean_sol = sol/(pi*(5^2-1^2))
mean_sol = 0.5031
  댓글 수: 5
Torsten
Torsten 2023년 11월 1일
편집: Torsten 2023년 11월 1일
Study the example
Multiple Numerical Integrations
under
to learn about the necessary format of your function data in order to use "trapz" for a 2d integration.
If you have problems to make your data compatible with the required format for "trapz", use the "scatteredInterpolant" approach - the setup is easy and the results won't differ significantly in my opinion.
Francesco Brescia
Francesco Brescia 2023년 11월 2일
Thank you very much for the help Torsten, I'll have a better look at trapz.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Numerical Integration and Differentiation에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by