%% Diffyhtälön suuntakenttä,  suuntakentta1.m 
%
%  Määrittele omia esimerkkejäsi.
%
% Tässä esimerkkejä LaTeX-notaatiolla: 
% $$y'= f(t,y), f(t,y) = -y-5e^{-t}sin(5t)$$
% $$ y'=f(t,y), f(t,y) = -t y $$
%
close all; clear   % Jos haluat putsata edelliset kuvat ja muuttujat.
%
h=0.5; % hilapistevali
tpoints=-2:h:2;ypoints=-2:h:2;
% Pisteet, joihin suuntanuolet piirretään: (t_i,y_j) = (i,j), missä
% i ja j juoksevat -2 ... 2, puolikkaan välein.
[t,y]=meshgrid(tpoints,ypoints); % Suorakulmainen hilapisteistö.
%  t ja y ovat samankokoisia matriiseja, joissa hilapisteiden
%    koordinaatit.
%%
plot(t(:),y(:),'.','MarkerSize',7);shg % Piiretaan hilapisteet.
% Muuttele 'MarkerSize',7 isommaksi tai pienemmäksi maun mukaan.
%% Funktion f määrittely:
f=@(t,y) -t.*y;    % Huomaa (.*), oltava vektorikertolasku
%f=@(t,y) -y-5*exp(-t).*sin(5*t)
%% Pikkuviivojen komponentit:
pt=ones(size(y)); % Ykkösien muodostama matriisi
py=f(t,y); % Ratkaisukäyrän derivaatta diffyhtälöstä y'=f(t,y)
% Kun t-komponentti = 1, niin y-komponentti = kulmakerroin.
normit=sqrt(pt.^2+py.^2);     % normeerataan
pt=pt./normit; py=py./normit; % yksikkövektoreiksi
hold on
viivaskaala=h/2;
% Piirretään hilapisteestä kumpaankin suuntaan pikku viiva
quiver(t,y,pt,py,viivaskaala,'ShowArrowHead','off','LineWidth',2);
quiver(t,y,-pt,-py,viivaskaala,'ShowArrowHead','off','LineWidth',2);
% Jos haluat vain eteenpäin, kommentoi edellinen rivi pois.
grid on
% title('y''=-y-5e^{-t}sin(5t)','FontSize',14)
title('y''=-ty','FontSize',14)
xlabel('t');ylabel('y','Rotation',0)
xlim([-2.2 2.2]);ylim([-2.2 2.2]); % Säädetään akselien rajoja 
                                   % hiukan väljemmiksi
% Piirretään ratkaisukäyriä:
yf=@(y0,t)y0*exp(-0.5*t.^2);
 hold on
t=linspace(-2,2,100);
plot(t,yf(0.5,t),'LineWidth',2)
plot(t,yf(1,t),'LineWidth',2)
plot(t,yf(1.5,t),'LineWidth',2)

