本文整理汇总了Python中qutip.qobj.Qobj.full方法的典型用法代码示例。如果您正苦于以下问题:Python Qobj.full方法的具体用法?Python Qobj.full怎么用?Python Qobj.full使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qutip.qobj.Qobj
的用法示例。
在下文中一共展示了Qobj.full方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_QobjFull
# 需要导入模块: from qutip.qobj import Qobj [as 别名]
# 或者: from qutip.qobj.Qobj import full [as 别名]
def test_QobjFull():
"Qobj full"
data = np.random.random(
(15, 15)) + 1j * np.random.random((15, 15)) - (0.5 + 0.5j)
A = Qobj(data)
b = A.full()
assert_(np.all(b - data == 0))
示例2: test_QobjNorm
# 需要导入模块: from qutip.qobj import Qobj [as 别名]
# 或者: from qutip.qobj.Qobj import full [as 别名]
def test_QobjNorm():
"Qobj norm"
# vector L2-norm test
N = 20
x = np.random.random(N) + 1j * np.random.random(N)
A = Qobj(x)
assert_equal(np.abs(A.norm() - la.norm(A.data.data, 2)) < 1e-12, True)
# vector max (inf) norm test
assert_equal(np.abs(A.norm("max") - la.norm(A.data.data, np.inf)) < 1e-12, True)
# operator frobius norm
x = np.random.random((N, N)) + 1j * np.random.random((N, N))
A = Qobj(x)
assert_equal(np.abs(A.norm("fro") - la.norm(A.full(), "fro")) < 1e-12, True)
示例3: steadystate_nonlinear
# 需要导入模块: from qutip.qobj import Qobj [as 别名]
# 或者: from qutip.qobj.Qobj import full [as 别名]
def steadystate_nonlinear(L_func, rho0, args={}, maxiter=10,
random_initial_state=False, tol=1e-6, itertol=1e-5,
use_umfpack=True, verbose=False):
"""
Steady state for the evolution subject to the nonlinear Liouvillian
(which depends on the density matrix).
.. note:: Experimental. Not at all certain that the inverse power method
works for state-dependent Liouvillian operators.
"""
use_solver(assumeSortedIndices=True, useUmfpack=use_umfpack)
if random_initial_state:
rhoss = rand_dm(rho0.shape[0], 1.0, dims=rho0.dims)
elif isket(rho0):
rhoss = ket2dm(rho0)
else:
rhoss = Qobj(rho0)
v = mat2vec(rhoss.full())
n = prod(rhoss.shape)
tr_vec = sp.eye(rhoss.shape[0], rhoss.shape[0], format='coo')
tr_vec = tr_vec.reshape((1, n))
it = 0
while it < maxiter:
L = L_func(rhoss, args)
L = L.data.tocsc() - (tol ** 2) * sp.eye(n, n, format='csc')
L.sort_indices()
v = spsolve(L, v, use_umfpack=use_umfpack)
v = v / la.norm(v, np.inf)
data = v / sum(tr_vec.dot(v))
data = reshape(data, (rhoss.shape[0], rhoss.shape[1])).T
rhoss.data = sp.csr_matrix(data)
it += 1
if la.norm(L * v, np.inf) <= tol:
break
if it >= maxiter:
raise ValueError('Failed to find steady state after ' +
str(maxiter) + ' iterations')
rhoss = 0.5 * (rhoss + rhoss.dag())
return rhoss.tidyup() if qset.auto_tidyup else rhoss
示例4: test_QobjNorm
# 需要导入模块: from qutip.qobj import Qobj [as 别名]
# 或者: from qutip.qobj.Qobj import full [as 别名]
def test_QobjNorm():
"Qobj norm"
# vector L2-norm test
N = 20
x = np.random.random(N) + 1j * np.random.random(N)
A = Qobj(x)
assert_equal(np.abs(A.norm() - la.norm(A.data.data, 2)) < 1e-12, True)
# vector max (inf) norm test
assert_equal(
np.abs(A.norm('max') - la.norm(A.data.data, np.inf)) < 1e-12, True)
# operator frobius norm
x = np.random.random((N, N)) + 1j * np.random.random((N, N))
A = Qobj(x)
assert_equal(
np.abs(A.norm('fro') - la.norm(A.full(), 'fro')) < 1e-12, True)
# operator trace norm
a = rand_herm(10,0.25)
assert_almost_equal(a.norm(), (a*a.dag()).sqrtm().tr().real)
b = rand_herm(10,0.25) - 1j*rand_herm(10,0.25)
assert_almost_equal(b.norm(), (b*b.dag()).sqrtm().tr().real)