本文整理汇总了Python中scipy.linalg.svdvals函数的典型用法代码示例。如果您正苦于以下问题:Python svdvals函数的具体用法?Python svdvals怎么用?Python svdvals使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了svdvals函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: format_eig_svd
def format_eig_svd():
def format_cplx(z):
if z.imag < 1e-300:
return '{0:.4f}'.format(z.real)
return '{0:.4f}+{1:.4f}i'.format(z.real, z.imag)
eig12 = sp.eigvals(generate_matrix(12))
svd12 = sp.svdvals(generate_matrix(12))
eig25 = sp.eigvals(generate_matrix(25))
svd25 = sp.svdvals(generate_matrix(25))
result12 = r'\begin{tabular}{cc}' + '\n'
result12 += r' Eigenvalues&Singular values\\' + '\n'
result12 += ' \\hline\n'
result25 = copy.copy(result12)
for k in range(25):
if k < 12:
result12 += r' ${0}$&${1:.4f}$\\'.format(format_cplx(eig12[k]), svd12[k]) + '\n'
result25 += r' ${0}$&${1:.4f}$\\'.format(format_cplx(eig25[k]), svd25[k]) + '\n'
result12 += '\\end{tabular}\n'
result25 += '\\end{tabular}\n'
print(result12)
print(result25)
示例2: _EFA_fired
def _EFA_fired(self):
#number of singular values to track
singvals = 3
#Time
rows = Data.TrA_Data.shape[0]
forward_r = np.zeros((rows,singvals))
backward_r = np.zeros((rows,singvals))
stepl_r = rows-singvals
#Forward
#Must start with number of tracked singular values in order to intially generate 10 SV
for i in range(singvals,rows):
partsvd = linalg.svdvals(Data.TrA_Data[:i,:]).T
forward_r[i,:] = partsvd[:singvals]
#Backwards
for i in range(0,stepl_r):
j = (rows-singvals)-i
partsvd = linalg.svdvals(Data.TrA_Data[j:,:]).T
backward_r[j,:] = partsvd[:singvals]
plt.figure()
plt.semilogy(Data.time[singvals:],forward_r[singvals:,:],'b',Data.time[:(rows-singvals)],backward_r[:(rows-singvals),:],'r')
plt.title("%s EFA time" %(self.title))
plt.xlabel("Time (ps)")
plt.ylabel("Log(EV)")
plt.show()
#Wavelength
cols = Data.TrA_Data.shape[1]
forward_c = np.zeros((cols,singvals))
backward_c = np.zeros((cols,singvals))
stepl_c = cols-singvals
#Forward
#Must start with number of tracked singular values in order to intially generate 10 SV
for i in range(singvals,cols):
partsvd = linalg.svdvals(Data.TrA_Data[:,:i])
forward_c[i,:] = partsvd[:singvals]
#Backwards
for i in range(0,stepl_c):
j = (cols-singvals)-i
partsvd = linalg.svdvals(Data.TrA_Data[:,j:])
backward_c[j,:] = partsvd[:singvals]
plt.figure()
plt.semilogy(Data.wavelength[singvals:],forward_c[singvals:,:],'b',Data.wavelength[:cols-singvals],backward_c[:cols-singvals,:],'r')
plt.title("%s EFA wavelength" %(self.title))
plt.xlabel("Wavelength (nm)")
plt.ylabel("Log(EV)")
plt.show()
示例3: test_trace_1
def test_trace_1():
B = np.ones((3, 3))
X = np.random.randn(100, 9)
y = np.dot(X, B.ravel('F')) + .1 * np.random.randn(100)
alpha = 10.
B_, _ = mt.trace(X, y, alpha, 0., (3, 3), rtol=1e-10)
# KKT conditions
grad = - np.dot(X.T, y - np.dot(X, B_.ravel('F')))
M = (grad / alpha).reshape(B.shape, order='F')
assert np.all(linalg.svdvals(M) < 1. + 1e-3)
testing.assert_allclose(np.dot(M.ravel('F'), B_.ravel('F')),
- linalg.svdvals(B_).sum())
示例4: sample_moments
def sample_moments( X, k ):
"""Get the sample moments from data"""
N, d = X.shape
# Partition X into two halves to independently estimate M2 and M3
X1, X2 = X[:N/2], X[N/2:]
# Get the moments
M1 = X1.mean(0)
M1_ = X2.mean(0)
M2 = Pairs( X1, X1 )
M3 = lambda theta: TriplesP( X2, X2, X2, theta )
#M3 = Triples( X2, X2, X2 )
# TODO: Ah, not computing sigma2!
# Estimate \sigma^2 = k-th eigenvalue of M2 - mu mu^T
sigma2 = svdvals( M2 - outer( M1, M1 ) )[k-1]
assert( sc.isreal( sigma2 ) and sigma2 > 0 )
# P (M_2) is the best kth rank apprximation to M2 - sigma^2 I
P = approxk( M2 - sigma2 * eye( d ), k )
B = matrix_tensorify( eye(d), M1_ )
T = lambda theta: M3(theta) - sigma2 * ( M1_.dot(theta) * eye( d ) + outer( M1_, theta ) + outer( theta, M1_ ) )
#T = M3 - sigma2 * ( B + B.swapaxes(2, 1) + B.swapaxes(2, 0) )
return P, T
示例5: rank
def rank(X, cond=1.0e-12):
X = np.asarray(X)
if len(X.shape) == 2:
D = svdvals(X)
return int(np.add.reduce(np.greater(D / D.max(), cond).astype(np.int32)))
else:
return int(not np.alltrue(np.equal(X, 0.0)))
示例6: sweep_fidelity
def sweep_fidelity(kets,direction):
'''
Sweep fidelity.
'''
bra=kets[0].tobra(labels=[kets[0].labels[0],kets[0].labels[1]+'\''])
ket=kets[1]
if direction=='->':
[keti<<keti.l-1 for keti in [bra,ket]]
step=1
clink_axis=kets[0].llink_axis
attach_S='A'
edge_labels=[bra.AL[0].labels[clink_axis],ket.AL[0].labels[clink_axis]]
else:
step=-1
clink_axis=kets[0].rlink_axis
attach_S='B'
[keti>>keti.nsite-1-keti.l for keti in [bra,ket]]
edge_labels=[bra.BL[-1].labels[clink_axis],ket.BL[-1].labels[clink_axis]]
Ri=tensor.Tensor(identity(1),labels=edge_labels)
fs=[1]
for i in xrange(ket.nsite):
sitei=i if direction=='->' else ket.nsite-i-1
Ri=(bra.get(sitei,attach_S=attach_S)*Ri*ket.get(sitei,attach_S=attach_S))
S=svdvals(Ri)
fs.append(sum(S))
print i,sum(S)
if direction=='<-':
fs.reverse()
return fs
示例7: add_consts
def add_consts( self, key, A, k=-1, ntype=None ):
"""Print the error between two objects"""
if ntype is None:
self.add( "norm_%s" % key, norm( A ) )
else:
self.add( "norm_%s_%s" % (key, str(ntype)), norm( A, ntype ) )
if ntype == 2:
if k > 0:
self.add( "s_k_%s" % key, svdvals(A)[k-1] )
else:
self.add( "s_k_%s" % key, svdvals(A)[-1] )
self.add( "K_%s" % key, condition_number( A, k ) )
if A.shape[0] == A.shape[1]:
self.add( "D_%s" % key, eigen_sep( A, k ) )
示例8: schmidt_vals
def schmidt_vals(dw,aas,aai,eps,deltaw,f):
"""
Args:
dw: size of the grid spacing
aas=relative slowness of the signal mode
aai=relative slowness of the idler mode
lnl=inverse of the strength of the nonlinearity
deltaw: specifies the size of the frequency grid going from
-deltaw to deltaw for each frequency
f: shape of the pump function
"""
ddws=np.arange(-deltaw-dw/2,deltaw+dw/2,dw)
deltaks=aas*ddws
ddwi=np.arange(-deltaw-dw/2,deltaw+dw/2,dw)
deltaki=aai*ddwi
ds=np.diag(deltaks)
di=np.diag(deltaki)
def ff(x,y):
return f(x+y)
v=eps*(dw)*ff(ddwi[:,None],ddws[None,:])
G=1j*np.concatenate((np.concatenate((ds,v),axis=1),np.concatenate((-v,-di),axis=1)),axis=0)
z=1;
dsi=np.concatenate((deltaks,-deltaki),axis=0)
U0=linalg.expm(-1j*np.diag(dsi)*z/2)
GG=np.dot(np.dot(U0,linalg.expm(G)),U0)
n=len(ddws)
C=GG[0:n,n:2*n]
na=np.dot(np.conj(np.transpose(C)),C)*dw
vv=np.arcsinh(np.sqrt(np.diag(np.diag(linalg.svdvals(na))/dw)))
return vv
示例9: spectral_gap
def spectral_gap( x, k = None ):
"""Minimum difference in eigenvalues"""
# Get the singular values
s = svdvals( x )
if k is not None:
s = s[:k]
return (sc.diff( s )).min() / s[0]
示例10: test_singular_values
def test_singular_values():
from scipy.linalg import svdvals
random.seed(13811)
for n in 2,3:
A = random.randn(7,n,n)
D = fast_singular_values(A)
for a,d in zip(A,D):
assert allclose(svdvals(a),abs(d))
示例11: pca_eigvals
def pca_eigvals(d):
"""
Compute the eigenvalues of the covariance matrix of the data d. The covariance
matrix is computed as d*d^T.
"""
# remove mean of each row
d = d - np.mean(d, axis = 1)[:, np.newaxis]
return 1.0 / (d.shape[1] - 1) * svdvals(d, True)**2
示例12: condition_number
def condition_number( x, k = None ):
"""Condition number for the k-rank approximation of x"""
# Get the eigenvalues
s = svdvals( x )
if k is not None:
return s[0]/s[k-1]
else:
return s[0]/s[-1]
示例13: rank
def rank(X, cond=1.0e-12):
"""
Return the rank of a matrix X based on its generalized inverse,
not the SVD.
"""
X = np.asarray(X)
if len(X.shape) == 2:
D = svdvals(X)
return int(np.add.reduce(np.greater(D / D.max(), cond).astype(np.int32)))
else:
return int(not np.alltrue(np.equal(X, 0.)))
示例14: compute_depth_prior
def compute_depth_prior(G, gain_info, is_fixed_ori, exp=0.8, limit=10.0,
patch_areas=None, limit_depth_chs=False):
"""Compute weighting for depth prior
"""
logger.info('Creating the depth weighting matrix...')
# If possible, pick best depth-weighting channels
if limit_depth_chs is True:
G = _restrict_gain_matrix(G, gain_info)
# Compute the gain matrix
if is_fixed_ori:
d = np.sum(G ** 2, axis=0)
else:
n_pos = G.shape[1] // 3
d = np.zeros(n_pos)
for k in xrange(n_pos):
Gk = G[:, 3 * k:3 * (k + 1)]
d[k] = linalg.svdvals(np.dot(Gk.T, Gk))[0]
# XXX Currently the fwd solns never have "patch_areas" defined
if patch_areas is not None:
d /= patch_areas ** 2
logger.info(' Patch areas taken into account in the depth '
'weighting')
w = 1.0 / d
ws = np.sort(w)
weight_limit = limit ** 2
if limit_depth_chs is False:
# match old mne-python behavor
ind = np.argmin(ws)
n_limit = ind
limit = ws[ind] * weight_limit
wpp = (np.minimum(w / limit, 1)) ** exp
else:
# match C code behavior
limit = ws[-1]
n_limit = len(d)
if ws[-1] > weight_limit * ws[0]:
ind = np.where(ws > weight_limit * ws[0])[0][0]
limit = ws[ind]
n_limit = ind
logger.info(' limit = %d/%d = %f'
% (n_limit + 1, len(d),
np.sqrt(limit / ws[0])))
scale = 1.0 / limit
logger.info(' scale = %g exp = %g' % (scale, exp))
wpp = np.minimum(w / limit, 1) ** exp
depth_prior = wpp if is_fixed_ori else np.repeat(wpp, 3)
return depth_prior
示例15: test_add_indep
def test_add_indep():
x1 = np.array([0,0,0,0,0,1,1,1,2,2,2])
x2 = np.array([0,0,0,0,0,1,1,1,1,1,1])
x0 = np.ones(len(x2))
x = np.column_stack([x0, x1[:,None]*np.arange(3), x2[:,None]*np.arange(2)])
varnames = ['const'] + ['var1_%d' %i for i in np.arange(3)] \
+ ['var2_%d' %i for i in np.arange(2)]
xo, vo = add_indep(x, varnames)
assert_equal(xo, np.column_stack((x0, x1, x2)))
assert_equal((linalg.svdvals(x) > 1e-12).sum(), 3)
assert_equal(vo, ['const', 'var1_1', 'var2_1'])