Ejemplo n.º 1
0
    if isspmatrix(m):
        m = m.todense()
    u, s, vh = svd(m)
    if which == 'LM':
        ii = np.argsort(s)[-k:]
    elif which == 'SM':
        ii = np.argsort(s)[:k]
    else:
        raise ValueError("unknown which=%r" % (which,))
    return u[:, ii], s[ii], vh[ii]


def svd_estimate(u, s, vh):
    return np.dot(u, np.dot(np.diag(s), vh))


n = 5
x = hilbert(n)
# u,s,vh = svd(x)
# s[2:-1] = 0
# x = svd_estimate(u, s, vh)

which = 'SM'
k = 2
u, s, vh = sorted_svd(x, k, which=which)
su,ss,svh = old_svds(x, k, which=which)
ssu,sss,ssvh = new_svds(x, k, which=which)

m_hat = svd_estimate(u, s, vh)
sm_hat = svd_estimate(su, ss, svh)
ssm_hat = svd_estimate(ssu, sss, ssvh)
Ejemplo n.º 2
0
        ii = np.argsort(s)[:k]
    else:
        raise ValueError("unknown which=%r" % (which,))
    return u[:, ii], s[ii], vh[ii]


def svd_estimate(u, s, vh):
    return np.dot(u, np.dot(np.diag(s), vh))


x = np.array([[1, 2, 3],
              [3, 4, 3],
              [1, 0, 2],
              [0, 0, 1]], np.float)
y = np.array([[1, 2, 3, 8],
              [3, 4, 3, 5],
              [1, 0, 2, 3],
              [0, 0, 1, 0]], np.float)
z = csc_matrix(x)
m = x.T
k = 1
u, s, vh = sorted_svd(m, k)
su, ss, svh = old_svds(m, k)
ssu, sss, ssvh = new_svds(m, k)
s
ss
sss
u
su
ssu
Ejemplo n.º 3
0
    if isspmatrix(m):
        m = m.todense()
    u, s, vh = svd(m)
    if which == 'LM':
        ii = np.argsort(s)[-k:]
    elif which == 'SM':
        ii = np.argsort(s)[:k]
    else:
        raise ValueError("unknown which=%r" % (which, ))
    return u[:, ii], s[ii], vh[ii]


def svd_estimate(u, s, vh):
    return np.dot(u, np.dot(np.diag(s), vh))


n = 5
x = hilbert(n)
# u,s,vh = svd(x)
# s[2:-1] = 0
# x = svd_estimate(u, s, vh)

which = 'SM'
k = 2
u, s, vh = sorted_svd(x, k, which=which)
su, ss, svh = old_svds(x, k, which=which)
ssu, sss, ssvh = new_svds(x, k, which=which)

m_hat = svd_estimate(u, s, vh)
sm_hat = svd_estimate(su, ss, svh)
ssm_hat = svd_estimate(ssu, sss, ssvh)