(translator=roro, ChineseSource=roro-20020630-8\qr.html, EnglishSource=c:\matlabr12\help\techdoc\ref\qr.html)
MATLAB Function Reference    
qr

直角三角分解

Syntax

Description

函式 qr 對矩陣作直角三角分解。此分解法對正方及長方矩陣皆有效。原本矩陣以一實數直角或複數單一矩陣及一上三角矩陣的乘積來表示。

[Q,R] = qr(A) 產生一維度等同於 A 的上三角矩陣 R 及一元矩陣 Q,關係式為 A = Q*R。若為稀疏矩陣,則 Q 通常近於填滿的(full)。

[Q,R,E] = qr(A) 產生一排列矩陣 E,一含有遞降對角線元素的上三角矩陣 R,及一元矩陣 Q,其關係式為 A*E = Q*R。會使 abs(diag(R)) 產生最小值的行排列矩陣 E 將被選擇。

[Q,R] = qr(A,0) and [Q,R,E] = qr(A,0) 產生經濟尺寸(economy-size)分解,E 為一排列向量,其關係式為 Q*R = A(:,E)。會使 abs(diag(R)) 產生最小值的行排列矩陣 E 將被選擇。

R = qr(A) 對稀疏矩陣而言,僅產生一上三角矩陣 R。矩陣 R 提供了 Cholesky 分解法對相關矩陣做運算,

此方法避免當計算 A'*A 時數位資訊繼承的遺失。

[C,R] = qr(A,B) 對於稀疏矩陣提供對 B 做垂直轉換,產生 C = Q'*B 而不用先計算出 Q

R = qr(A,0) and [C,R] = qr(A,B,0) 對於稀疏矩陣產生經濟尺寸(economy-size)結果。

對於稀疏矩陣,QR 分解允許稀疏最短距離問題

藉由以下的兩個步驟解出

A 為稀疏矩陣但不為正方矩陣,MATLAB 使用上述的兩步驟對其線性方程式解反斜線運算元,即 x = A\b

X = qr(A) 回傳 LAPACK 子程序 DGEQRFZGEQRF 的輸出。triu(qr(A))R

Examples

初始為

此矩陣其中間欄為其他兩欄的平均值。藉由分解:

三角結構 R 將其零放置於對角線下;在對角線 R(3,3) 的零表示 RA 並不是有全行列的(full rank)。

QR 分解被用來解方程式比未知數多的線性系統,舉例來說

線性系統 Ax = b 表示有四個方程式及三個未知數。對此問題的最佳解可藉由下式得到

其結果為

tol 為誤差容忍度,其用來決定 R 的對角元素是否可忽略。若 [Q,R,E] = qr(A),則

x 使用分解法及以下兩步驟計算

計算的解可經由 Ax 檢查。b 有進位誤差,其代表即使模擬方程式 Ax = b 為過於決定(overdetermined)及行列定義(rank deficient),則含有一致性。若有無限多組向量解 x;則 QR 分解會選擇其中一項解。

Algorithm

函式 qr 使用 LAPACK 的程序計算 QR 分解:

語法
實數
複數
R = qr(A)
R = qr(A,0)

DGEQRF
ZGEQRF
[Q,R] = qr(A)
[Q,R] = qr(A,0)

DGEQRF, DORGQR
ZGEQRF, ZUNGQR
[Q,R,e] = qr(A)
[Q,R,e] = qr(A,0)
DGEQPF, DORGQR
ZGEQPF, ZUNGQR

See Also

lu, null, orth, qrdelete, qrinsert

The arithmetic operators \ and /

References

[1]  Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen, LAPACK User's Guide, Third Edition, SIAM, Philadelphia, 1999.


 qmr qrdelete