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

◆ WDgglse()

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

線形等式制約最小二乗(LSE)問題

目的
WDgglseは次の線形等式制約最小二乗(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
戻り値
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 を最小化する. ただし,
( -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.58 -0.79 0.82 )
B = ( 0.77 0.71 -0.55 )
( -1.36 -1.22 1.66 )
( 0.3884 )
c = ( 0.1120 )
( -0.3644 )
( -0.0002 )
( 1.8250 )
d = ( -1.7058 )
( 3.4904 )
とする.

WDgglse