Точное решение, метод наименьших квадратов и сопряженных градиентов MatLab

4681
0
0

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

lsqr(A, В)—возвращает точное решение X СЛУ А*Х=В, если матрица последовательная, в противном случае — возвращает решение, полученное итерационным методом наименьших квадратов. Матрица коэффициентов А должна быть прямоугольной размера тхя, а вектор-столбец правых частей уравнений В должен иметь размер т. Условие m>=n может быть и необязательным. Функция 1 sqr начинает итерации от начальной оценки, по умолчанию представляющей собой вектор размером п, состоящий из нулей. Итерации производятся или до сходимости к решению, или до появления ошибки, или до достижения максимального числа итераций (по умолчанию равного min(20, m, n) — либо 20, либо числу уравнений, либо числу неизвестных). Сходимость достигается, когда отношение вторых норм векторов norm(B-Ax)/norm(B) меньше или равно погрешности метода tol (по умолчанию 1е-б);

lsqr(A.B,tol) — возвращает решение с заданной погрешностью (порогом отбора) tol;

lsqr(A,b.tol .maxlt) — возвращает решение при заданном максимальном числе итераций maxit вместо, возможно, чересчур малого числа, заданного по умолчанию;

lsqr(A,b.tol .maxit,M) и lsqr(A,b,tol .maxit.Ml.M2) — при решении используются матрица предусловий М или М=М1*М2, так что производится решение системы inv(M)*A*x=inv(M)*b относительно х. Если Ml или М2 — пустые матрицы, то они рассматривается как единичные матрицы, что эквивалентно отсутствию входных условий вообще;

lsqr(A.B,tol .maxit.Ml.M2.X0) — точно задается начальное приближение Х0. Если Х0 — пустая матрица, то по умолчанию используется вектор, состоящий из нулей;

X = lsqr(A,B.tol .maxit,Ml.M2.X0) — при наличии единственного выходного параметра возвращает решение X. Если метод 1 sqr сходится, выводится соответствующее сообщение. Если метод не сходится после максимального числа итераций или по другой причине, на экран выдается относительный остаток попп(В-А*Х)/ norm(B) и номер итерации, на которой метод остановлен;

[X.flag] = lsqr(A.X.tol.maxit.Ml.M2.X0) — возвращает решение X и флаг flag. описывающий сходимость метода;

[X.flag.relres] = lsqr(A,X,tol.maxit,Ml.M2.X0) — также возвращает относительную вторую норму вектора остатков rel res=norm(B-A*X)/norm(B). Если флаг flag равен 0, то relres<tol;

[X.flag.relres.iter] = bicg(A,B.tol,maxit,Ml,M2.X0) — также возвращает номер итерации, на которой был вычислен X. Значение iter всегда удовлетворяет условию 0<iter<maxit;

[X.flag.relres,iter,resvec]= lsqr(A.B.tol.maxit.Ml.M2.X0) — также возвращает вектор вторых норм остатков resvec для каждой итерации начиная с res-vec(l)=norm(B=A*X0). Если флаг flag равен 0, то resvec имеет длину iter+1 и resvec(end)<tol*norm(B). Возможны значения flag, равные 0, 1, 2, 3 и 4. Значения flag предоставляют следующие данные о сходимости решения:

flag=0 - решение сходится при заданной точности tol  и числе итераций не более заданного maxit;

flag=l - число итераций равно заданному maxit, но сходимость не достигнута;

flag=2 - матрица предусловий М плохо обусловлена;

flag=3 - процедура решения остановлена, поскольку две последовательные оценки решения оказались одинаковыми;

fl ag=4 - одна из величин в процессе решения вышла за пределы допустимых величин чисел (разрядной сетки компьютера).

Если значение flag больше нуля, то возвращается не последнее решение, а то решение, которое имеет минимальное значение отношения вторых норм векторов norm(B-A*x)/norm(B).

Пример:

» А=[0 012; 1300; 0101; 1010];

» В=[11; 7; 6; 4];

Введенные в этом примере матрица А и вектор В будут использованы и в других примерах данного раздела. В примере процесс итераций сходится на пятом шаге с относительным остатком (отношением вторых норм векторов невязки и свободных членов) 1.9 10- 13 .

Пример:

» lsqr(A,B.1e-6.5)

Isqr converged at iteration 5 to a solution

with relative residual 

1.9e-013 

ans =

1.0000 

2.0000 

3.0000

4.0000

 

Теги MatLab САПР


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

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