Trapz not referred to x-axis
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Simone Speltoni
am 14 Jun. 2021
Kommentiert: Simone Speltoni
am 17 Jun. 2021
Hi, I'm having some issues regarding the chance to calculate the area between two curves or lines, as the ones following:
clear all
close all
xA=0:4;
A=[-2 -1 2 3 4];
figure(1)
plot(xA,A,'o');
grid on
hold on
%polyfit to build a curve with "A" data
[pA,~,muA] = polyfit(xA, A, 4);
fA = polyval(pA,xA,[],muA);
plot(xA,fA);
xi = linspace(min(xA), max(xA)); % Interpolation Vector
Ai = interp1(xA,A,xi,'linear'); % Interpolated Data
y=xi*(-1)-2;
plot(xi,y);
Areabetweencurve=trapz(abs(y),abs(Ai)); % area between the curves should be around 21
I thought that trapz could have been the right tool, but instead of the x-line as a reference, trapezoids should be considered between the two lines. The point is, I could calculate the area between the two curves with a loop where I consider (b+B)*h/2, but maybe (and probably) there is a smarter way. Any suggestion? thanks
1 Kommentar
Scott MacKenzie
am 14 Jun. 2021
Check your trapz arguments. For the 2-arg version, the first argument is for the x spacing.
Akzeptierte Antwort
Cris LaPierre
am 14 Jun. 2021
Bearbeitet: Cris LaPierre
am 14 Jun. 2021
If you want to use trapz, use it to calculate the area below both lines, and then subtract them to find the area between the lines.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Numerical Integration and Differentiation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!