%% 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