Here is a different way you could approach this problem:
fzine = (x + abs(x))/2;
delta = fzine+15+12*x;
In fact, you could define your function this way:
function Y = fzine( X )
Y = (X + abs(X))/2;
Y(X~=0) = Y/X;
This now behaves almost exactly like the Heaviside function. Even the derivative works:
>> fd = simplify(diff(fzine(x)))
-(abs(x) - x*sign(x))/(2*x^2)
The only difference is for x=0:
(the derivative of heaviside gives Inf).
EDIT: Another difference occurs if you try this:
y = fzine(x);
EDIT: I think the problem with the original function is not just the greater than sign. It is the conditional commands, which make it impossible for the function to return an explicit symbolic expression. For more general cases, you could replace a lot of if/then conditions by expressions involving ... (drum roll) heaviside.