# Expectation of cross product of normal distributed variables

Given are 6 independent normal distributed variables $$X_i=\mathcal{N}(\mu_i,\sigma^2)_{i=1...6}$$ with expectations $$\mu_i$$ and variance $$\sigma^2$$. How the expected value of the norm of their cross product can be calculated or approximated?

$$\mathbb{E}\left[ \left \| \begin{pmatrix} X_1\\X_2\\X_3 \end{pmatrix} \times \begin{pmatrix} X_4\\X_5\\X_6 \end{pmatrix} \right\| \right]=\mathbb{E}\left[ \left\|\begin{pmatrix} X_2 X_6-X_3 X_5\\X_3 X_4 - X_1 X_6\\ X_1 X_5-X_2 X_4\end{pmatrix}\right\|\right]=\mathbb{E}\left[\sqrt{(X_2 X_6-X_3 X_5)^2+(X_3 X_4 - X_1 X_6)^2+(X_1 X_5-X_2 X_4)^2}\right]$$

It can be assummed $$\sigma\ll \left\|\begin{pmatrix} \mu_1\\\mu_2\\\mu_3\end{pmatrix}\right\|=\sqrt{\mu_1^2+\mu_2^2+\mu_3^2}$$

$$\sigma\ll \left\|\begin{pmatrix} \mu_4\\\mu_5\\\mu_6\end{pmatrix}\right\|=\sqrt{\mu_4^2+\mu_5^2+\mu_6^2}$$

• Shall we assume nothing about the nine means? It may help many readers to explain the origin of this problem. – whuber Jan 17 '20 at 0:06
• – JimB Jan 17 '20 at 0:32
• Would you clarify what you mean by "9 normal distributed variables with expectation"? Do you mean "9 random variables with normal distributions and potentially all different means?" Also, what does "distributions do not interfere" mean? – JimB Jan 17 '20 at 0:35
• True. You were given an exact answer rather than an approximation. And I understand you want an approach (or multiple approaches) to find approximations when there are no explicit solutions. The question is related in that I think it will help others get you the answer that you want. – JimB Jan 17 '20 at 0:39
• Then please tell us how much precision you need! WLG you may take $\sigma=1,$ so it suffices to express the precision in terms of the norms of the two mean vectors. – whuber Jan 21 '20 at 20:26

## 1 Answer

The approach mentioned by @huber is probably what you need for this particular random variable.

Here is how to perform a 2nd order Taylor series approximation (using Mathematica as your other questions indicate you use this software).

(* Function of interest *)
f = Sqrt[(x[2] x[6] - x[3] x[5])^2 + (x[3] x[4] - x[1] x[6])^2 + (x[1] x[5] - x[2] x[4])^2];

(* Make a conversion to get Mathematica to do the desired 2nd order Taylor series *)
(* Technique from
https://mathematica.stackexchange.com/questions/15023/multivariable-taylor-expansion-does-not-work-as-expected *)
f = f /. x[i_] -> (z[i] - \[Mu][i]) t + \[Mu][i];

(* Get 2nd order Taylor series *)
taylor = (Series[f, {t, 0, 2}] // Normal) /. t -> 1 // Expand;

(* Take expectation of Taylor series *)
(* Convert z[i]^2 to \[Sigma]^2 + \[Mu][i]^2 *)
mean = taylor //. z[i_]^2 -> \[Sigma]^2 + \[Mu][i]^2;
(* Convert z[i] to \[Mu][i] *)
mean = FullSimplify[mean //. z[i_] -> \[Mu][i]]


$$\frac{\left(\mu_1^2+\mu_2^2+\mu_3^2+\mu_4^2+\mu_5^2+\mu_6^2\right) \sigma^2+2 \left(\left(\mu_5^2+\mu_6^2\right) \mu_1^2-2 \mu_3 \mu_4 \mu_6 \mu_1+\mu_3^2 \left(\mu_4^2+\mu_5^2\right)-2 \mu_2 \mu_5 (\mu_1 \mu_4+\mu_3 \mu_6)+\mu_2^2 \left(\mu_4^2+\mu_6^2\right)\right)}{2 \sqrt{\left(\mu_5^2+\mu_6^2\right) \mu_1^2-2 \mu_3 \mu_4 \mu_6 \mu_1+\mu_3^2 \left(\mu_4^2+\mu_5^2\right)-2 \mu_2 \mu_5 (\mu_1 \mu_4+\mu_3 \mu_6)+\mu_2^2 \left(\mu_4^2+\mu_6^2\right)}}$$

And if we let

$$g=\sqrt{(\mu_2 \mu_6-\mu_3 \mu_5)^2+(\mu_3 \mu_4+\mu_1 \mu_6)^2+(\mu_1 \mu_5-\mu_2 \mu_4)^2}$$

(which is the form of the random variable of interest but with the respective means plugged in), then the approximate mean can be written as

$$g+\frac{\left(\mu_1^2+\mu_2^2+\mu_3^2+\mu_4^2+\mu_5^2+\mu_6^2\right) \sigma^2}{2 g}$$

Now...is this approximation precise enough? Here's an example.

(* Set mean of x[1],...,x[6] *)
xMeans = {1, 2, 3, 3, 7, 5};
\[Mu]Values = Thread[{\[Mu][1], \[Mu][2], \[Mu][3], \[Mu][4], \[Mu][5], \[Mu][6]} -> xMeans]
(* Get a variance satisfying the OP's restriction *)
\[Sigma]X = 0.01 Min[1^2 + 2^2 + 3^2, 3^2 + 7^2 + 5^2]^0.5
(* 0.0374166 *)

(* 2nd order Taylor approximation to mean *)
mean /. \[Mu]Values /. \[Sigma] -> \[Sigma]X
(* 11.7531 *)

(* Estimation of mean by simulations *)
SeedRandom[12345];
n = 10000;
xbar = 0;
Do[xx = RandomVariate[NormalDistribution[0, 1], 6];
xx = xMeans + \[Sigma]X*xx;
xbar = xbar +
Sqrt[(xx[[2]] xx[[6]] - xx[[3]] xx[[5]])^2 +
(xx[[3]] xx[[4]] - xx[[1]] xx[[6]])^2 +
(xx[[1]] xx[[5]] - xx[[2]] xx[[4]])^2],
{i, n}]
xbar = xbar/n
(* 11.7543 *)

(* Approximate relative precision *)
(xbar - mean /. \[Mu]Values /. \[Sigma] -> \[Sigma]X)/xbar
(* 0.000103943 *)


If this approximation is not good enough, then you might want to try a higher order Taylor series approximation. Alternatively, finding an approximation for the mean by generating lots of random samples with known values for the parameters is pretty quick, too.

• The solution diverges if vectors become parallel. It cannot be applied in the case that is described here: math.stackexchange.com/questions/3520115/… – granular bastard Jan 27 '20 at 4:46
• It might just be that estimating the mean through random samples is the way to go which doesn't take too much computer time if you just have to do a few of these. – JimB Jan 28 '20 at 14:37
• A computer simulation might help for a few cases but not in general. – granular bastard Jan 28 '20 at 14:41
• Why the replacement must be performed in the given way? mean = taylor //. z[i_]^2 -> [Sigma]^2 + [Mu][i]^2; – granular bastard Jan 11 at 19:18
• Do you have an alternative in mind? – JimB Jan 11 at 19:49