function pendulum_ode23 ( )

%*****************************************************************************80
%
%% pendulum_ode23 calls MATLAB's ode23() with specific values of n, a, b, and y0.
%
%  Licensing:
%
%    This code is distributed under the GNU LGPL license.
%
%  Modified:
%
%    04 November 2019
%
%  Author:
%
%    John Burkardt
%
  n = 100;
  a = 0.0;
  b = 6.0 * pi;
  u = 1.0;
  v = 0.0;
  y0 = [ u, v ];
  
  [ t, y ] = ode23 ( @(t,y)pendulum_prime(t,y), [a, b], y0 );

  figure ( 1 )
  plot ( t, y, 'r-', 'linewidth', 3 );
  grid ( 'on' );
  xlabel ( '<-- T -->' );
  ylabel ( '<-- Y(T) -->' );
  dt = ( b - a ) / n;
  label = sprintf ( 'pendulum ODE with dt = %g\n', dt );
  title ( label );
  filename = 'pendulum_ode23_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 ODE with dt = %g\n', dt );
  title ( label );
  filename = 'pendulum_ode23_phase.png';
  print ( '-dpng', filename );
  fprintf ( 1, '  Graphics saved as "%s"\n', filename );

  return
end

  
