|
◆ dgecovs()
void dgecovs |
( |
int |
job, |
|
|
int |
n, |
|
|
int |
lda, |
|
|
double |
a[], |
|
|
double |
s[], |
|
|
double |
ci[], |
|
|
double |
work[], |
|
|
int * |
info |
|
) |
| |
線形最小二乗問題の分散・共分散行列 (dgelss用)
- 目的
- dgecovsはdgelssで解いた線形最小二乗問題の(unscaled)共分散行列を求める.
次のm×n行列Aの最小二乗問題はdgelssにより解くことができる. n×n正定値対称行列 C は求められたパラメータの(unscaled)共分散行列であり, 次のように定義される. C = (A^T*A)^(-1), rank(A) = n
スカラーを乗じた (σ^2)*C は統計的に最小二乗問題の解ベクトルの分散・共分散行列の推定値と解釈できる. スカラー σ^2 は次のように表される. σ^2 = ||A*x - b||^2 / (m - n)
ここで, x は最小二乗解とする. (σ^2)*C の対角要素はxの各要素の分散である.
- 引数
-
[in] | job | = -1: C の下三角部分を求める.
= 0: C の対角要素を求める.
= i > 0: C の第i列を求める. (i <= n) |
[in] | n | 行列 A の次数 = Aのランク数 (ランク落ちしていてはならない). (n >= 0) (n = 0 の場合, 処理を行わずに戻る) |
[in] | lda | 二次元配列a[][]の整合寸法. (lda >= max(1, n)) |
[in,out] | a[][] | 配列 a[la][lda] (la >= n)
[in] dgelssで求めた右特異ベクトル.
[out] Job = -1: a[][]の下三角部分(対角要素を含む)はCにより上書きされる. 上三角部分は壊される. |
[in] | s[] | 配列 s[ls] (ls >= n)
dgelssで求めた特異値. |
[out] | ci[] | 配列 ci[lci] (lci >= n)
job = -1: 参照されない.
job = 0: C の対角要素を返す.
job = i > 0: Cの第i列を返す. |
[out] | work[] | 配列 work[lwork] (lwork >= n)
作業領域. |
[out] | info | = 0: 正常終了
= -1: 入力パラメータ job の誤り (job < -1 または job > n))
= -2: 入力パラメータ n の誤り (n < 0)
= -3: 入力パラメータ lda の誤り (lda < max(1, n)) |
|