Ортогонально-треугольное разложение
[Q,R] = qr(A)
[Q,R] = qr(A,0)
[Q,R,E] = qr(A)
[Q,R,E] =
qr(A,'matrix')
[Q,R,e] = qr(A,'vector')
[Q,R,e] = qr(A,0)
X = qr(A)
X = qr(A,0)
R = qr(A)
R = qr(A,0)
[C,R] = qr(A,B)
[C,R,E] = qr(A,B)
[C,R,E]
= qr(A,B,'matrix')
[C,R,e] = qr(A,B,'vector')
[C,R] = qr(A,B,0)
[C,R,e] = qr(A,B,0)
[Q,R] = qr(A)
, то, где A
является m
-by-n
, производит m
-by-n
верхняя треугольная матрица R
и m
-by-m
унитарная матрица Q
так, чтобы A = Q*R
.
[Q,R] = qr(A,0)
производит разложение размера экономики. Если m > n
, только первые столбцы n
Q
и первые строки n
R
вычисляется. Если m<=n
, это совпадает с [Q,R] = qr(A)
.
Если A полон:
[Q,R,E] = qr(A)
или [Q,R,E] =
qr(A,'matrix')
производит унитарный Q
, верхний треугольный R
и матрицу перестановок E
так, чтобы A*E = Q*R
. E
перестановки столбца выбран так, чтобы abs(diag(R))
уменьшился.
[Q,R,e] = qr(A,'vector')
возвращает информацию о перестановке как вектор вместо матрицы. Таким образом, e
является вектором - строкой, таким образом что A(:,e) = Q*R
.
[Q,R,e] = qr(A,0)
производит разложение размера экономики, в котором e
является вектором перестановки, так, чтобы A(:,e) = Q*R
.
X = qr(A)
и X = qr(A,0)
возвратите матричный X
, таким образом, что triu(X)
является верхний треугольный факторный R
.
Если A разрежен:
R = qr(A)
вычисляет Q
- меньше разложения QR
и возвращает верхний треугольный факторный R
. Обратите внимание на то, что R = chol(A'*A)
. Поскольку Q
часто почти полон, это предпочтено [Q,R] = QR(A)
.
R = qr(A,0)
производит размер экономики R
. Если m>n
, R
имеет только строки n
. Если m<=n
, это совпадает с R = qr(A)
.
[Q,R,E] = qr(A)
или [Q,R,E] = qr(A,'matrix')
производят унитарный Q
, верхний треугольный R
и матрицу перестановок E
так, чтобы A*E = Q*R
. Перестановка столбца E
выбрана, чтобы уменьшать временную замену в R.
[Q,R,e] = qr(A,'vector')
возвращает информацию о перестановке как вектор вместо матрицы. Таким образом, e
является вектором - строкой, таким образом что A(:,e) = Q*R
.
[Q,R,e] = qr(A,0)
производит разложение размера экономики, в котором e
является вектором перестановки, так, чтобы A(:,e) = Q*R
.
[C,R] = qr(A,B)
, то, где B
имеет столько же строк сколько A
, возвращает C = Q'*B
. Решением методом наименьших квадратов к A*X = B
является X = R\C
.
[C,R,E] = qr(A,B)
или [C,R,E]
= qr(A,B,'matrix')
, также возвращает уменьшающее заливку упорядоченное расположение. Решением методом наименьших квадратов к A*X = B
является X = E*(R\C)
.
[C,R,e] = qr(A,B,'vector')
возвращает информацию о перестановке как вектор вместо матрицы. Таким образом, решением методом наименьших квадратов к A*X = B
является X(e,:) = R\C
.
[C,R] = qr(A,B,0)
приводит к результатам размера экономики. Если m>n
, C
и R
имеют только строки n
. Если m<=n
, это совпадает с [C,R] = qr(A,B)
.
[C,R,e] = qr(A,B,0)
дополнительно производит уменьшающий заливку вектор перестановки e
. В этом случае решением методом наименьших квадратов к A*X = B
является X(e,:) = R\C
.
Найдите приближенное решение наименьших квадратов A*x = b
с Q
- меньше разложения QR
и один шаг итеративного улучшения:
if issparse(A), R = qr(A); else R = triu(qr(A)); end x = R\(R'\(A'*b)); r = b - A*x; err = R\(R'\(A'*r)); x = x + err;