This post is cosmetic. It adds nothing to Artes excellent and instructive answer (which I have voted for). I post it to illustrate visualization of the region (a parallelogram in this instance) and use same change of variables as Artes. I think SliceContourPlot3D
is also a a nice way to visualize.
m = {{6, 5}, {3, 6}};
mi = Inverse[m];
mi3 = ArrayFlatten[{{mi, 0}, {0, 1}}];
f[x_, y_] := Times @@ (m.{x, y})^2;
j = Abs[Det@D[m.{x, y}, {{x, y}}]];
cp = ContourPlot[
Evaluate@Table[m.{x, y} == k {9, 7}, {k, {1, -1}}], {x, -5,
5}, {y, -5, 5}, PlotLegends -> "Expressions"];
pp = ParametricPlot[mi.{u, v}, {u, -9, 9}, {v, -7, 7},
PlotStyle -> Yellow];
sh1 = Legended[Show[{cp, pp}], SwatchLegend[{Yellow}, {"Region D"}]];
reg = ParametricRegion[mi.{u, v}, {{u, -9, 9}, {v, -7, 7}}];
i1 = HoldForm[Integrate[a^2 b^2, {a, -9, 9}, {b, -7, 7}]/j];
i2 = HoldForm[Integrate[f[x, y], {x, y} \[Element] reg]];
p3 = Plot3D[f[x, y], {x, y} \[Element] reg, Mesh -> None,
PlotStyle -> Opacity[0.2]];
reg3 = ParametricRegion[
mi3.{u, v, w}, {{u, -9, 9}, {v, -7, 7}, {w, 0, 1}}];
scp = SliceContourPlot3D[
z - f[x, y], {z == 0}, {x, y, z} \[Element] reg3,
PlotPoints -> 100, Contours -> {0., -10, -100, -1000}];
sh2 = Show[p3, scp, ImageSize -> 300];
vr = ParametricRegion[
mi3.{u, v, w}, {{u, -9, 9}, {v, -7, 7}, {w, 0, f @@ (mi.{u, v})}}];
vol = Volume[vr];
TraditionalForm@
Grid[{{Row[{HoldForm@f[x, y], " = ", f[x, y], " = ",
Expand[Times @@ (m.{x, y})]^2}], SpanFromLeft}, {sh1, sh2},
Row[{#, " = ", ReleaseHold@#}, BaseStyle -> {20}] & /@ {i1,
i2}, {Row[{"Parametric region D: ", vr[[1]]}],
Row[{"Volume of D = ", vol}]}}, Alignment -> Left, Frame -> All]

Integrate
instead ofIntegrate
to get exact answer; correct typo iny
-domain so it runs from-Infinity
at lower end! $\endgroup$Integrate
instead ofNIntegrate
(typo was from Mac's "helpful" auto-correct). $\endgroup$