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

3138
0
0

Урок 16. Численные методы Элементарные средства решения СЛУ
Функции для решения систем линейных уравнений с ограничениями
Решение СЛУ с разреженными матрицами
Точное решение, метод наименьших квадратов и сопряженных градиентов
Двунаправленный метод сопряженных градиентов
Устойчивый двунаправленный метод
Метод сопряженных градиентов
Квадратичный метод сопряженных градиентов
Метод минимизации обобщенной невязки
Квазиминимизация невязки - функция qmr
Вычисление нулей функции одной переменной
Минимизация функции одной переменной
Минимизация функции нескольких переменных
Аппроксимация производных
Аппроксимация Лапласиана
Аппроксимация производных конечными разностями
Вычисление градиента функции
Численное интегрирование
Метод трапеций
Численное интегрирование методом квадратур
Работа с полиномами
Умножение и деление полиномов
Вычисление полиномов
Вычисление производной полинома
Решение полиномиальных матричных уравнений
Разложение на простые дроби
Решение обыкновенных дифференциальных уравнений
Решатели ОДУ
Использование решателей систем ОДУ
Описание системы ОДУ
Дескрипторная поддержка параметров решателя
Пакет Partial Differential Equations Toolbox
Что нового мы узнали?

 

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

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

 

Теги MatLab САПР


    Вы должны авторизоваться, чтобы оставлять комментарии.

    При использовании материалов данного сайта прямая и явная ссылка на сайт radiomaster.ru обязательна. 0.1732 s