symbolic integration depends on different equivalent forms of function
    9 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
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???
0 comentarios
Respuestas (2)
  Torsten
      
      
 el 15 de Jul. de 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)
expr2 = diff(A,x)
7 comentarios
  Torsten
      
      
 el 15 de Jul. de 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)
compared to
int(x^2-2*x+1,x)
  Paul
      
      
 el 15 de Jul. de 2022
				
      Editada: Paul
      
      
 el 15 de Jul. de 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
normDf = simplify(normDf)
int(normDf, t, a, b)  % easy
  Michal
      
 el 16 de Jul. de 2022
        
      Editada: Michal
      
 el 16 de Jul. de 2022
  
      
      4 comentarios
  Torsten
      
      
 el 16 de Jul. de 2022
				
      Editada: Torsten
      
      
 el 16 de Jul. de 2022
  
			syms x y
A1 = int(sin(x)+sin(y),x,0,x);
B1 = int(A1,y,0,y)
simplify(B1)
A2 = int(sin(x)+sin(y),x);
B2 = int(A2,y)
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.
Ver también
Categorías
				Más información sobre Calculus en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!











