function [t1, t2, t3, t4, t5] = indice(t)
t1 = (t <= 1/8);
t2 = (t > 1/8) & (t <= 3/8);
t3 = (t>3/8) & (t<=5/8);
t4 = (t>5/8) & (t<=7/8);
t5 = (t>7/8);
endfunction
function [j]=jerk(t)
[t1, t2, t3, t4, t5] = indice(t)
j = zeros(t);
j0 = 32*%pi^2/(%pi + 2)
j(t1) = j0*cos(4*%pi*t(t1));
j(t2) = 0;
j(t3) = -j0*sin(4*%pi*(t(t3) - 3/8));
j(t4) = 0;
j(t5) = j0*cos(4*%pi*(t(t5) - 1));
endfunction
function [a]=acceleration(t)
[t1, t2, t3, t4, t5] = indice(t)
a = zeros(t);
a0 = 8*%pi/(%pi + 2);
a(t1) = a0*sin(4*%pi*t(t1));
a(t2) = a0;
a(t3) = a0*cos(4*%pi*(t(t3) - 3/8));
a(t4) = -a0;
a(t5) = a0*sin(4*%pi*(t(t5) - 1));
endfunction
function [v] = vitesse(t)
[t1, t2, t3, t4, t5] = indice(t)
v = zeros(t);
v0 = 2/(%pi + 2);
v(t1) = v0*(1 - cos(4*%pi*t(t1)));
v(t2) = v0*4*%pi*(t(t2) + (2 - %pi)/(8*%pi));
v(t3) = v0*(sin(4*%pi*(t(t3) - 3/8)) + %pi + 1);
v(t4) = v0*4*%pi*(-t(t4) + (7*%pi + 2)/(8*%pi));
v(t5) = v0*(1 - cos(4*%pi*(t(t5) - 1)));
endfunction
function [x] = position(t)
[t1, t2, t3, t4, t5] = indice(t)
x = zeros(t);
x0 = 2/(%pi + 2);
x(t1) = x0*(t(t1) - 1/(4*%pi)*sin(4*%pi*t(t1)));
x(t2) = x0*2*%pi*((t(t2) + (2-%pi)/(4*%pi)).*t(t2) + (%pi^2-8)/(64*%pi^2));
// x(t3) = x0*((%pi + 1)*t(t3) - 1/(4*%pi)*cos(4*%pi*(t(t3) - 3/8))...
// + (%pi^3 - 9*%pi^2 - 8*%pi + 8)/(32*%pi));
x(t3) = x0*((1 + %pi)*t(t3) - 1/(4*%pi)*cos(4*%pi*(t(t3) - 3/8)) - %pi/4);
x(t4) = x0*2*%pi*((-t(t4) + (7*%pi + 2)/(4*%pi)).*t(t4) +...
(- 33*%pi^2 + 8)/(64*%pi^2));
x(t5) = x0*(t(t5) - 1/(4*%pi)*sin(4*%pi*(t(t5) - 1)) + %pi/2);
endfunction
// tracé
t = 0:0.005:1;
j = jerk(t);
a = acceleration(t);
v = vitesse(t);
x = position(t);
scf(0);
clf;
subplot(4, 1, 1)
plot(t, x)
xtitle("position", "t/T", "$x/x_\mathrm{f}$")
subplot(4, 1, 2)
plot(t, v)
xtitle("vitesse", "t/T", "$v/(x_\mathrm{f}/\mathrm{T})$")
subplot(4, 1, 3)
plot(t, a)
xtitle("accélération", "t/T", "$a/(x_\mathrm{f}/\mathrm{T}^2)$")
subplot(4, 1, 4)
plot(t, j)
xtitle("à-coup", "t/T", "$j/(x_\mathrm{f}/\mathrm{T}^3)$")