% Aufgabe 4.4.1: Kurvendiskussiom
%    kurvendisk()
function  kurvendisk()

   % Funktion: y(x) = x^4 - 5*x^3 + 2*x - 2
   % als Polynom-Vektor:
   fprintf( 'Funktions-Polynom: ' );
   pol = [1,-5,0,2,-2]
   
   % x-Werte zur Anzeige
   x = [-1:0.1:5];
   
   % Funktionswerte berechnen und plotten
   y = polyval( pol, x );
   plot(x,y);
   grid on
   
   % Kurvendiskussion
   
   % Nullstellen
   fprintf( 'Nullstellen: ' );
   nullst = roots( pol )
   
   % Ableitungs-Funktion bzw. Polynom
   fprintf( 'Ableitungs-Polynom: ' );
   d1 = polyder( pol )
   
   fprintf( 'Extremwerte: ' );   
   extr = roots( d1 )
   
   % 2. Ableitung:
   fprintf( '2. Ableitung: ' );
   d2 = polyder( d1 )
   
   fprintf( 'Wendepunkte: ' );   
   wendep = roots( d2 )
   
   fprintf( 'Krümmung an den Extremwerten: \n' );   
   kr1 = polyval( d2, extr(1) )
   if( kr1 > 0 )
      fprintf( '-> Minimum bei x=%g \n', extr(1) );
   elseif( kr1 < 0 )
      fprintf( '-> Maximum bei x=%g \n', extr(1) );
   else
      fprintf( '-> Sattelpunkt bei x=%g \n', extr(1) );
   end
       
   kr2 = polyval( d2, extr(2) )
   if( kr2 > 0 )
      fprintf( '-> Minimum bei x=%g \n', extr(2) );
   elseif( kr2 < 0 )
      fprintf( '-> Maximum bei x=%g \n', extr(2) );
   else
      fprintf( '-> Sattelpunkt bei x=%g \n', extr(2) );
   end
   
   kr3 = polyval( d2, extr(3) )   
   if( kr3 > 0 )
      fprintf( '-> Minimum bei x=%g \n', extr(3) );
   elseif( kr3 < 0 )
      fprintf( '-> Maximum bei x=%g \n', extr(3) );
   else
      fprintf( '-> Sattelpunkt bei x=%g \n', extr(3) );
   end
end  