在这个问题中,我们最小化 \mathrm{trace}(Y^*AY),其中 A 是一个 12 \times 12 的一维二阶差分算子,而 Y 是 12 \times 4 的矩阵。
注意:我们不建议用这种方式解决这个问题,因为对于常数 A,使用传统的特征值求解器可以更快地完成。
>> !cp examples/tracemin/*.m . >> randn('state',0); >> A = Kinetic(12); >> parameters(A); >> Y0 = guess(4); >> [fn,Yn] = sg_min(Y0,'frcg','euclidean'); iter grad F(Y) flops 0 2.249340e+00 4.339273e+00 3807 1 1.635681e+00 1.774835e+00 106770 2 6.506188e-01 1.160615e+00 196319 3 4.400435e-01 1.043566e+00 295232 4 3.460854e-01 9.601858e-01 386244 5 3.418816e-01 9.122465e-01 471214 6 2.591414e-01 8.543284e-01 560763 7 1.225067e-01 8.319959e-01 661414 8 5.660065e-02 8.280403e-01 785192 9 2.346852e-02 8.271969e-01 935587 10 9.258692e-03 8.270659e-01 1105819 11 4.723177e-03 8.270398e-01 1261468 12 3.282461e-03 8.270316e-01 1417625 13 1.984453e-03 8.270281e-01 1576710 14 9.808233e-04 8.270270e-01 1726651 15 4.339561e-04 8.270267e-01 1876592 16 1.990167e-04 8.270267e-01 2022569 17 6.563434e-05 8.270267e-01 2163632 18 3.165945e-05 8.270267e-01 2322727 19 2.015557e-05 8.270267e-01 2468720 20 1.261539e-05 8.270267e-01 2612825 21 7.123104e-06 8.270267e-01 2748702 22 2.552485e-06 8.270267e-01 2935969 23 9.679096e-07 8.270267e-01 3119232 24 3.168742e-07 8.270267e-01 3287067 25 2.062080e-07 8.270267e-01 3472366
图 9.3 展示了本次运行的收敛曲线。