% --------------------------------------------------------
% MND1, November 2013
% Erzeugung eines Vektorfeldes
% mit dem Befehl quiver
% Punkte wo ein Richtungsvektor angebracht werden
% sollte:
% -------------------------------------
clear all

xcoord = -1.5:.2:1.5;
ycoord = -1.5:.2:1.5;
a = 0.5;

[x,y] = meshgrid(xcoord,ycoord);

%  dgl = inline('y')
%  dgl = vectorize(dgl)

% Bestimmung der Richtungsvektoren in den
% entsprechenden Punkten (geg. Dgl.):

 xp = 1.*x.^0;
 %yp = x.*y;
 yp = dgl(x,y);
 %yp = -2.*x.*y.^2;
 %yp = 9.8 - 0.1*y - 0.1*y.^2;

figure(1)
subplot(1,2,1)
hold off
quiver(x,y,xp,yp)
hold on
axis equal

grid

subplot(1,2,2)
hold off
quiver(x,y,xp,yp)
hold on
axis equal

grid


% Beschriftung

title('Vektorfeld mit L\"osung(en) (\verb|ode23(...)|) der Dgl $\frac{dy}{dx} = f(x,y)$',...
               'interpreter', 'latex')
xlabel('$x$','interpreter', 'latex')
ylabel('$y$', 'interpreter', 'latex')

axis equal

hold on

% Lösung(en) der Dgl.
x0     = min(xcoord);
xfinal = max(xcoord);

% Anfangsbedingung für y:
% eine oder mehrere AB gleichzeitg 
%y0 = [-1.5, -.6, -.2, .3, 1.2];
%
pause

y0 = [0.2];
%y0 = 0.0
% Definition der Dgl.:
% ist im M-File dgl.m gemacht:

xspan = [x0 xfinal];
[x, y] = ode23('dgl', xspan, y0);

% graphische Darstellung der gerechneten Lösung:
subplot(1,2,2)

plot(x, y, 'k.-', 'LineWidth', 2)


axis equal
axis([x0, xfinal, x0, xfinal])

