Beispiel #1
0
coord = (X.flatten(), Y.flatten())

tauConv = tauDim * timeScaleConversion
postfix = "%s_tau%03d" % (gridPostfix, tauDim * 1000)

print 'Readig spectrum...'
EigValForwardFile = '%s/eigval/eigValForward_nev%d%s.txt' % (cfg.general.specDir, nev, postfix)
EigVecForwardFile = '%s/eigvec/eigVecForward_nev%d%s.txt' % (cfg.general.specDir, nev, postfix)
EigValBackwardFile = '%s/eigval/eigValBackward_nev%d%s.txt' \
                    % (cfg.general.specDir, nev, postfix)
EigVecBackwardFile = '%s/eigvec/eigVecBackward_nev%d%s.txt' \
                    % (cfg.general.specDir, nev, postfix)
statDist = np.loadtxt('%s/transfer/initDist/initDist%s.txt' % (cfg.general.resDir, gridPostfix))
(eigValForward, eigVecForward, eigValBackward, eigVecBackward) \
    = ergoPlot.readSpectrum(EigValForwardFile, EigVecForwardFile,
                            EigValBackwardFile, EigVecBackwardFile,
                            statDist, makeBiorthonormal=False)

print 'Getting conditionning of eigenvectors...'
eigenCondition = ergoPlot.getEigenCondition(eigVecForward, eigVecBackward, statDist)

# Get generator eigenvalues
eigValGen = (np.log(np.abs(eigValForward)) + np.angle(eigValForward)*1j) / tauConv

