%% mlODEsuuntakginput aputiedosto, L4 teht. 3
% 
close all
n=16;
tpisteet=linspace(0,3,n); ypisteet=linspace(-1,1,n);
[t,y]=meshgrid(tpisteet,ypisteet); % Pistehila, muistele 3d-grafiikkaa.
%%
plot(t(:),y(:),'.')
%%
pt=ones(size(y));
py=-y-5*exp(-t).*sin(5*t);
hold on
quiver(t,y,pt,py,1.5);
title('y''=-y-5e^{-t}sin(5t)','FontSize',14)
xlabel('t');ylabel('y','Rotation',0)
xlim([0 3.2]);ylim([-1.3 1.15]); % Viritellään akselirajoja.
%% Ratkaistaan yhtälö y'=f(t,y)=y-5*exp(-t)sin(5*t)
% Määrittele funktio f(t,y) tyyliin
% f=@(t,y) ...
% Ratkaise sopivalla välillä ja alkuarvolla ode45:llä
[T,Y]=ode45(...)   % Tähän sopivat parametrit
plot(T,Y)
%% 
% Muuttele alkuarvoa.
[T,Y]=ode45(...);     % Samoin ...
plot(T,Y)

%% Hiirisyöttö suuntakenttäkuvasta alkuarvoille:
% 
%%
% help ginput
% Alla otteita doc ginput-esimerkistä (poimitaan pisteitä ja piirretään splinikäyrä
% niiden kautta.) Aja huvin vuoksi se vaikka ensin.
% Tässä esimerkkiä muokattu ode45-suuntaan.

% Loop, picking up the points.
disp('Vie kursori grafiikkaikkunaan')  % Kehotteet menevät komentoikkunaan.
disp('******************************')
disp(' ')
disp('Left mouse button picks points.')
disp('Right mouse button picks last point.')
but = 1;    % but tarkoittaa "button"
while but == 1
    [ti,yi,but] = ginput(1);
    [T,Y]=ode45(...);
    plot(T,Y)
end


