You need to use .^ when raising a vector to a power. This being said, I would just take advantage of the logical index:
x = 1:0.01:56;
y = zeros(size(x));
idx = find((x>=1) & (x<=28));
y(idx) = 48+3.64*x(idx)+0.6363*x(idx).^2+0.00963*x(idx).^3;
idx = find((x>28) & (x<=56));
y(idx) = -1004+65.8*x(idx);
plot(x,y);
