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

◆ WZgglse()

Function WZgglse ( M As  Long,
N As  Long,
P As  Long,
A As  Variant,
B As  Variant,
C As  Variant,
D As  Variant 
)

線形等式制約最小二乗(LSE)問題 (複素行列) (Excel複素数形式)

目的
WZgglseは線形等式制約最小二乗(LSE)問題を解く.
B*x = d の制約条件のもとで || c - Ax ||_2 を最小化する.
ここで, AはM×N行列, BはP×N行列, cは与えられたMベクトル, dは与えられたPベクトルである. ただし, P <= N <= M + P とする. また, 次式が成り立つものとする.
rank(B) = P かつ rank( (A) ) = N
( (B) )
これらの条件により, LSE問題が一意の解を持つことが保証される. 解は, 次式で与えられる行列対(B, A)の一般化RQ分解を用いて得られる.
B = (0 R)*Q, A = Z*T*Q

セル中で複素数を表現するためにExcelの複素数形式(例, 2.5+1i)を使用する. 複素数値はComplexワークシート関数を使って入力することができる.
戻り値
N+2 × 1
列1
行1〜N最小二乗解ベクトル x
行N+1最小二乗和の平方根
行N+2リターンコード

リターンコード
= 0: 正常終了
= 1: 最小二乗解を求めることができなかった. (B, A)対の一般化RQ分解のBに関連する上三角行列Rが特異で rank(B) < P である.
= 2: 最小二乗解を求めることができなかった. (B, A)対の一般化RQ分解のAに関する上台形行列TのN-P×N-P部分が特異で rank((A^T B^T)^T) < N である.
引数
[in]M行列 A の行数. (M >= 1)
[in]N行列 A および B の列数. (N >= 1)
[in]P行列 B の行数. (1 <= P <= N <= M + P)
[in]A(M×N) 最小二乗方程式の係数行列 A.
[in]B(P×N) 制約方程式の係数行列 B.
[in]C(M) 最小二乗方程式の右辺ベクトル c.
[in]D(P) 制約方程式の右辺ベクトル d.
出典
LAPACK
使用例
線形等式制約最小二乗(LSE)問題を解く. すなわち, B*x = d の制約条件のもとで || c - Ax ||_2 を最小化する. ただし,
( -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 )
( 0.57-0.91i -0.28-0.45i 0.25+0.91i )
B = ( 0.83+0.46i 0.63-0.19i -0.69+0.09i )
( 0.24-1.33i -0.56-0.67i 0.90+1.25i )
( 1.7126-0.6648i )
c = ( 0.8697+0.7604i )
( -2.1048-1.6171i )
( -0.9297+0.1252i )
( -1.5111+0.3107i )
d = ( -0.0941-1.2737i )
( -1.5579+1.0462i )
とする.

WZgglse