%Darstellung einer Funktion
disp('Darstellung der gebr. rat. Funktion');
disp('*************************************');
disp('(y=x^3+x^2*a1+a2*x+a3)/(b1*x^2+b2*x+b3)');
a=input('Geben sie den Vektor für a ein[]:');
b=input('Geben sie den Vektor für b ein[]:');
a1=a(1);
a2=a(2);
a3=a(3);
b1=b(1);
b2=b(2);
b3=b(3);
x=(-5:0.1:5);
y=(x.^3+a1*x.^2+x.*a2+a3)./(b1*x.^2+x.*b2+b3);
plot(x,y)
axis([-5 5 -20 20]);
xlabel('X-Achse');
ylabel('Y-Achse');
title('Funktionsgraph der gebr. rat. Fkt. (x-für Polstelle/o-für Nullstelle)');
grid on;
hold on;
p=[1 a1 a2 a3];
x0=roots(p);
N=x0(imag(x0)==0);
if N==[];
   disp('Der Graph besitzt keine Nullstelle!');
else
   disp('Es gibt Nullstellen bei folgenden X-Werten:');
   disp([N]);
plot(N,0,'ro');
end;
hold on;
o=[b1 b2 b3];
l=roots(o);
pol=l(imag(l)==0);
if pol==[];
   disp('Es gibt keine Polstellen!');
else
   disp('Es gibt Polstellen bei folgenden X-Werten:');
   disp([pol]);
     plot(pol,0,'gx')
end;
luecke=intersect(pol,N)
if luecke==[];
   disp('Es gibt keine Lücken');
else
   disp('Die Lücken haben folgende X-Werte');
   disp([luecke])
   end;
hold off
