function pendulum_friction_euler ( n, alpha_value )

%*****************************************************************************80
%
%% pendulum_friction_euler calls euler() with specific values of n, a, b, and y0.
%
%  Licensing:
%
%    This code is distributed under the GNU LGPL license.
%
%  Modified:
%
%    03 November 2019
%
%  Author:
%
%    John Burkardt
%
  global alpha

  if ( nargin < 1 )
    n = input ( 'Enter n, the number of steps to take: ' );
  end

  if ( nargin < 2 )
    alpha_value = input ( 'Enter alpha, the friction coefficient: ' );
  end

  alpha = alpha_value;

  a = 0.0;
  b = 6.0 * pi;
  u = 1.0;
  v = 0.0;
  y0 = [ u, v ];
  
  [ t, y ] = euler ( @(t,y)pendulum_friction_prime(t,y), n, a, b, y0 );

  figure ( 1 )
  plot ( t, y, 'm-', 'linewidth', 3 );
  grid ( 'on' );
  xlabel ( '<-- T -->' );
  ylabel ( '<-- Y(T) -->' );
  dt = ( b - a ) / n;
  label = sprintf ( 'pendulum, friction = %g, dt = %g\n', alpha, dt );
  title ( label );
  filename = 'pendulum_friction_plot.png';
  print ( '-dpng', filename );
  fprintf ( 1, '  Graphics saved as "%s"\n', filename );

  figure ( 2 )
  clf ( );
  hold ( 'on' );
  plot ( y(:,1), y(:,2), 'm-', 'linewidth', 3 );
  plot ( y(1,1), y(1,2), 'g.', 'markersize', 40 );
  plot ( y(end,1), y(end,2), 'r.', 'markersize', 30 );
  hold ( 'off' );
  grid ( 'on' );
  axis ( 'equal' );
  xlabel ( '<-- Theta -->' );
  ylabel ( '<-- dThetadT -->' );
  dt = ( b - a ) / n;
  label = sprintf ( 'pendulum, friction = %g, dt = %g\n', alpha, dt );
  title ( label );
  filename = 'pendulum_friction_phase.png';
  print ( '-dpng', filename );
  fprintf ( 1, '  Graphics saved as "%s"\n', filename );

  return
end

  
