Во-первых, ваши коэффициенты неверны. Вы должны получить:
a0 = -.5;
an = -(1/pi)*sin(pi*i)/i + (2/(pi^2*i^2))*sin((pi*i)/2)^2;
bn = -(1/(pi^2*i^2))*sin(pi*i) + 1/(pi*i)*cos(pi*i);
Тогда, как отмечали другие, вы хотите использовать один, длинный вектор времени:
t = linspace(a(1),a(end),1e3);
Использование этого кода дает желаемый график
a = [0,pi/2,pi/2,pi];
b = [0,-1,0,0];
plot(a,b)
hold on
n = 50;
T = [0,pi,0,1];
a0 = -.5;
t = linspace(a(1),a(end),1e3);
suma=0;
for i=1:n
bn = -(1/(pi^2*i^2))*sin(pi*i) + 1/(pi*i)*cos(pi*i);
an = -(1/pi)*sin(pi*i)/i + (2/(pi^2*i^2))*sin((pi*i)/2)^2;
suma = suma+(bn.*sin(2.*i.*t))+(an.*cos(2.*i.*t));
end
series = a0/2 + suma;
plot(t,series)

Следует отметить, что, поскольку эта функция не является гладкой (существует скачок скачка), вы испытаете явление Гиббса и увидите скачки вблизи скачка.