function [x, v, a] = traject2(xi, xf, t)

%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:
%       ai = 0, af = 0;
%       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^3     t^2     t
        t^4/4   t^3/3   t^2/2
        t^5/20  t^4/12  t^3/6];     % matriz dos coeficientes

resul = [0; 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

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


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

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


% Cálculo do vector aceleração

i = 1;                      
while(i<=t+1)
    a(i) = a1*r(i)^3 + a2*r(i)^2 + a3*r(i);   
    i = i+1;
end


% Cálculo do vector velocidade

i = 1;                    
while(i<=t+1)
    v(i) = a1*r(i)^4/4 + a2*r(i)^3/3 + a3*r(i)^2/2;   
    i = i+1;
end


% Cálculo do vector posição

i = 1;                                                          
while(i<=t+1)                                                   
    x(i) = xi + a1*r(i)^5/20 + a2*r(i)^4/12 + a3*r(i)^3/6;    
    i = i+1;                                                    
end                                                             

        
        