symbolic integration depends on different equivalent forms of function

6 views (last 30 days)
I performed the following equaivalent symbolic integrations:
syms x y
A = int(x+y,x);
A_ = expand(A); % just expanded (equaivalent) form of A
B = expand(int(A,y))
B_ = expand(int(A_,y))
with the following results:
A =
(x*(x + 2*y))/2
A_ =
x^2/2 + y*x
B =
x^3/8 + (x^2*y)/2 + (x*y^2)/2
B_ =
(x^2*y)/2 + (x*y^2)/2
I expect B equal to B_, but there is a misterious additional term x^3/8 at B ??!!
Is that a bug???

Answers (2)

Torsten
Torsten on 15 Jul 2022
The difference is a usual "constant of integration".
If you differentiate both B and B_ with respect to y and then with respect to x, you'll arrive at the expression x+y in both cases:
syms x y
B_ = (x^2*y)/2 + (x*y^2)/2;
B = x^3/8 + (x^2*y)/2 + (x*y^2)/2;
A_ = diff(B_,y);
A = diff(B,y);
expr1 = diff(A_,x)
expr1 = 
expr2 = diff(A,x)
expr2 = 
  7 Comments
Torsten
Torsten on 15 Jul 2022
I'm not surprised that
int((x*(x + 2*y))/2,y)
gives a result different from
int(x^2/2 + y*x,y).
See
syms x
int((x-1)^2,x)
ans = 
compared to
int(x^2-2*x+1,x)
ans = 
Paul
Paul on 15 Jul 2022
Edited: Paul on 15 Jul 2022
I'm not surprised either. I've seen cases where int() couldn't find a solution unless the integrand was manipulated using simplify, expand, etc. Here is an example from this Question
syms t
assume(t, "real")
f1 = 3*t-t*t*t;
f2 = 3*t*t;
f = [f1, f2];
df = diff(f, t);
a = 0;
b = 1;
normDf = sqrt(df(1)*df(1)+df(2)*df(2));
int(normDf,t,a,b) % no solution
ans = 
normDf = simplify(normDf)
normDf = 
int(normDf, t, a, b) % easy
ans = 
4

Sign in to comment.


Michal
Michal on 16 Jul 2022
Edited: Michal on 16 Jul 2022
Simple solution to avoid integration constant effect:
int(f(x),x,0,x)
  4 Comments
Torsten
Torsten on 16 Jul 2022
Edited: Torsten on 16 Jul 2022
syms x y
A1 = int(sin(x)+sin(y),x,0,x);
B1 = int(A1,y,0,y)
B1 = 
simplify(B1)
ans = 
A2 = int(sin(x)+sin(y),x);
B2 = int(A2,y)
B2 = 
You see, the integration constant of your method is x+y.
All I want to say is:
Each integration gives its individual integration constant. For the differential equation
d/dx (d/dy(F(x,y))) = x+y
e.g., the "integration constants" are functions of the form
G(x,y) = g1(x) + g2(y)
unless you fix F on a curve in the (x,y) plane (not parallel to one of he coordiante axes).
Some integration constants look more plausible, others less.
And now I will be quiet and you can have "the last word", if you want.

Sign in to comment.

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!