Block tridiagonal matrix python

后端 未结 8 1513
甜味超标
甜味超标 2020-11-28 14:52

I would like to create a block tridiagonal matrix starting from three numpy.ndarray. Is there any (direct) way to do that in python?

Thank you in advance!

Ch

8条回答
  •  猫巷女王i
    2020-11-28 15:37

    With "regular" numpy arrays, using numpy.diag:

    def tridiag(a, b, c, k1=-1, k2=0, k3=1):
        return np.diag(a, k1) + np.diag(b, k2) + np.diag(c, k3)
    
    a = [1, 1]; b = [2, 2, 2]; c = [3, 3]
    A = tridiag(a, b, c)
    

提交回复
热议问题