如何修复类型错误:只能将整数标量数组转换为标量索引?

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

我需要写一个 Python 代码没有任何循环 对于给定的正则上三角矩阵 R ∈ Rn×n(即 rij = 0 for j > i and rii ̸= 0)和给定的 c ∈ Rn 求解线性系统 Rx = c 使用向后替换并返回向量 x。 向后替换定义为: backward substitution 这是我到目前为止所拥有的:

def backward(R, c):
    n = len(c)
    x = np.zeros(n)

    x[-1] = c[-1] / R[-1, -1]

    i = np.arange(n-2, -1, -1)
    j = i+1

    x[i] = (c[i] - R[i, j::-1] @ x[j::-1]) / R[i, i]

    return x

如果我尝试测试此代码,它会返回以下错误消息: ---> 10 x[i] = (c[i] - R[i, j::-1] @ x[j::-1]) / R[i, i] 类型错误:只能将整数标量数组转换为标量索引

我想做的是首先计算向量 x 的最后一个条目,然后使用向后替换公式计算其他元素。但是我无法访问 j-indices,因为为了使这段代码正常工作,我必须连续使用多个元素。例如。如果我有一个 3x3 矩阵 A,我必须使用 A11、A12 和 A13 来计算 x1。

我该如何解决这个问题?

python math matrix linear-algebra
1个回答
0
投票

嘿,我知道这应该是一个评论,但我没有足够的代表所以这里是来自 DYZ 的一个很好的答案。

© www.soinside.com 2019 - 2024. All rights reserved.