Ejemplo n.º 1
0
X = np.random.rand(m, n)
U, S, Vt = np.linalg.svd(X, full_matrices=False)

U = U[:, :k]
S = S[:k]
Vt = Vt[:k, :]

grad_f = grad(f)
grad_g = grad(g)

man = FixedRankEmbedded(m, n, k)

dU, dS, dVt = grad_g((U, S, Vt))

Up, M, Vp = man.egrad2rgrad((U, S, Vt), (dU, dS, dVt))
U_, S_, V_ = man.tangent2ambient((U, S, Vt), (Up, M, Vp))

tangent_grad = U_.dot(S_).dot(V_.T)

print
print
print 'X:'
print X
print
print 'U,S,Vt:'
print U, S, Vt
print
print 'f(X):'
print f(X)
print