# Plot eigenvectors
alpha = 0.01
for ev in np.arange(nevPlot):
    print 'Plotting real part of eigenvector %d...' % (ev+1,)
    ergoPlot.plot2D(X, Y, eigVecForward[:, ev].real, ev_xlabel, ev_ylabel, alpha)
    plt.savefig('%s/spectrum/eigvec/eigVecForwardReal_nev%d_ev%03d%s.%s' \
                % (cfg.general.plotDir, nev, ev+1, postfix, ergoPlot.figFormat),
Beispiel #2
0
coord = (X.flatten(), Y.flatten())

tauConv = tauDim * timeScaleConversion
postfix = "%s_tau%03d" % (gridPostfix, tauDim * 1000)

print 'Readig spectrum...'
EigValForwardFile = '%s/eigval/eigValForward_nev%d%s.txt' % (cfg.general.specDir, nev, postfix)
EigVecForwardFile = '%s/eigvec/eigVecForward_nev%d%s.txt' % (cfg.general.specDir, nev, postfix)
EigValBackwardFile = '%s/eigval/eigValBackward_nev%d%s.txt' \
                    % (cfg.general.specDir, nev, postfix)
EigVecBackwardFile = '%s/eigvec/eigVecBackward_nev%d%s.txt' \
                    % (cfg.general.specDir, nev, postfix)
statDist = np.loadtxt('%s/transitionMatrix/initDist%s.txt' % (cfg.general.resDir, postfix))
(eigValForward, eigVecForward, eigValBackward, eigVecBackward) \
    = ergoPlot.readSpectrum(nev, EigValForwardFile, EigVecForwardFile,
                            EigValBackwardFile, EigVecBackwardFile, statDist,
                            makeBiorthonormal=False)

print 'Getting conditionning of eigenvectors...'
eigenCondition = ergoPlot.getEigenCondition(eigVecForward, eigVecBackward, statDist)

# Get generator eigenvalues
eigValGen = (np.log(np.abs(eigValForward)) + np.angle(eigValForward)*1j) / tauConv

# Plot eigenvectors
alpha = 0.01
for ev in np.arange(nevPlot):
    print 'Plotting real part of eigenvector %d...' % (ev+1,)
    ergoPlot.plot2D(X, Y, eigVecForward[:, ev].real, ev_xlabel, ev_ylabel, alpha)
    plt.savefig('%s/spectrum/eigvec/eigVecForwardReal_nev%d_ev%03d%s.%s' \
                % (cfg.general.plotDir, nev, ev+1, postfix, ergoPlot.figFormat),
Beispiel #3
0
    EigVecForwardFile = '%s/eigvec/eigVecForward_nev%d%s.txt' \
                        % (cfg.general.specDir, cfg.spectrum.nev, postfix)
    EigValBackwardFile = '%s/eigval/eigValBackward_nev%d%s.txt' \
                        % (cfg.general.specDir, cfg.spectrum.nev, postfix)
    EigVecBackwardFile = '%s/eigvec/eigVecBackward_nev%d%s.txt' \
                        % (cfg.general.specDir, cfg.spectrum.nev, postfix)

    # Read stationary distribution
    statDist = np.loadtxt('%s/transfer/initDist/initDist%s.txt' \
                          % (cfg.general.resDir, postfix))

    # Read transfer operator spectrum from file and create a bi-orthonormal basis
    # of eigenvectors and adjoint eigenvectors:
    print 'Readig spectrum of tau = ', tau
    (eigValForward, eigVecForward, eigValBackward, eigVecBackward) \
        = ergoPlot.readSpectrum(cfg.spectrum.nev, EigValForwardFile, EigVecForwardFile,
                                EigValBackwardFile, EigVecBackwardFile, statDist)
    # Save eigenvalues
    eigVal[lag] = eigValForward.copy()
    # Get generator eigenvalues
    eigValGen[lag] = (np.log(np.abs(eigValForward)) + np.angle(eigValForward)*1j) / tauConv
    # Get condition number
    eigenCondition[lag] = ergoPlot.getEigenCondition(eigVecForward, eigVecBackward,
                                                     statDist)

    print 'lag ', lag
    print eigVal[lag]
    print eigValGen[lag]
    print eigenCondition[lag]

    # Smoothen
    # if lag > 0:
Beispiel #4
0
# Read mask
if maskFile is not None:
    if fileFormat == 'bin':
        mask = np.fromfile(maskFile, np.int32)
    else:
        mask = np.loadtxt(maskFile, np.int32)
else:
    mask = np.arange(N)
NFilled = np.max(mask[mask < N]) + 1

# Read transfer operator spectrum from file and create a bi-orthonormal basis
# of eigenvectors and backward eigenvectors:
print 'Readig spectrum for tauDim = %.3f...' % tauDim
(eigValForward, eigValBackward, eigVecForward, eigVecBackward) \
    = ergoPlot.readSpectrum(eigValForwardFile, eigValBackwardFile,
                            eigVecForwardFile, eigVecBackwardFile,
                            makeBiorthonormal=~cfg.spectrum.makeBiorthonormal,
                            fileFormat=fileFormat)

# Plot eigenvectors of transfer operator
alpha = 0.05
os.system('mkdir %s/spectrum/eigvec 2> /dev/null' % cfg.general.plotDir)

coordCut = 1
coordPlot = (coordCut + 1) % dimObs
cutVal = (coord[coordCut][mask < N] * statDist).sum()
idCut0 = np.argmin(np.abs(coord[coordCut] - cutVal))
idCut = np.abs(coord[1] - coord[1][idCut0]) < 1.e-6
xx = coord[coordPlot][idCut]

# Figure for the phase
figPhase = plt.figure()
Beispiel #5
0
    EigVecForwardFile = '%s/eigvec/eigVecForward_nev%d%s.txt' \
                        % (cfg.general.specDir, cfg.spectrum.nev, postfix)
    EigValBackwardFile = '%s/eigval/eigValBackward_nev%d%s.txt' \
                        % (cfg.general.specDir, cfg.spectrum.nev, postfix)
    EigVecBackwardFile = '%s/eigvec/eigVecBackward_nev%d%s.txt' \
                        % (cfg.general.specDir, cfg.spectrum.nev, postfix)

    # Read stationary distribution
    statDist = np.loadtxt('%s/transfer/initDist/initDist%s.txt' \
                          % (cfg.general.resDir, postfix))

    # Read transfer operator spectrum from file and create a bi-orthonormal basis
    # of eigenvectors and adjoint eigenvectors:
    print 'Readig spectrum of tau = ', tau
    (eigValForward, eigVecForward, eigValBackward, eigVecBackward) \
        = ergoPlot.readSpectrum(cfg.spectrum.nev, EigValForwardFile, EigVecForwardFile,
                                EigValBackwardFile, EigVecBackwardFile, statDist)
    # Save eigenvalues
    eigVal[lag] = eigValForward.copy()
    # Get generator eigenvalues
    eigValGen[lag] = (np.log(np.abs(eigValForward)) + np.angle(eigValForward)*1j) / tauConv
    # Get condition number
    eigenCondition[lag] = ergoPlot.getEigenCondition(eigVecForward, eigVecBackward,
                                                     statDist)

    print 'lag ', lag
    print eigVal[lag]
    print eigValGen[lag]
    print eigenCondition[lag]

    # Smoothen
    # if lag > 0:
               % (cfg.general.resDir, gridPostfix)
if unfold:
    tauUnfold = tauDimUnfold * timeScaleConversion
    postfixUnfold = "%s_tau%03d" % (gridPostfix, tauDimUnfold * 1000)
    eigValForwardFileUnfold = '%s/eigval/eigvalForward_nev%d%s.txt' \
                              % (cfg.general.specDir, nev, postfixUnfold)
    eigVecForwardFileUnfold = '%s/eigvec/eigvecForward_nev%d%s.txt' \
                              % (cfg.general.specDir, nev, postfixUnfold)
    tauMax = np.max([tau, tauUnfold])

# Read transfer operator spectrum from file and create a bi-orthonormal basis
# of eigenvectors and backward eigenvectors:
print 'Readig spectrum for tauDim = %.3f...' % tauDim
(eigValForward, eigValBackward, statDist, eigVecForward, eigVecBackward) \
    = ergoPlot.readSpectrum(eigValForwardFile, eigValBackwardFile, statDistFile,
                            eigVecForwardFile, eigVecBackwardFile,
                            makeBiorthonormal=~cfg.spectrum.makeBiorthonormal)

print 'Getting conditionning of eigenvectors...'
eigenCondition = ergoPlot.getEigenCondition(eigVecForward, eigVecBackward,
                                            statDist)

eigValGenOrig = ergoPlot.eig2Generator(eigValForward, tau)

# Read unfolding eigenvalues
#eigValForwardUnfold = None
st = statDist.copy()
st2 = np.concatenate((st, st))
if unfold:
    print 'Readig spectrum for tauDimUnfold = %.3f to unfold...' % tauDimUnfold
    (eigValForwardUnfold,) \
Beispiel #7
0
eigValForwardFile = '%s/eigval/eigvalForward_nev%d%s.txt' \
                    % (cfg.general.specDir, cfg.spectrum.nev, postfix)
eigVecForwardFile = '%s/eigvec/eigvecForward_nev%d%s.txt' \
                    % (cfg.general.specDir, cfg.spectrum.nev, postfix)
eigValBackwardFile = '%s/eigval/eigvalBackward_nev%d%s.txt' \
                    % (cfg.general.specDir, cfg.spectrum.nev, postfix)
eigVecBackwardFile = '%s/eigvec/eigvecBackward_nev%d%s.txt' \
                    % (cfg.general.specDir, cfg.spectrum.nev, postfix)
statDistFile = '%s/transfer/initDist/initDist%s.txt' % (cfg.general.resDir, gridPostfix)

# Read transfer operator spectrum from file and create a bi-orthonormal basis
# of eigenvectors and backward eigenvectors:
print 'Readig spectrum for tau = %.3f...' % tau
(eigValForward, eigValBackward, statDist, eigVecForward, eigVecBackward) \
    = ergoPlot.readSpectrum(eigValForwardFile, eigValBackwardFile, statDistFile,
                            eigVecForwardFile, eigVecBackwardFile,
                            makeBiorthonormal=~cfg.spectrum.makeBiorthonormal)

print 'Getting conditionning of eigenvectors...'
eigenCondition = ergoPlot.getEigenCondition(eigVecForward, eigVecBackward, statDist)

# Get generator eigenvalues
eigValGen = (np.log(np.abs(eigValForward)) + np.angle(eigValForward)*1j) / tau


# Plot eigenvectors of transfer operator
alpha = 0.01
for ev in np.arange(nevPlot):
    print 'Plotting real part of eigenvector %d...' % (ev + 1,)
    #ergoPlot.plot2D(X, Y, eigVecForward[:, ev].real, ev_xlabel, ev_ylabel, alpha)
    ergoPlot.plot2D(X, Y, eigVecForward[:, ev].real, ev_xlabel, ev_ylabel, alpha)