%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;