|
|
◆ WDgels()
| Function WDgels |
( |
M As |
Long, |
|
|
N As |
Long, |
|
|
A As |
Variant, |
|
|
B As |
Variant, |
|
|
Optional Nrhs As |
Long = 1, |
|
|
Optional Trans As |
String = "N", |
|
|
Optional Cov As |
String = "N" |
|
) |
| |
優決定または劣決定系連立一次方程式 Ax = b の解 (フルランク)
- 目的
- WDgelsはm×n実行列Aあるいはその転置からなる優決定または劣決定系連立1次方程式をAのQRあるいはLQ分解を用いて解く. Aはフルランクであること.
下記オプションが提供される:
- Trans = "N" かつ m >= n の場合: 優決定系の最小二乗解を求める. すなわち, 次の最小二乗問題を解く.
- Trans = "N" かつ m < n の場合: 劣決定系 A * X = B の最小ノルム解を求める.
- Trans = "T" かつ m >= n の場合: 劣決定系 A^T * X = B の最小ノルム解を求める.
- Trans = "T" かつ m < n の場合: 優決定系の最小二乗解を求める. すなわち, 次の最小二乗問題を解く.
いくつかの右辺ベクトル b および解ベクトル x を1回の呼び出しで扱うことができる. これらのベクトルは, m×nrhs右辺行列Bおよびn×nrhs解行列Xの列として格納される.
- 戻り値
- Trans = "N", M > N の場合 (N+2 × Nrhs (Cov = "N"), N+2 × Nrhs+1 (Cov = "D"), N+2 × Nrhs+N (Cov = "C"))
| 列1〜Nrhs | 列Nrhs+1 (Cov = "D" の場合) | 列Nrhs+1〜Nrhs+N (Cov = "C" の場合) |
| 行1〜N | 最小二乗解ベクトル x | 分散(分散共分散行列の対角要素) | 分散共分散行列 |
| 行N+1 | 残差二乗和 | 0 | 0 |
| 行N+2 | リターンコード (列1) | 0 | 0 |
Trans = "T", M < N の場合 (M+2 × Nrhs)
| 列1〜Nrhs |
| 行1〜M | 最小二乗解ベクトル x |
| 行M+1 | 残差二乗和 |
| 行M+2 | リターンコード (列1) |
Trans = "N", M <= N の場合 (N+1 × Nrhs)
| 列1〜Nrhs |
| 行1〜N | 最小ノルム解ベクトル x |
| 行N+1 | リターンコード (列1) |
Trans = "T", M >= N の場合 (M+1 × Nrhs)
| 列1〜Nrhs |
| 行1〜M | 最小ノルム解ベクトル x |
| 行M+1 | リターンコード (列1) |
リターンコード
= 0: 正常終了.
= i > 0: 行列のi番目のピボットがゼロになった. (行列Aはフルランクでない)
- 引数
-
| [in] | M | 行列 A の行数. (M >= 1) |
| [in] | N | 行列 A の列数. (N >= 1) |
| [in] | A | (M×N) M×N係数行列 A. (フルランクであること) |
| [in] | B | (M×Nrhs (Trans = "N"の場合), N×Nrhs (Trans = "T"の場合)) 右辺行列 B. |
| [in] | Nrhs | (省略可)
右辺行列Bの列数. (Nrhs >= 1) (省略時 = 1) |
| [in] | Trans | (省略可)
= "N": Ax = bを解く.
= "T": (A^T)x = bを解く.
(省略時 = "N") |
| [in] | Cov | (省略可)
= "N": 分散共分散行列を計算しない.
= "D": 分散(分散共分散行列の対角要素)を計算する. (Trans = "N", M >= Nの場合のみ)
= "C": 分散共分散行列を計算する. (Trans = "N", M >= Nの場合のみ)
(省略時 = "N") |
- 出典
- LAPACK
- 使用例
- 優決定系連立1次方程式 Ax = B の最小二乗解を求める. また, 分散を求める. ただし,
( -1.06 0.48 -0.04 )
A = ( -1.19 0.73 -0.24 )
( 1.97 -0.89 0.56 )
( 0.68 -0.53 0.08 )
( 0.3884 )
B = ( 0.1120 )
( -0.3644 )
( -0.0002 )
とする.
|