Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Linear Algebra > linear > lsq

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
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jan 03 14:39:53 CET 2022