gpt4 book ai didi

python - 带矩阵 block 的三对角矩阵

转载 作者:行者123 更新时间:2023-12-01 04:47:26 25 4
gpt4 key购买 nike

我读到this ,但我无法创建一个 (N^2 x N^2) - 矩阵 A 和 (N x N) - 矩阵 I 位于下侧和上侧对角线上,T 位于对角线上。我试过这个

def prep_matrix(N):
I_N = np.identity(N)
NV = zeros(N*N - 1)
# now I want NV[0]=NV[1]=...=NV[N-1]:=I_N

但我不知道如何用我的矩阵填充 NV。我能做些什么?我发现了很多关于如何使用标量创建三对角矩阵的信息,但没有找到如何使用矩阵 block 创建三对角矩阵的信息。

最佳答案

你可以这样初始化:

n = 3
I, T, A = np.identity(n), np.ones(n), np.zeros([n * n, n * n])
for i in range(n):
a, b, c = i * n, (i + 1) * n, (i + 2) * n
A[a:b, a:b] = T
if i < n - 1: A[b:c, a:b] = A[a:b, b:c] = I

上面的示例有以下输出:

[[ 1.  1.  1.  1.  0.  0.  0.  0.  0.]
[ 1. 1. 1. 0. 1. 0. 0. 0. 0.]
[ 1. 1. 1. 0. 0. 1. 0. 0. 0.]
[ 1. 0. 0. 1. 1. 1. 1. 0. 0.]
[ 0. 1. 0. 1. 1. 1. 0. 1. 0.]
[ 0. 0. 1. 1. 1. 1. 0. 0. 1.]
[ 0. 0. 0. 1. 0. 0. 1. 1. 1.]
[ 0. 0. 0. 0. 1. 0. 1. 1. 1.]
[ 0. 0. 0. 0. 0. 1. 1. 1. 1.]]

关于python - 带矩阵 block 的三对角矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29130635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com