%vectfieldn  vector field for system of 2 first order ODEs,
%            with arrows normalized to the same length
%   vectfield(func,y1val,y2val) plots the vector field for the system of 
%   two first order ODEs given by func, using the grid of y1val and 
%   y2 values given by the vectors y1val and y2val. func is either a 
%   the name of an inline function of two variables, or a string 
%   with the name of an m-file.
%   By default, t=0 is used in func. A t value can be specified as an
%   additional argument: vectfield(func,y1val,y2val,t)
function vectfield(func,y1val,y2val,t)
if nargin==3
  t=0;
end
n1=length(y1val);
n2=length(y2val);
yp1=zeros(n2,n1);
yp2=zeros(n2,n1);
for i=1:n1
  for j=1:n2
    ypv = feval(func,t,[y1val(i);y2val(j)]);
    yp1(j,i) = ypv(1);
    yp2(j,i) = ypv(2);
  end
end
len=sqrt(yp1.^2+yp2.^2);
quiver(y1val,y2val,yp1./len,yp2./len,.6,'r');
axis tight;
