I found a (rather messy) way of coaxing symbolic values out of the integral.
Compute the series expansion coefficients of HermiteH[n, x]
.
hcoeff[n_, m_] =
Assuming[n \[Element] Integers && n >= 0,
SeriesCoefficient[HermiteH[n, x], {x, 0, m}]]
(* Piecewise[{{(I^(-m + n)*2^m*n!)/(m!*((1/2)*(-m + n))!),
Mod[m - n, 2] == 0 && m >= 0 && m <= n}}, 0] *)
Compute your integral for a single term in the series expansion.
hint[y_, n_, m_, a_, b_, c_] =
Assuming[Element[m, Integers] && 0 <= m <= n && a > 0 &&
a + c > 0 && Element[n, Integers] && n >= 0,
FullSimplify[
Integrate[
hcoeff[n, m]*(Sqrt[a]*x)^m*Exp[(1/2)*(-c)*(x^2 + y^2) + b*x*y -
(a*x^2)/2], {x, -Infinity, Infinity}]]]
(* output too long to quote here *)
Sum the series of integrals - this takes a while to evaluate.
hintsum[y_, n_, a_, b_, c_] =
Assuming[a > 0 && a + c > 0 && Element[n, Integers] && n >= 0,
FullSimplify[Sum[hint[y, n, m, a, b, c], {m, 0, n}]]]
(* even longer output - but at least the series is summed *)
Now let's test the result by feeding it some rational-valued parameters.
Define a function for generating rationals - use whatever you prefer here.
randrat[k_] := Rationalize[RandomReal[{0, k}], 0.01]
Define a block of code for comparing the NIntegrate
version of the original integral with the hintsum
version of the integral.
With[{n = 4, y = randrat[3], a = randrat[3], b = randrat[3],
c = randrat[3]},
{{y, n, a, b, c},
NIntegrate[HermiteH[n, Sqrt[a]*x]*
Exp[(1/2)*(-c)*(x^2 + y^2) + b*x*y - (a*x^2)/2], {x, -Infinity, Infinity}],
({#1, N[#1]} & )[Simplify[hintsum[n, y, a, b, c]]]}]
The numerical values come out the same, so presumably the symbolic value computed by hintsum
is correct.
I would have thought that the symbolic result should be much simpler than the one that Mathematica computes, but at least you can use the above approach to generate symbolic integrals for specific rational-valued parameters.