Why does x(x+y) dy give a x^3 component?

1 次查看(过去 30 天)
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.
  2 个评论
Bob Thompson
Bob Thompson 2020-2-26
It seems to be an issue with factoring. If you expand gx into x^2 + x*y and conduct the integration you get (x*y*(2*x + y))/2, which my fading memory of integration says is correct.

请先登录,再进行评论。

采纳的回答

Koushik Vemula
Koushik Vemula 2020-3-2
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)

更多回答(0 个)

产品


版本

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by