function chemie
    tspan = [ 0 1 ];
    y0 = [ 1 0 0 ]';
    
%     J = jac(0, y0);
%     eig(J)
    [ t45,  y45  ] = ode45 (@f, tspan, y0);
    [ t15s, y15s ] = ode15s(@f, tspan, y0);
    
    clf;
    subplot(1, 3, 1);
    plot(t45, y45(:, 2), 'b', t15s, y15s(:, 2), 'r');
    legend('ode45', 'ode15s');
    title('Numerische Loesung (2. Komp)');
    
    subplot(1, 3, 2);
    semilogy(t45 (1:end - 1), diff(t45),  'b', ...
             t15s(1:end - 1), diff(t15s), 'r');
    legend('ode45', 'ode15s');
    title('Schrittweitenwahlen');
    
    evs = zeros(3, length(t15s));
    for kk = 1:length(t15s)
        evs(:, kk) = real(eig(jac(t15s(kk), y15s(kk, :))));
    end
    subplot(1, 3, 3);
    plot(t15s, evs);
    title('Eigenwerte der Ableitung');
    
    shg;
    
    print la39.eps;
    
    function res = f(t, y) %#ok<INUSL>
        res = zeros(3, 1);
        
        res(1) = -0.04 * y(1) + 1e4 * y(2) * y(3);
        res(2) =  0.04 * y(1) - 1e4 * y(2) * y(3) - 3e7 * y(2)^2;
        res(3) =                                    3e7 * y(2)^2;
    end
    
    function res = jac(t, y) %#ok<INUSL>
        res = zeros(3, 3);
        
        res(1, 1) = -0.04;
        res(1, 2) = 1e4 * y(3);
        res(1, 3) = 1e4 * y(2);
        
        res(2, 1) = 0.04;
        res(2, 2) = -1e4 * y(3) - 6e7 * y(2);
        res(2, 2) = -1e4 * y(2);
        
        res(3, 2) = 6e7 * y(2);
    end
end