%% numerik 1, aufgabe 5,  Bibiana Gluski, Marina Chanuchowa, Thomas Dettbarn
hold on;				%% Malt alle Polynome in ein Frame	
format long;				%% und gib mir laaaaaaaaaaange zahlen.
%parameter festlegen
t=-5:0.001:5;				%% von wo bis wo soll er malen?
p=[2030 -5741 -1 11482 -8118];		%% was sind die koeffizienten des polynomes?
%polynome malen
y=polyval(p,t);				%% berechne das polynom und
plot(t,y);				%% male es.
plot(t,0);				%% und male eine schoene x-achse dazu.
%nullstellen berechnen
disp('Das kann jetzt etwas dauern... sorry...');
xlinks=[-5,-5,-5,-5];
xrechts=[5,5,5,5];
i=1;
z=0.001;
for j=0:1:3				%% wiederhole 4 mal
	i=1;				
	y=polyval(p,xlinks(i));		%% berechne den neuen wert des polynomes
	ay=y;				%% speichere ihn als alten
	for x=min(xlinks):z:max(xrechts)%% gehe von der weitesten links stehenden nullstelle
					%% bis zur am weisten rechts stehenden
		if (i<=4) 		%% nur zur fehlersicherheit
			y=polyval(p,x); %% berechne den wert des polynomes an der aktuellen stelle
			if ((y<=0 & ay>0) | (y>0 & ay<=0))
					%% wenn die werte durch die x-achse gelaufen sind, hast du
					%% eine nullstelle
				xlinks(i)=-z+x; %% speichere den wert links von ihr
				xrechts(i)=x;   %% und rechts von ihr
				i=i+1;		%% der naechste wechsel ist eine andere nullstelle
			end
			ay=y;		%% speichere den alten polynomwert
		end
	end
	z=z/10;				%% und rechne ab sofort etwas genauer
end
disp('Die Nullstellen liegen in folgenden Intervallen:');
xlinks					%% gib die werte links von den nullstellen aus
xrechts					%% gib die werte rechts von den nullstellen aus
