Иллюстрированный самоучитель по Matlab


Функции для решения систем линейных уравнений с ограничениями


Теперь рассмотрим функции, введенные для решения систем линейных уравнений с ограничениями методом наименьших квадратов:

  • X =lscov(A,B.V) —возвращаетвекторXрешения СЛУ видаА*Х=В+е, гдее — вектор шумов, который имеет ковариационную матрицу V. Реализуется метод наименьших квадратов в присутствии шумов с известной ковариацией. Прямоугольная матрица А должна быть размера

    тхп,

    где

    т>п.

    При решении минимизируется следующее выражение: (AX-b)'*inv(V)*(AX-b). Решение имеет вид X=inv(A'* inv(V)*A)*A'*inv(V)*B. Алгоритм решения, однако, построен так, что операция инвертирования матрицы V не проводится;

  • [X.dX] = lscov(A,B,V) — возвращает также стандартную погрешность X, помещая ее в переменную dX. Статистическая формула для стандартной погрешности вычисления коэффициентов имеет следующий вид:

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 =isqnonneg(A,B) — решение СЛУ АХ=В методом наименьших квадратов с неотрицательными ограничениями. А — действительная прямоугольная матрица, В — действительный вектор. Вектор X содержит неотрицательные элементы X>=Q, где

    j

    = 1, 2,...

    п.

    Критерий: минимизация второй нормы вектора В=АХ;

  • X = Isqnonneg(A.B.X0) — решение СЛУ с явно заданным неотрицательным начальным значением X для итераций;

  • [X,W] = Isqnonneg (...) — вместе с решением возвращает вторую норму вектора остатков в квадрате;

  • [X.W.W1] = Isqnonneg(..) — вместе с решением возвращает вторую норму вектора остатков в квадрате и вектор остатков W1;

  • [X.W.Wl.exitflag] = Isqnonneg (...) — вместе с решением возвращает вторую норму вектора остатков в квадрате, вектор остатков W1 и флаг exi tflаg, равный 1, если решение сходится после заданного по умолчанию числа итераций, и 0 — в противном случае;

  • [X.'W.Wl.exitflag,output] = Isqnonneg(...) — дополнительно возвращает число итераций в output;

  • [X.W.Wl.exitflag,output,lambda] = lsqnonneg(...) — дополнительно возвращает вектор lambda, минимизирующий произведение lambda W1 на последнем шаге итераций решения, lambda (i) близко к нулю, когда X(i) положительно, lambda (i) отрицательно, когда Х(1) равно 0;




    Начало  Назад  Вперед