線形最小二乗問題.
X=lsq(A,B [,tol])
実数または複素数の (m x n) 行列
実数または複素数の (m x p) 行列
Aの実効ランクを定義するために使用される正のスカラー
(Aのピボット操作付きQR分解における最前部にある部分三角行列R11の次数として
定義され,条件数の推定値は<= 1/tolとなります.
tolのデフォルト値は sqrt(%eps)
に設定されます )
実数または複素数の (n x p) 行列
X=lsq(A,B)
は方程式 A*X=B
の
最小二乗解の最小ノルムを計算します.
一方, X=A \ B
は
各列に最大rank(A)
個の非ゼロ要素を有する最小二乗解を計算します.
lsq
関数はLApack 関数 DGELSY (実行列の場合)および
ZGELSY (複素行列の場合)に基づいています.
//Build the data x=(1:10)'; y1=3*x+4.5+3*rand(x,'normal'); y2=1.8*x+0.5+2*rand(x,'normal'); plot2d(x,[y1,y2],[-2,-3]) //Find the linear regression A=[x,ones(x)];B=[y1,y2]; X=lsq(A,B); y1e=X(1,1)*x+X(2,1); y2e=X(1,2)*x+X(2,2); plot2d(x,[y1e,y2e],[2,3]) //Difference between lsq(A,b) and A\b A=rand(4,2)*rand(2,3);//a rank 2 matrix b=rand(4,1); X1=lsq(A,b) X2=A\b [A*X1-b, A*X2-b] //the residuals are the same | ![]() | ![]() |