butools.trace.LagCorrelationsFromTrace ====================================== .. currentmodule:: butools.trace .. np:function:: LagkJointMomentsFromTrace .. list-table:: :widths: 25 150 * - Matlab: - :code:`Nm = LagkJointMomentsFromTrace(trace, K, L)` * - Mathematica: - :code:`Nm = LagkJointMomentsFromTrace[trace, K, L]` * - Python/Numpy: - :code:`Nm = LagkJointMomentsFromTrace(trace, K, L)` Returns the lag-L joint moments of a trace. It is computed as :math:`Nm_{i,j}=\frac{1}{N-L}\sum_{k=0}^{N-L} x_k^i x_{k+L}^j`. Parameters ---------- trace : vector of doubles The trace data K : int The joint moments are computed up to order K L : int, optional The lag-L joint moments are computed. The default value is 1. Returns ------- Nm : matrix, shape (K,K) The matrix of joint moments, starting from moment 0 Examples ======== For Matlab: >>> D0 = [-18., 1., 4.; 2., -18., 7.; 1., 3., -32.]; >>> D1 = [12., 1., 0.; 1., 8., 0.; 2., 1., 25.]; >>> tr = SamplesFromMAP(D0, D1, 1000000); >>> Nm1 = LagkJointMomentsFromTrace(tr, 3, 1); >>> disp(Nm1); 1 0.054231 0.0064413 0.0012077 0.054231 0.0030911 0.0003777 7.1599e-05 0.0064413 0.00037728 4.6603e-05 8.8002e-06 0.0012077 7.1519e-05 8.8317e-06 1.6498e-06 >>> mNm1 = LagkJointMomentsFromMAP(D0, D1, 3, 1); >>> disp(mNm1); 1 0.054124 0.006423 0.0012051 0.054124 0.0030736 0.00037516 7.1415e-05 0.006423 0.00037515 4.6507e-05 8.9222e-06 0.0012051 7.141e-05 8.9217e-06 1.7182e-06 >>> Nm2 = LagkJointMomentsFromTrace(tr, 3, 2); >>> disp(Nm2); 1 0.054231 0.0064413 0.0012077 0.054231 0.0030213 0.00036415 6.8624e-05 0.0064414 0.00036417 4.4121e-05 8.2941e-06 0.0012077 6.8666e-05 8.2925e-06 1.5427e-06 >>> mNm2 = LagkJointMomentsFromMAP(D0, D1, 3, 2); >>> disp(mNm2); 1 0.054124 0.006423 0.0012051 0.054124 0.0030061 0.00036221 6.8492e-05 0.006423 0.0003622 4.4024e-05 8.361e-06 0.0012051 6.8486e-05 8.3605e-06 1.5913e-06 For Mathematica: >>> D0 = {{-18., 1., 4.},{2., -18., 7.},{1., 3., -32.}}; >>> D1 = {{12., 1., 0.},{1., 8., 0.},{2., 1., 25.}}; >>> tr = SamplesFromMAP[D0, D1, 1000000]; >>> Nm1 = LagkJointMomentsFromTrace[tr, 3, 1]; >>> Print[Nm1]; {{0.9999999999999999, 0.054181763414703425, 0.006436126028096859, 0.001209503367099609}, {0.05418178769739075, 0.0030824084601095082, 0.0003777159956804523, 0.00007229664686244973}, {0.006436128687289603, 0.0003761680485188565, 0.000046934053172478785, 9.117977895566016*^-6}, {0.0012095035890849577, 0.00007146509506006994, 8.980157356707658*^-6, 1.757755508889203*^-6}} >>> mNm1 = LagkJointMomentsFromMAP[D0, D1, 3, 1]; >>> Print[mNm1]; {{0.9999999999999999, 0.05412371134020618, 0.006422964827970543, 0.0012051464807476151}, {0.05412371134020619, 0.003073620766248536, 0.00037515737277240353, 0.00007141546318369872}, {0.006422964827970543, 0.00037514535310362654, 0.00004650658040311765, 8.922181605812488*^-6}, {0.0012051464807476154, 0.00007141014408564581, 8.921682366795789*^-6, 1.7182218615497802*^-6}} >>> Nm2 = LagkJointMomentsFromTrace[tr, 3, 2]; >>> Print[Nm2]; {{0.9999999999999999, 0.054181814264514565, 0.006436132453133154, 0.0012095045765684006}, {0.054181837668556554, 0.003016453025594649, 0.00036342958169036224, 0.00006866299525753246}, {0.00643613510570095, 0.000364222008238514, 0.00004423570251759418, 8.37523546900498*^-6}, {0.001209504798516309, 0.00006885089738680504, 8.362939150665785*^-6, 1.5781869218607331*^-6}} >>> mNm2 = LagkJointMomentsFromMAP[D0, D1, 3, 2]; >>> Print[mNm2]; {{1., 0.05412371134020619, 0.006422964827970542, 0.0012051464807476151}, {0.05412371134020619, 0.003006103416321288, 0.0003622134317753621, 0.00006849168910817987}, {0.006422964827970543, 0.00036220135459620823, 0.00004402357332096537, 8.361000663626873*^-6}, {0.0012051464807476154, 0.00006848634455989706, 8.36049903590675*^-6, 1.5913203311752349*^-6}} For Python/Numpy: >>> D0 = ml.matrix([[-18., 1., 4.],[2., -18., 7.],[1., 3., -32.]]) >>> D1 = ml.matrix([[12., 1., 0.],[1., 8., 0.],[2., 1., 25.]]) >>> tr = SamplesFromMAP(D0, D1, 1000000) >>> Nm1 = LagkJointMomentsFromTrace(tr, 3, 1) >>> print(Nm1) [[ 1.00000e+00 5.41472e-02 6.42593e-03 1.20511e-03] [ 5.41473e-02 3.07546e-03 3.75237e-04 7.12258e-05] [ 6.42593e-03 3.75451e-04 4.64806e-05 8.87509e-06] [ 1.20511e-03 7.14549e-05 8.89829e-06 1.70148e-06]] >>> mNm1 = LagkJointMomentsFromMAP(D0, D1, 3, 1) >>> print(mNm1) [[ 1.00000e+00 5.41237e-02 6.42296e-03 1.20515e-03] [ 5.41237e-02 3.07362e-03 3.75157e-04 7.14155e-05] [ 6.42296e-03 3.75145e-04 4.65066e-05 8.92218e-06] [ 1.20515e-03 7.14101e-05 8.92168e-06 1.71822e-06]] >>> Nm2 = LagkJointMomentsFromTrace(tr, 3, 2) >>> print(Nm2) [[ 1.00000e+00 5.41472e-02 6.42593e-03 1.20511e-03] [ 5.41472e-02 3.00173e-03 3.61013e-04 6.79513e-05] [ 6.42591e-03 3.60964e-04 4.37219e-05 8.21233e-06] [ 1.20511e-03 6.82216e-05 8.30943e-06 1.55532e-06]] >>> mNm2 = LagkJointMomentsFromMAP(D0, D1, 3, 2) >>> print(mNm2) [[ 1.00000e+00 5.41237e-02 6.42296e-03 1.20515e-03] [ 5.41237e-02 3.00610e-03 3.62213e-04 6.84917e-05] [ 6.42296e-03 3.62201e-04 4.40236e-05 8.36100e-06] [ 1.20515e-03 6.84863e-05 8.36050e-06 1.59132e-06]]