3
$\begingroup$

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}$$

$\endgroup$
  • 1
    $\begingroup$ Shall we assume nothing about the nine means? It may help many readers to explain the origin of this problem. $\endgroup$ – whuber Jan 17 at 0:06
  • 1
    $\begingroup$ Related: mathematica.stackexchange.com/questions/212984/… $\endgroup$ – JimB Jan 17 at 0:32
  • $\begingroup$ 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? $\endgroup$ – JimB Jan 17 at 0:35
  • $\begingroup$ 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. $\endgroup$ – JimB Jan 17 at 0:39
  • 1
    $\begingroup$ 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. $\endgroup$ – whuber Jan 21 at 20:26
1
$\begingroup$

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.

| cite | improve this answer | |
$\endgroup$
  • $\begingroup$ The solution diverges if vectors become parallel. It cannot be applied in the case that is described here: math.stackexchange.com/questions/3520115/… $\endgroup$ – granular bastard Jan 27 at 4:46
  • $\begingroup$ 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. $\endgroup$ – JimB Jan 28 at 14:37
  • $\begingroup$ A computer simulation might help for a few cases but not in general. $\endgroup$ – granular bastard Jan 28 at 14:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.