>>647 は不親切かもしれないので、もっと大迷惑な長文ブタ野郎に変身するよ

n次元ベクトル空間をR(n)、(m,n)行列全体をR(m,n)、t (x)をxの転置とします
通常の行列の掛け算は記号を省略します
A in R (n, n)を対称行列とし、次の問題を考えます
argmin [x, y in R (n)] (t (x) A x + t (y) A y)
subject to t (x) x = t (y) y = 1 and t (x) y = 0
なんとなく、xとyがAの最も小さい固有値とその次に小さい固有値に属する
固有ベクトルの場合が解になるんじゃないかと思います
んで、今の場合はなんとなくは正しいです
んで、目的関数はデコにはなりませんが、極小値=最小値になります(多分)
X in R (n, 2)をxとyを並べた行列とします
X := [x, y]
すると、問題は次のように書けます
argmin [X in R (n, 2)] trace (t (X) A X)
subject to t (X) X = 1 // R (2, 2)の単位行列
拘束条件を満たすR (n, 2)の部分集合をSt (n, 2)と書きます
さらに、目的関数は直交行列をXの右から掛けても値が変わりません
(k, k)直交行列全体をO (k)と書くと次の式が成り立ちます
trace (t (X T) A X T) = trace (t (X) A X) for all T in O (2)
したがって、St (n, 2)よりもっとタイトな空間が考えられます
St (n, 2)をO (2)で割った空間をGr (n, 2)と書きます(商空間とか軌道空間とか)
Gr (n, 2) := St (n, 2) / O (2)
タイトな空間では問題は次の形になります
argmin [X in Gr (n, 2)] trace (T (X) A X)
St (n, k)をスティーフェル多様体、Gr (n, k)をグラスマン多様体と言います

百本ノックの場合は、データとは行列そのものだから、それを複数の部分に分けると
A = A1 + A2 +...+ An
という形になるけど、この形にして上記の話に載せると確率的勾配法に乗ります
ベストな方法ではないかもですが選択肢は多い方がいいと思います
確率的勾配法のおもちゃモデルになるので文献は多いと思います