XLPack 7.0
XLPack 数値計算ライブラリ (Excel ワークシート関数) リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ WZgels2()

Function WZgels2 ( 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 の解 (フルランク) (複素行列) (実数部/虚数部分離形式)

目的
WZgels2はM×N複素行列Aあるいはその共役転置からなる優決定または劣決定系連立1次方程式をAのQRあるいはLQ分解を用いて解く. Aはフルランクであること.

下記オプションが提供される:

  1. Trans = "N" かつ M >= N の場合: 優決定系の最小二乗解を求める. すなわち, 次の最小二乗問題を解く.
    || B - A*X || を最小化する.
  2. Trans = "N" かつ M < N の場合: 劣決定系 A * X = B の最小ノルム解を求める.
  3. Trans = "T" かつ M >= N の場合: 劣決定系 A^H * X = B の最小ノルム解を求める.
  4. Trans = "T" かつ M < N の場合: 優決定系の最小二乗解を求める. すなわち, 次の最小二乗問題を解く.
    || B - A^H*X || を最小化する.

いくつかの右辺ベクトル b および解ベクトル x を1回の呼び出しで扱うことができる. これらのベクトルは, M×Nrhs右辺行列BおよびN×Nrhs解行列Xの列として格納される.

複素数を表現するために実数部と虚数部を隣り合ったセルに格納する(左が実数部, 右が虚数部). 得られた解も実数部と虚数部が隣り合った別々のセルに出力される.
戻り値
Trans = "N", M > N の場合 (N+1 × 2Nrhs (Cov = "N"), N+1 × 2Nrhs+1 (Cov = "D"), N+1 × 2Nrhs+2N (Cov = "C"))
列1〜2Nrhs列2Nrhs+1 (Cov = "D" の場合)列2Nrhs+1〜2Nrhs+2N (Cov = "C" の場合)
行1〜N最小二乗解ベクトル x分散(分散共分散行列の対角要素)分散共分散行列
行N+1残差二乗和(列1, 3, ...), リターンコード(列2)00
Trans = "T", M < N の場合 (M+1 × 2Nrhs)
列1〜2Nrhs
行1〜M最小二乗解ベクトル x
行M+1残差二乗和(列1, 3, ...), リターンコード(列2)
Trans = "N", M <= N の場合 (N+1 × 2Nrhs)
列1〜2Nrhs
行1〜N最小ノルム解ベクトル x
行N+1リターンコード(列1)
Trans = "T", M >= N の場合 (M+1 × 2Nrhs)
列1〜2Nrhs
行1〜M最小ノルム解ベクトル x
行M+1リターンコード(列1)

リターンコード
= 0: 正常終了
= i > 0: 行列のi番目のピボットがゼロになった (行列Aはフルランクでない)
引数
[in]M行列 A の行数. (M >= 1)
[in]N行列 A の列数. (N >= 1)
[in]A(M×2N) M×N係数行列 A. (フルランクであること)
[in]B(M×2Nrhs (Trans = "N"の場合), N×2Nrhs (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 の最小二乗解を求める. また, 分散を求める. ただし,
( -0.82+0.83i 0.18-0.94i -0.18-0.12i )
A = ( -0.76-0.24i 0.57-0.16i -0.08-0.27i )
( 1.90+0.26i -0.98+0.54i 0.21+0.28i )
( 0.50-0.30i -0.31+0.37i 0.22+0.19i )
( 1.7126-0.6648i )
B = ( 0.8697+0.7604i )
( -2.1048-1.6171i )
( -0.9297+0.1252i )
とする.

WZgels2