lsq
линейное решение наименьших квадратов A*X=B с минимальной norm(X)
Синтаксис
X = lsq(A, B) X = lsq(A, B, tol)
Аргументы
- A
вещественная или комплексная матрица (m x n)
- B
вещественная или комплексная матрица (m x p)
- tol
положительный скаляр, используемый для определения действительного ранга
A
(определяемого как порядок наибольшей главной треугольной подматрицыR11
в QR-разложении с выбором ведущего элементаA
, чьё оцененое число обусловленности <= 1/tol. Значениеtol
по умолчанию устанавливается равнымsqrt(%eps)
.- X
вещественная или комплексная матрица (n x p)
Описание
X=lsq(A,B)
вычисляет решение наименьших квадратов с минимальной
нормой уравнения A*X=B
, при этом X = A \ B
вычисляет решение наименьших квадратов с ненулевыми компонентами не более
rank(A)
на столбец.
Сcылки
Функция 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]) // Разница между lsq(A,b) и A\b A=rand(4,2)*rand(2,3);//ранг матрицы 2 b=rand(4,1); X1=lsq(A,b) X2=A\b [A*X1-b, A*X2-b] //остатки от деления одинаковы
Смотрите также
- обратная косая черта — (\) левое матричное деление: точное решение или решение по методу наименьших квадратов
- inv — matrix inverse
- pinv — pseudoinverse
- rank — rank
Report an issue | ||
<< linsolve | linear | pinv >> |