Integration - symbols make a difference?

Integrate$[\frac{q_1}{(q_1^2 + b^2)} Log [(p + q_1^2)+m^2],{q_1,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?

With Mathematica 10.1 both integrals return non convergent, which seems to be correct.

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?

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?

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.

Thanks. At some point q must have been defined to be zero which is why you see

This 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].)

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.)

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.

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.