matlab中qr分解算法的错误
error in qr factorization algorithm in matlab
我应该使用 Matlab 实现 QR 因式分解,然后在矩阵 A = [1 2; 1 1; 2 3; 2 2]。
这是我到目前为止尝试编写的代码。但是我遇到了一些错误,我不确定问题出在哪里。
有人能发现吗?
A = [1 2; 1 1; 2 3; 2 2];
m = 4
Q=A;
Q(:,1) = A(:,1)/norm(A(:,1));
K = eye(m);
for j=2:n
Q(:,j) = ((K - Q(:,j-1)*Q(:,j-1)')*A(:,j))/norm((K - Q(:,j-1)*Q(:,j-1)')*A(:,j));
K = K - Q(:,j-1)*Q(:,j-1)';
end
R=Q'*A;
您的 for 循环从 2:n
开始运行,但您尚未定义 n。您只需要定义 n 为:
A = [1 2; 1 1; 2 3; 2 2];
[m,n] = size(A);
当我做这个加法时,我可以计算 Q*R 并得到
>> Q*R
ans =
1.0000 2.0000
1.0000 1.0000
2.0000 3.0000
2.0000 2.0000
请注意,以这种方式定义 m,n
可让您概括使用任何矩阵 A
(假设 m>=n)。
我应该使用 Matlab 实现 QR 因式分解,然后在矩阵 A = [1 2; 1 1; 2 3; 2 2]。 这是我到目前为止尝试编写的代码。但是我遇到了一些错误,我不确定问题出在哪里。 有人能发现吗?
A = [1 2; 1 1; 2 3; 2 2];
m = 4
Q=A;
Q(:,1) = A(:,1)/norm(A(:,1));
K = eye(m);
for j=2:n
Q(:,j) = ((K - Q(:,j-1)*Q(:,j-1)')*A(:,j))/norm((K - Q(:,j-1)*Q(:,j-1)')*A(:,j));
K = K - Q(:,j-1)*Q(:,j-1)';
end
R=Q'*A;
您的 for 循环从 2:n
开始运行,但您尚未定义 n。您只需要定义 n 为:
A = [1 2; 1 1; 2 3; 2 2];
[m,n] = size(A);
当我做这个加法时,我可以计算 Q*R 并得到
>> Q*R
ans =
1.0000 2.0000
1.0000 1.0000
2.0000 3.0000
2.0000 2.0000
请注意,以这种方式定义 m,n
可让您概括使用任何矩阵 A
(假设 m>=n)。