Первое практическое задание по курсу лекций “Численные методы линейной алгебры”.
Более понятно написано на скрине. Матрицы, с которыми надо работать скинуть зипфайлом при обсуждении
ТГ для связи @The_Devine_Comedy
Требуется двумя различными методами получить QR-разложение данной матрицы ( A \in R^{n \times n} ), сравнить полученные разложения, вычислив матричную норму разности
[| A - QR |]
для каждого построенного разложения, и, воспользовавшись разложением с меньшей нормой разности, решить систему уравнений
[Ax = f.]
Предлагаются следующие методы QR-разложения:
- метод Грама-Шмидта ортогонализации столбцов матрицы,
Матрица ( A ), разложение которой следует получить, а также методы разложения определяются вариантом задания. В качестве матричной нормы следует использовать норму, подчиненную максимум-норме арифметического пространства ( R^n ).
Систему уравнений предлагается решать в тестовом режиме. Необходимо с помощью генератора псевдослучайных чисел построить вектор ( x \in R^n ) с компонентами ( x_k \in [-1, 1], , k = 1, 2, \dots, n ) и решать систему с правой частью ( f = Ax ).
Отчет по заданию должен включать в себя:
- краткую постановку задачи с описанием методов факторизации матрицы,
- результаты сравнения полученных разложений, время в миллисекундах, потраченное на построение разложений,
- алгоритм решения системы уравнений с помощью QR-разложения,
- максимум-норму невязки
[r = f - Ax,]
где ( \tilde{x} ) — численное решение системы уравнений, а также максимум-норму погрешности решения
[\delta = \tilde{x} - x,]
- время в миллисекундах, потраченное на решение системы уравнений.
К файлу с отчетом следует приложить исходники программы, скрипты ее компиляции и запуска.
Программу, выполняющую все необходимые вычисления, следует писать на языке программирования С/C++
.