clear all;
clc;
syms x
fx=input('F(x)= ');
gx=input('G(x)= ');
a=input('LI= ');
b=input('LS= ');
c=fx-gx;
h1=gx-fx;
d=0;
k=1;
for i=a:.1:b
y=subs(c,i);
if y==0
disp(i)
yl2(k)=i;
d=d+1;
k=k+1;
end
end
k=k-1;
t=1;
for j=1:1:k
xo=j+0.1;
fxe=subs(fx,xo);
yf(t)=fxe;
t=t+1;
end
t2=1;
for j2=1:1:k
xo2=j2+0.1;
gxe=subs(gx,xo2);
yf2(t2)=gxe;
t2=t2+1;
end
l=k-1;
if k<3
if yf(l)>yf2(l)
r=int(c,a,b);
else
r=int(h1,a,b);
end
elseif k==3
v=k-l;
c1=yl2(1);
c2=yl2(2);
c3=yl2(3);
if yf(v)>yf2(v)
r1=int(c,c1,c2);
r2=int(h1,c2,c3);
r=r1+r2;
else
r1=int(h1,c1,c2);
r2=int(c,c2,c3);
r=r1+r2;
end
end
r12=abs(r);
disp('El area entre las curvas es: ')
disp(r12)
fxq=str2func(['@(x)' char(fx)]);
gxq=str2func(['@(x)' char(gx)]);
px=[];
py=[];
for al=a:0.1:b
px(end+1)=al;
py(end+1)=gxq(al);
end
for al=b:-0.1:a
px(end+1)=al;
py(end+1)=fxq(al);
end
m=a-1;
n=b+1;
ezplot(fx,[m n])
title('Area entre dos curvas')
hold on
grid on
ezplot(gx,[m n])
legend('F(x)','G(x)')
fill(px,py,'c')
este codigo lo agregue a un push vutton pero me da error
% --- Executes on button press in cl.
function cl_Callback(hObject, eventdata, handles)
syms x
fx=get(handles.fxz,'string');
gx=get(handles.gxz,'string');
a=str2double(get(handles.az,'string'));
b=str2double(get(handles.bz,'string'));
c=fx-gx;
h1=gx-fx;
d=0;
k=1;
for i=a:1:b
y=subs(c,i);
if y==0
yl2(k)=i;
d=d+1;
k=k+1;
end
end
k=k-1;
t=1;
for j=1:1:k
xo=j+0.1;
fxe=subs(fx,xo);
yf(t)=fxe;
t=t+1;
end
t2=1;
for j2=1:1:k
xo2=j2+0.1;
gxe=subs(gx,xo2);
yf2(t2)=gxe;
t2=t2+1;
end
l=k-1;
if k<3
if yf(l)>yf2(l)
rlr=int(c,x);
rlr1=subs(rlr,b);
rlr2=subs(rlr,a);
r=rlr1-rlr2;
else
rlr=int(h1,x);
rlr1=subs(rlr,b);
rlr2=subs(rlr,a);
r=rlr1-rlr2;
end
elseif k==3
v=k-l;
c1=yl2(1);
c2=yl2(2);
c3=yl2(3);
if yf(l)>yf2(l)
r1=int(c,x);
rlr1=subs(r1,c2);
rlr2=subs(r1,c1);
rsr1=rlr1-rlr2;
r2=int(hl,x);
rfr1=subs(r2,c3);
rfr2=subs(r2,c2);
rsr2=rfr1-rfr2;
r=rsr1+rsr2;
else
r1=int(h1,x);
rlr1=subs(r1,c2);
rlr2=subs(r1,c1);
rsr1=rlr1-rlr2;
r2=int(c,x);
rfr1=subs(r2,c3);
rfr2=subs(r2,c2);
rsr2=rfr1-rfr2;
r=rsr1+rsr2;
end
end
r12=abs(r);
set(handles.res,'string',char(r12));