MATLAB: How to calculate the area between two curves

area between two curves

I heave a problem, a need to calculate area between two curves, but one curve is too complicate (y1=(100./0.93).*(((x./19).^(10))./(1+(x./19).^(10))).*exp(-x./485), another curve is constant curve (y2=5). How I can calculate area between them?

Best Answer

The polyarea function handles this just fine.
figure(1),clf(1)
x=0:1500;
y1=@(x)(100./0.93).*(((x./19).^(10))./(1+(x./19).^(10))).*exp(-x./485);
y2=@(x)5*ones(size(x));
plot(x,y1(x),x,y2(x))
Y=y1(x)-y2(x);
Y1=Y;
Y2=Y;Y2(Y2<0)=0;
Y3=abs(Y);
fprintf('A=%.0f (y2<y1 counting as negative)\n',polyarea(x,Y1))
fprintf('A=%.0f (y2<y1 not counting)\n',polyarea(x,Y2))
fprintf('A=%.0f (y2<y1 as well)\n',polyarea(x,Y3))