_repr_utils.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:kdotp-symmetry 作者: greschd 项目源码 文件源码
def hermitian_basis(dim):
    """
    Returns a basis of the hermitian matrices of size ``dim`` that is orthogonal w.r.t. the Frobenius scalar product.

    :param dim: size of the matrices
    :type dim:  int

    Example:

        >>> import kdotp_symmetry as kp
        >>> kp.hermitian_basis(2)
        [Matrix([
        [1, 0],
        [0, 0]]), Matrix([
        [0, 0],
        [0, 1]]), Matrix([
        [0, 1],
        [1, 0]]), Matrix([
        [0, -I],
        [I,  0]])]
    """
    basis = []
    # diagonal entries
    for i in range(dim):
        mat = sp.zeros(dim)
        mat[i, i] = 1
        basis.append(mat)

    # off-diagonal entries
    for i in range(dim):
        for j in range(i + 1, dim):
            # real
            mat = sp.zeros(dim)
            mat[i, j] = 1
            mat[j, i] = 1
            basis.append(mat)

            # imag
            mat = sp.zeros(dim)
            mat[i, j] = -sp.numbers.I  # pylint: disable=no-member
            mat[j, i] = sp.numbers.I  # pylint: disable=no-member
            basis.append(mat)

    # check ONB property
    assert len(basis) == dim**2
    _assert_orthogonal(basis)

    return basis
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号