Computing the overlapping area of curves
    8 views (last 30 days)
  
       Show older comments
    
I have a set of datapoints corresponding to 5 curves.
scale =  1.5;
x1 = [0,4,6,10,15,20]*scale;
y1 =  [18,17.5,13,12,8,10];
x2 = [0,10.5,28]*scale;
y2= [18.2,10.6,10.3];
x3 = [0,4,6,10,15,20]*scale;
y3 = [18,13,15,12,11,9.6];
x4 = [9,17,28]*scale;
y4 = [5,5.5,7];
x5 = [1,10,20]*scale;
y5 = [3,0.8,2];
plot(x1,y1, '*-', x2, y2,  '*-', x3, y3,  '*-', x4, y4,  '*-', x5, y5,  '*-')
I want to find the overlapping area under these curves. 
Suggestions on the functions that could be uded to find the intersecting area and the x limits of the intersecting area will be really helpful.
3 Comments
Accepted Answer
  Chunru
      
      
 on 4 Jul 2022
        
      Edited: Chunru
      
      
 on 4 Jul 2022
  
      scale =  1.5;
x{1} = [0,4,6,10,15,20]*scale;
y{1} =  [18,17.5,13,12,8,10];
x{2} = [0,10.5,28]*scale;
y{2}= [18.2,10.6,10.3];
x{3} = [0,4,6,10,15,20]*scale;
y{3} = [18,13,15,12,11,9.6];
x{4} = [9,17,28]*scale;
y{4} = [5,5.5,7];
x{5} = [1,10,20]*scale;
y{5} = [3,0.8,2];
figure; hold on
xmin = -inf; xmax=inf;
for i=1:length(x)
    area(x{i}, y{i}, 'FaceAlpha', 0.5);     % visualize area with transparancy
    a(i) = trapz(x{i}, y{i});       % compute area
    xmin = max(xmin, min(x{i}));
    xmax = min(xmax, max(x{i}));
end
xline([xmin xmax], 'LineWidth', 2)
legend
a
More Answers (0)
See Also
Categories
				Find more on 2-D and 3-D Plots in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


