| 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 | ![]() |