MATLAB Function Reference | ![]() ![]() |
表示
x=
lscov(A,b,V) [x,dx] = lscov(A,b,V)
詳細
x = lscov(A,b,V)
は、A*x = b + e
の解ベクトルx
を出力します。ここで e
は、ゼロ平均で、共分散V
で正規分布します。行列 A
は、m
行 n
列で、m > n
でなくてはいけません。これは、共分散V
をもつ過決定系最小二乗問題です。解は、V
の逆行列を求めないで算出されます。
[x,dx] = lscov(A,b,V)
は、dx
に x
の標準誤差を出力します。係数の標準誤差に対する標準的な統計式は、つぎのように表わされます。
mse = B'*(inv(V)-inv(V)*A*inv(A'*inv(V)*A)*A'*inv(V))*B./(m-n) dx = sqrt(diag(inv(A'*inv(V)*A)*mse))
アルゴリズム
ベクトル x
は、(A*x-b)'*inv(V)*(A*x-b)
を最小化します。古典的な線形代数解法は、つぎのように行います。
x = inv(A'
*
inv(V)*
A)*
A'*
inv(V)*
b
しかし、lscov
は A
の QR 分解を計算し、V
を使って、Q
を修正します。
参考
代数演算子 \
参考文献
Strang, G., Introduction to Applied Mathematics, Wellesley-Cambridge, 1986, p. 398.
![]() | ls | lsqnonneg | ![]() |