MATLAB: MATLAB int function problem while evaluating a symbolic definite integral

functionintintegrationMATLABsystem

this is my code
syms x y z b
assume(b, 'positive')
h(x,y,z) = z /(x^2 + y^2 + z^2)^(3/2) ;
int(h, x , [0 b])
i want to get the result of this integral wich is:
(2 b z)/((y^2 + z^2) Sqrt[b^2 + y^2 + z^2])
but instead i get :
ans(y, z) =
piecewise(y^2 + z^2 == 1 & ((z^2)^(1/2) == z | z + (z^2)^(1/2) == 0), (b*z)/(b^2 + 1)^(1/2), y^2 + z^2 ~= 1 | (z^2)^(1/2) ~= z & z + (z^2)^(1/2) ~= 0, int(z/(x^2 + y^2 + z^2)^(3/2), x, 0, b))
what can i do to get the first answer ? is there something wrong in my code ?

Best Answer

simplify(ans, 'steps', 100)