循环中的克罗内克产品

问题描述 投票:0回答:1

我是Python新手。我想计算 λ_i , ρ_i 矩阵作为附图,而 n=3,i=1:n。

Definitions of λ_i , ρ_i

我的初始代码是:

n=3
σ_0 = np.eye(2)
σ_1 = np.array([[1, 0 ],[0, -1]])
σ_2 = np.array([[0, -1],[1, 0]])
σ = np.array([σ_0 , σ_1 , σ_2])

但我不知道如何在循环中迭代计算克罗内克乘积。 你能帮我写一个循环来在 aloop 中引入这些矩阵吗?

python for-loop if-statement matrix-multiplication kronecker-product
1个回答
0
投票

您可以将

np.kron
用于 Kronecker 产品。对于迭代,您可以使用 for 循环或
reduce
函数。

import numpy as np
from functools import reduce

def lambda(s0, s1, s2, i, n):
    first = reduce(np.kron, [s1]*(i-1))
    last = reduce(np.kron, [s0]*(n-i))
    return np.kron( np.kron(first, s2), last)
© www.soinside.com 2019 - 2024. All rights reserved.