|
|
◆ zgeqrf()
| void zgeqrf |
( |
int |
m, |
|
|
int |
n, |
|
|
int |
lda, |
|
|
doublecomplex |
a[], |
|
|
doublecomplex |
tau[], |
|
|
doublecomplex |
work[], |
|
|
int |
lwork, |
|
|
int * |
info |
|
) |
| |
QR分解 (複素行列)
- 目的
- 本ルーチンはm×n複素行列AのQR分解を計算する.
- 引数
-
| [in] | m | 行列 A の行数. (m >= 0) (m = 0 の場合, 処理を行わずに戻る) |
| [in] | n | 行列 A の列数. (n >= 0) (n = 0 の場合, 処理を行わずに戻る) |
| [in] | lda | 二次元配列a[][]の整合寸法. (lda >= max(1, m)) |
| [in,out] | a[][] | 配列 a[la][lda] (la >= n)
[in] m×n 行列 A.
[out] 対角およびその上の要素にmin(m, n)×n上台形行列Rが入る(m >= nであれば, Rは上三角行列である). 対角より下の要素は, 配列tau[]と合わせて, min(m, n)個の基本鏡映変換の積としてユニタリ行列Qを表す (詳細を参照のこと). |
| [out] | tau | 配列 tau[ltau] (ltau >= min(m, n))
基本鏡映変換のスカラー因子 (詳細を参照のこと). |
| [out] | work[] | 配列 work[lwork]
作業領域.
info = 0の場合, work[0] にlworkの最適値を返す. |
| [in] | lwork | 配列work[]のサイズ. (lwork >= max(1, n))
パフォーマンスをよくするためには lwork >= n*nb とせよ. ただし, nbは最適ブロックサイズである.
lwork = -1 の場合, 作業領域サイズの問い合わせとみなし, 最適サイズを求める計算だけを行い, work[0]にその値を返す. |
| [out] | info | = 0: 正常終了
= -1: 入力パラメータ m の誤り (m < 0)
= -2: 入力パラメータ n の誤り (n < 0)
= -3: 入力パラメータ lda の誤り (lda < max(1, m))
= -7: 入力パラメータ lwork の誤り (lworkが小さすぎる) |
- 詳細
- 行列Qは基本鏡映変換の積で表される.
Q = H(1) H(2) . . . H(k), ただし k = min(m, n).
各H(i)は次のように表される. ただし, tauは複素スカラー, また, vは複素ベクトルで, v(1〜i-1) = 0, v(i) = 1 である. v(i+1〜m)はa[i-1][i〜m-1]に, tauはtau[i-1]に格納される.
- 出典
- LAPACK
|