close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 16 years ago

Last modified 10 years ago

#621 closed defect

Wrong behaviour in BackDifEq of VMatrix — at Version 1

Reported by: Víctor de Buen Remiro Owned by: Víctor de Buen Remiro
Priority: normal Milestone:
Component: Math Version:
Severity: blocker Keywords:
Cc:

Description (last modified by Víctor de Buen Remiro)

Function BackDifEq of VMatrix doesn't works fine.
Running this random check for Matrix and VMatrix BackDifEq instances returns different results being the second ones missing sometimes or very large numbers in other cases.

Real m = 300;
Real  s1 = 5;
Real  s2 = 26;
Real  p1 = IntRand(1,2);
Real  q1 = IntRand(0,2);
Real  p2 = IntRand(1,1);
Real  q2 = IntRand(0,1);
Polyn ar1 = RandStationary(p1,s1);
Polyn ar2 = RandStationary(p2,s2);
Polyn ma1 = RandStationary(q1,s1);
Polyn ma2 = RandStationary(q2,s2);
Polyn ar = ar1*ar2;
Polyn ma = ma1*ma2;

Real p = Degree(ar);
Real q = Degree(ma);
Real n = Max(p,q);


NameBlock CF1 = ARMAProcess::FastCholeskiCovFactor(ar1, ma1, m);
NameBlock CF2 = ARMAProcess::FastCholeskiCovFactor(ar2, ma2, m);
NameBlock CF  = ARMAProcess::FastCholeskiCovFactor(ar,  ma,  m);

VMatrix A = Gaussian(m,1,0,1);

VMatrix Li_ar.f = CholeskiFactor(CF::_.Li_ar,"XXt",True);

VMatrix L_ma.s  = Convert(CF::_.L_ma,"Cholmod.R.Sparse");

VMatrix X = CholeskiSolve(Li_ar.f,L_ma.s*A,"PtL");

VMatrix CF.X = CF::filter(X);

VMatrix cmp.CF   = A | CF.X;

VMatrix CF12.X = CF2::filter(CF1::filter(X));

VMatrix A.n   = Sub(CF12.X, m-n+1, 1, n,  1);
VMatrix A.q   = Sub(CF12.X, m-n+1, 1, q,  1);
VMatrix X.p   = Sub(X,      m-n+1, 1, p,  1);
VMatrix X.m_n = Sub(X,          1, 1, m-n,1);
VMatrix A.m_n = BackDifEq(ar/ma,X.m_n,X.p,A.q);

VMatrix A.m_n_ = Mat2VMat(BackDifEq(ar/ma,VMat2Mat(X.m_n),VMat2Mat(X.p),VMat2Mat(A.q)));

Real error = VMatMax(Abs(A.m_n-A.m_n_));
Real quality = Max(0,1-error);

Change History (1)

comment:1 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)
Note: See TracTickets for help on using tickets.