Integration function generates different result by a same expression

A same expression in two style will be integrated in two different results, why ? and which result is correct ?
syms a b c x
y1=a*x+1+a*(b-c);
y2=1+a*(x+b-c);
>> int(y1)
ans =
(a*x^2)/2 + (a*(b - c) + 1)*x
>> int(y2)
ans =
x + (a*(b - c + x)^2)/2
and obviously they are not equal.
>> expand(int(y1))-expand(int(y2))
ans =
a*b*c - (a*c^2)/2 - (a*b^2)/2

 Réponse acceptée

Mischa Kim
Mischa Kim le 14 Fév 2014
Modifié(e) : Mischa Kim le 14 Fév 2014
Tiger, this is because these are indefinite integrals. Solutions to indefinite integrals can differ by a constant. If you make them definite integrals by specifying integration limits, you will get the same answer. Something you can check with isequal, which will return 1 , for true. Or simply compute the difference.
int1 = int(y1,x,0,1);
int2 = int(y2,x,0,1);
isequal(int1,int2)

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by