% H/harj5teht1b.m
% 14.3.04

function harj5teht1b

clear; close all

opt=odeset('events',@tapahtumat);
tspan=[0 1000]; y0=[4;0];
k=0.7;    %Pomppuhäviökerroin.
plkm=10   %Pomppujen lukumäärä.
tpomput=zeros(plkm+1,1);
ypomput=zeros(plkm+1,2);
ypomput(1,:)=-[4 0]/k;

for j=1:plkm
   [T{j},Y{j},tpomput(j+1),ypomput(j+1,:)]=ode45(@f,[tpomput(j),1000],-k*ypomput(j,:),opt);
end;
% Otimme käyttöön solumatriisit T ja Y, voidaan ajatella alaindeksoituina matriisijonoina.

format compact
tpomput
ypomput   % Loppunopeudet ovat negatiivisia.

%T
%Y


%plot(T{1},Y{1}(:,1))
hold on
for j=1:plkm
    h(j)=max(Y{j}(:,1));
    plot(T{j},Y{j}(:,1))
end;
grid on
    title('Harj. 5 teht 1b, pomppiva pallo')


maxkorkeudet=h


%%%%%%%%%%% Alifunktiot %%%%%%%%%%%%%%%%%%%%%%%%%%%%

    % Diffyhtälösysteemi:

function yp=f(t,y)
g=9.81;
yp=[y(2);-g];

    % 'Events'-funktio

function [arvo,lopeta,suunta]=tapahtumat(t,y)
arvo=y(1);
lopeta=1;
suunta=-1;
