测试代码: A = [1,2,3;4,5,6;7,8,10]; [Q,R] = qr_shift(A); disp(Q); disp(R); disp(Q*R-A); % should be close to zero

输出结果: -0.1231 -0.9045 0.4074 -0.4923 -0.3015 -0.8165 -0.8615 0.2970 0.4082

-8.1240 -9.6015 -12.1655 0 -0.9462 -1.8925 0 0 0.4074

1.7764e-15 2.6645e-15 0.0000e+00 0.0000e+00 -1.7764e-15 -3.5527e-15 -1.7764e-15 2.6645e-15 0.0000e+00

说明QR分解结果正确,且QR分解结果乘积与原矩阵非常接近,误差在数值范围内。

带原点位移的qr方法的MATLAB程序function QR = qr_shiftA QR factorization with shift A input matrix Q orthogonal matrix R upper triangular matrixmn = sizeA;Q = eyem;for k = 1n apply shift if k == 1 mu

原文地址: https://www.cveoy.top/t/topic/bRKe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录