How to calculate the area between two curves
    10 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Paolo Rosettani
 il 7 Gen 2021
  
    
    
    
    
    Commentato: Paolo Rosettani
 il 8 Gen 2021
            Hi,
How can I calculate the erea between this two curves? (I need the yellow coloured area)

where: 
x1 =  [0    1    1.5608    2.4538    2.7360];
y1 =  [0    0   -0.8278   -0.3777   -1.5954];
and 
x2 = {vector 14494x1} 
y2 = {vector 14494x1}
All the datas are in the attached Curve.mat file.
Thank you in advance! 
2 Commenti
Risposta accettata
  David Wilson
      
 il 8 Gen 2021
        
      Modificato: David Wilson
      
 il 8 Gen 2021
  
      Try the following : I've used one of the many interpolation routines, but I notice that you have not sorted your (x2, y2) data, and that you must extrapolate to get the full range. 
load curves
x1 =  [0    1    1.5608    2.4538    2.7360];
y1 =  [0    0   -0.8278   -0.3777   -1.5954];
plot(x1, y1, x2, y2)
grid on 
%% Now interpolate x1 to x2 
% sort first (for some strange reason) 
[x2s, idx] = sort(x2, 'ascend'); 
y2s = y2(idx); 
[y1i] = interp1(x1, y1, x2s, 'pchip', 'extrap'); % Assume extrapolation  
subplot(2,1,1); 
plot(x2s, [y1i], '-', x2s, y2s)
ylim([-2, 0.5])
dy = abs([y1i-y2s]); 
A = trapz(x2s,dy)
subplot(2,1,2); 
plot(x2s, abs([y1i-y2s]))
ylabel('|y_1-y_2|')
title(sprintf('Area = %2.3f', A))
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Fit Postprocessing in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



