Changeset 73bf20ce in tol
- Timestamp:
- Mar 19, 2009, 9:21:58 AM (18 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- 9fc2160
- Parents:
- 1fa10aa
- File:
-
- 1 edited
-
tol/bmath/bstat/arma.cpp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tol/bmath/bstat/arma.cpp
r1fa10aa r73bf20ce 1462 1462 { 1463 1463 int mxpq = Maximum(p_,q_); 1464 int m = w_.Rows(); 1465 BDat s2 = sigma^2; 1466 if(mxpq==0) 1467 { 1468 a_ = w_; 1469 a0_.Alloc(0,0); 1470 w0_.Alloc(0,0); 1471 ata_ = MtMSqr(a_)(0,0); 1472 wtCoviw_ = ata_ ; 1473 aCovDetN_ = 0; 1474 logLikelihood_ = -0.5*( m*Log(2*BDat::Pi()*s2)+wtCoviw_/s2); 1475 return(true); 1476 } 1464 1477 if(!CheckStationary()) { return(false); } 1465 1478 if(!CalcAutoCovarianze(mxpq)) { return(false); } … … 1468 1481 BPolyn<BDat>& ma = prod_.ma_; 1469 1482 BVMat z; z.DMat2VMat((BMatrix<double>&)w_); 1470 BDat s2 = sigma^2;1471 int m = w_.Rows();1472 1483 int q_p = q_+p_; 1473 1484 … … 1480 1491 BPolyn<BDat> ma0 = (BPolyn<BDat>::F()^q_)*(ma-BPolyn<BDat>::One()); 1481 1492 1482 BVMat cov_zz; cov_zz.BPol2sparse(gamma, p_, p_); 1483 BVMat cov_aa; cov_aa.Eye(q_); 1484 BVMat cov_za; cov_za.BPol2sparse(psi, p_, q_); 1485 BVMat cov_az; BVMat::T(cov_za, cov_az); 1486 BVMat cov_u = (cov_zz | cov_za) << 1487 (cov_az | cov_aa); 1493 BVMat cov_u; 1494 1495 if(p_ && q_) 1496 { 1497 BVMat cov_zz; cov_zz.BPol2sparse(gamma, p_, p_); 1498 BVMat cov_aa; cov_aa.Eye(q_); 1499 BPolyn<BDat> psi_; 1500 psi.ChangeBF(psi_); 1501 psi_ = psi_ * (BPolyn<BDat>::B()^Maximum(0,q_-p_)); 1502 BVMat cov_za; 1503 if(q_>=p_) 1504 { 1505 cov_za.BPol2sparse(psi_, q_, p_); 1506 } 1507 else 1508 { 1509 BVMat zeros; 1510 zeros.Zeros(q_,p_-q_,BVMat::ESC_chlmRsparse); 1511 cov_za.BPol2sparse(psi_, q_, q_); 1512 cov_za = zeros | cov_za; 1513 } 1514 BVMat cov_az; BVMat::T(cov_za, cov_az); 1515 cov_u = (cov_zz | cov_za) << 1516 (cov_az | cov_aa); 1517 } 1518 else if(!p_ && q_) 1519 { 1520 cov_u.Eye(q_); 1521 } 1522 if(p_ && !q_) 1523 { 1524 cov_u.BPol2sparse(gamma, p_, p_); 1525 } 1488 1526 1489 1527 BVMat eye_qp; eye_qp.Eye(q_p); … … 1509 1547 BVMat u; BVMat::CholeskiSolve(L_G,G_pi_z,u,BVMat::ECSS_LLt); 1510 1548 1511 BVMat z0; u.Sub(0, 0, p_, 1, z0);1549 BVMat w0; u.Sub(0, 0, p_, 1, w0); 1512 1550 BVMat a0; u.Sub(p_, 0, q_, 1, a0); 1513 1551 a0.GetDMat((BMatrix<double>&)a0_); 1514 z0.GetDMat((BMatrix<double>&)w0_);1552 w0.GetDMat((BMatrix<double>&)w0_); 1515 1553 1516 1554 BVMat v; BVMat::CholeskiSolve(L_u,u,v,BVMat::ECSS_L); 1517 BVMat a; BVMat::DifEq(ar_ma, z0,z,a0,a,0.8,1.E-17);1555 BVMat a; BVMat::DifEq(ar_ma,w0,z,a0,a,0.8,1.E-17); 1518 1556 a.GetDMat((BMatrix<double>&)a_); 1519 1557
Note: See TracChangeset
for help on using the changeset viewer.
