我正在尝试对此项目进行编码:http://sirius.chem.vt.edu/wiki/doku.php?id=crawdad:programming:project13
在尝试解决它的某个时候,我需要(由于GSL中QR分解的实现)从另一个矩阵对角线以下的所有元素创建一个子矩阵。我该如何一行而不是一个一个地做到这一点?
除此之外,我的矩阵不是固定大小的,并且在每次迭代中都会添加一个新的向量。 (我可以使用最大的矩阵大小来实现它,但是我认为如果不这样做,它将更快。)那么是否有可能逐渐增加矩阵大小并进行子矩阵的矩阵乘法?假设我想将矩阵A的第一个2x2块与矩阵B的第一个2x3块相乘。同样,在ony行中,不是逐个元素。
我的一般问题是如何像在python中那样在GSL中编写表达式:
V[:,j] = t[:,j]/np.linalg.norm(t[:,j])
w = np.dot((A - theta[j]*I),np.dot(V[:,:(m+1)],s[:,j]))