MATLAB: Does x(x+y) dy give a x^3 component

integrationMATLABsymbolic

syms g(x,y) x y
g(x,y) = 2*x+y;
gx = int(g, x);
int(gx, y)
The function gx becomes x*(x+y), so far so good. But int(gx, y) returns:
(x*(x + y)^2)/2
– which has a x^3 component in x*(x+y)^2. How could this happen?
doc int
The documentation refers me to the sym page, which does not mention "int" or "diff". Integration works fine for g(x,y)=y, but I've not tested much else.
Thanks.

Best Answer

Both answers are correct.
d/dy[ x*(x+y)^2/2 ] = d/dy[ (x^3)/2 + x^2*y + y^2*x/2 ] = x*(x + y)
d/dy[ x*y*(2*x+y))/2 ] = x*(x + y)
The ambiguity lies in the constant of integration. In the first case the constant of integration ends up being (x^3)/2.
If you really want to enforce that the constant of integration is zero then do:
int(gx,y,0,y)
In other words
int(x*(x+y),y,0,y)