如果大小不同,如何将svd到矩阵a的转换u应用到矩阵a的精确行

pxyaymoc  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(209)

我有下一个任务,我需要旋转矩阵。我的第一次旋转是好的,但比我退出矩阵的大小
任务

def rotate(a, k, l):  # Rotate
    i1 = min(k, l)
    j1 = max(k, l)
    Q = array([[a[i1][i1], a[i1][j1]],
               [a[j1][i1], a[j1][j1]]])

    U, S, V = linalg.svd(Q)
    U0 = U

    print(U0)
    print(i1,j1)

    U0[i1][i1] = U[0][0]
    U0[i1][j1] = U[0][1]
    U0[j1][i1] = U[1][0]
    U0[j1][j1] = U[1][1]

    print(U0)
    for i in range(0, 2):
        a[i1][i] = a[i1][i] * U0.T[i1][i]
        a[j1][i] = a[j1][i] * U0.T[j1][i]

    V0 = V
    V0[i1][i1] = V[0][0]
    V0[i1][j1] = V[0][1]
    V0[j1][i1] = V[1][0]
    V0[j1][j1] = V[1][1]

    for i in range(0, 2):
        a[i][i1] = a[i][i1] * V0[i][i1]
        a[i][j1] = a[i][j1] * V0[i][j1]

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题