|
|
◆ 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分解を用いて得られる.
- 戻り値
- 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 )
とする.
|