QR算法应该在几次迭代后收敛到输入矩阵A的特征值,但在我的情况下它并不是。我想使用特征值来找到奇异值,因此输入。我想这样做,没有任何内置功能。</ p>
restart:
with(LinearAlgebra):
B := RandomMatrix(3);
B := BidiagonalForm(B);
A := evalf(Matrix([[Matrix(3),Transpose(B)],[B,Matrix(3)]]));
C := A;
t0 := time():
for k from 1 to 300 do
Q, R := QRDecomposition(A);
A:=R.Q;
end do:
time() - t0;
Diagonal(A);
sort(%);
abs(Eigenvalues(C));
最后一行是检查解决方案。提前谢谢。