function [x, v] = traject(xi, xf, t, f)

%TRAJECT calcula uma trajectória rectilinea com aceleração variavel
%   [x, v, a] = traject(xi, xf, t), devolve o vector posição, 
%   velocidade e aceleração com o trajecto definido de acordo com
%   os parametros passados na função.
%   PARAMETROS PRÉ-DEFINIDOS:
%       vi = 0, vf = 0;
%   PARAMETROS DA FUNÇÃO:
%       xi é a posição inicial
%       xf é a posição final
%       t é o tempo de execução do movimento
%       f é o número valores por segundo

coef = [t^2     t^1  
        t^3/3   t^2/2];     % matriz dos coeficientes

resul = [0; xf-xi];              % vector dos resultados para tfinal


% Método de Cramer

coef1 = coef;                       %
coef1(:,1) = resul;                 %
a1 = det(coef1)/det(coef);          %% cálculo do coeficiente de 3ª ordem

coef1 = coef;                       %
coef1(:,2) = resul;                 %
a2 = det(coef1)/det(coef);          % cálculo do coeficiente de 2ª ordem



v = 0;      % velocidade inicial
x = xi;     % posição inicial

r = 0:1/f:t; %linspace(0,t,t*f);     % gera um vector tempo com f valores por segundo


% Cálculo do vector velocidade

i = 1;                    
while(i<=t*f+1)
    v(i) = a1*r(i)^2 + a2*r(i);   
    i = i+1;
end


% Cálculo do vector posição

i = 1;                                                          
while(i<=t*f+1)                                                   
    x(i) = xi + a1*r(i)^3/3 + a2*r(i)^2/2;    
    i = i+1;                                                    
end                                                             

