Функции
для решения систем линейных уравнений с ограничениями
Теперь рассмотрим
функции, введенные для решения систем линейных уравнений с ограничениями методом
наименьших квадратов:
-
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;
-
[X.W.Wl.exitflag,output,lambda]
= lsqnonneg(A.В,ХО,options) — обычно используется, если при предыдущей попытке
решения системы exitflag=l или если необходимо изменить заданный по умолчанию
порог отбора по X - tol X. равный 10*max(size(A))*norm(A, l)*eps (произведению
первой нормы матрицы, большего из измерений матрицы, машинной точности и
10). Также используется такая форма записи, как X=lsqnonneg(A,B,XO,options).
Параметры options должны быть предварительно заданы при помощи функции optimset.
Функция Isqnonneg использует только поля 'display' и 'tolX' структуры options.
Поэтому наиболее часто используемая вместе с Isqnonneg форма записи функции
— options= optimset С tol X'.tol value), где tolvalue — новое значение порога
отбора по X.
Применение
ограничений позволяет избежать получения отрицательных корней, хотя и ведет
к появлению несколько больших погрешностей решения, чем в случае решений без
ограничений. Пример:
»
С=[4 3:12 5:3 12];b=[1.45,41];D=lsqnonneg(C.b')
D =
2.2242
2.6954
Содержание раздела