0
|
4681 Views
|
8 Replies
|
2 Total Likes
View groups...
Share
Share this post:
GROUPS:

# Integration - symbols make a difference?

Posted 9 years ago
 Integrate$[\frac{q1}{(q1^2 + b^2)} Log [(p + q1^2)+m^2]$,${q1,0,Infinity}]$ gives a different answer than Integrate$[\frac{a}{(a^2 + b^2)} Log [(p + a^2)+m^2]$,${a,0,Infinity}]$ Using Mathematica 10.0 Why?
8 Replies
Sort By:
Posted 9 years ago
 With Mathematica 10.1 both integrals return non convergent, which seems to be correct.
Posted 9 years ago
 Is there such a drastic difference between Mathematica 10.0 and 10.1? The second integral yields ConditionalExpression $[(b^2 Log[b^2] - m^2 Log[m^2])/(2 b^4 - 2 b^2 m^2)$, $Re[b] != 0]$whereas the first one goes unsolved?
Posted 9 years ago
 Would you attach a notebook with both equations (or use the Code Sample option) so that the equation is more readable and more immediately accessible for us to try in Mathematica?
Posted 9 years ago
 Yes, here is a Notebook with 3 Integrals, two of them with just a difference in symbol ("q1" instead of "a"). Also (reply to another post) the Integrals are not all necessarily divergent, all variables are Real and greater than 0. Attachments:
Posted 9 years ago
 Thanks. At some point q must have been defined to be zero which is why you seeThis means that when you write Integrate[a/(a^2 + b^2)^2 Log[(a + q)^2 + m^2], {a, 0, Infinity}] you are really evaluating this with q = 0 which gives you the definite result that you see. ConditionalExpression[(b^2 Log[b^2] - m^2 Log[m^2])/(2 b^4 - 2 b^2 m^2), Re[b] != 0] If you try running all equations with a fresh session, you will find that none will have been evaluated to a closed-form solution. (And I would suggest that avoiding subscripts unless absolutely necessary. Use q1 instead of Subscript[q, 1].)
Posted 9 years ago
 For special case with p -> 1 Integrate[a/(a^2 + b)^2 Log[(a + p)^2 + m] /. p -> 1, {a, 0, Infinity}] one obtains ConditionalExpression[(1/(2 b))(Log[m] + (Sqrt[b] \[Pi] + b^(3/2) \[Pi] - 2 b Sqrt[m] \[Pi] + Sqrt[b] m \[Pi] + 4 b Sqrt[m] ArcTan[1/Sqrt[m]] + b (1 + b - m) Log[b] + Log[1 + 1/m] + 2 b Log[1 + 1/m] + b^2 Log[1 + 1/m] + 2 m Log[1 + 1/m] - 2 b m Log[1 + 1/m] + m^2 Log[1 + 1/m] - b Log[1 + m] - b^2 Log[1 + m] + b m Log[1 + m])/(b^2 - 2 b (-1 + m) + (1 + m)^2)), (-1 < Im[Sqrt[m]] < 1 || Re[Sqrt[m]] > 0) && (Re[Sqrt[-m]] < 1 || Sqrt[-m] \[NotElement] Reals) && Re[Sqrt[b]] > 0 && Re[m] > 0] So it would seem that you could be successful in getting a general solution with a change in variable with a = p u. (And note that I changed m^2 to m and b^2 to b. Mathematica still gives a solution when p = 1 but it's a bit less messy with the squares removed. But I don't think that really changes anything with respect to getting a general solution.)
Posted 9 years ago
 Following the change-in-variable approach... sol = Integrate[u/(p^2 (u^2 + c)^2) (2 Log[p] + Log[(u + 1)^2 + d]), {u, 0, Infinity}, Assumptions -> {c > 0, d > 0}] /. {c -> b^2/p^2, d -> m^2/p^2}; sol = FunctionExpand[sol, Assumptions -> {m > 0, p > 0, b > 0}] //. {Sqrt[(b^2 m^2)/p^4] -> b m/p^2, Sqrt[b^2/p^2] -> b/p, ((b^2 m^2)/p^4)^(3/2) -> b^3 m^3/p^6, Sqrt[(b^10 m^2)/p^12] -> b^5 m/p^6, (b^2/p^2)^(3/2) -> b^3/p^3, (b^2/p^2)^(5/2) -> b^5/p^5}; sol = FullSimplify[sol]; sol = Collect[sol, {\[Pi], Log[b], Log[m], Log[p], Log[1 + m^2/p^2], Log[1 + p^2/m^2]}] I get the following solution (which certainly could be compacted a bit more): (p \[Pi])/(2 b ((b + m)^2 + p^2)) + (2 m p ArcTan[p/m])/(((b - m)^2 + p^2) ((b + m)^2 + p^2)) + ((b^2 - m^2 + p^2) Log[b])/(((b - m)^2 + p^2) ((b + m)^2 + p^2)) + ((2 b^4 - 4 b^2 m^2 + 2 m^4 + 4 b^2 p^2 + 4 m^2 p^2 + 2 p^4) Log[m])/(2 b^2 ((b - m)^2 + p^2) ((b + m)^2 + p^2)) + ((-b^4 + b^2 m^2 - b^2 p^2) Log[1 + m^2/p^2])/(2 b^2 ((b - m)^2 + p^2) ((b + m)^2 + p^2)) + ((-2 b^4 + 2 b^2 m^2 - 2 b^2 p^2) Log[p])/(2 b^2 ((b - m)^2 + p^2) ((b + m)^2 + p^2)) + (((b^2 - m^2)^2 + 2 (b^2 + m^2) p^2 + p^4) Log[1 + p^2/m^2])/(2 b^2 ((b - m)^2 + p^2) ((b + m)^2 + p^2)) As a way to do some checking: parms = {b -> 2.3, p -> 4.7, m -> 18.2}; sol /. parms NIntegrate[a/(a^2 + b^2)^2 Log[(a + p)^2 + m^2] /. parms, {a, 0, Infinity}] which results in 0.567437 for both.
Posted 8 years ago
 I can answer your question abstractly. To paraphrase, you asked: Can changing the name of a variable affect the outcome of a symbolic calcuation? Yes it can. And this is a fact of life you have to live with. It's as fundamental a problem to scientific computing as floating point error is. When you add variables together, they get sorted alphabetically: a+c+b gets turned into a+b+c. These are equivalent algebraically, but not equivalent numerically with floating point numbers. This is one reason to be warry of mixing symbolic transformations with floating point calculations. Why does it sort? Cannonicalization. This helps with many things including comparing expressions.Mathematica also can't try every possible combination of transformations. So the ordering of terms has some possible effect on which terms are adjacent and which transformations will be tried. TL;DR When using symbolic computing the names of your variables can matter. They aren't variables in the sense of most programming languages, but are symbols, which means something deeper.
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments