Файл: Маркова Вычислит методы алгебры Практикум.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 20.09.2025

Просмотров: 1182

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Л.В. Маркова, е.А. Корчевская,

С о д е р ж а н и е

П р е д и с л о в и е

Глава 1 Элементы теории погрешностей п 1.1 Источники погрешностей

П 1.2 Вычисление абсолютной и относительной погрешностей

П 1.3 Округление чисел

П 1.4 Вычисление погрешностей арифметических операций

П 1.5 Оценка погрешности по способу границ

Лабораторная работа № 1

Задание

Глава 2 объектно-ориентированный подход к программированию методов линейной алгебры

П 2.1 Создание матричной иерархии классов

Лабораторная работа № 2

Задание

П 2.2 Создание иерархии классов вычислительных методов алгебры

Лабораторная работа № 3

Задание

Глава 3 решение систем линейных алгебраических уравнений

П 3.1 Метод Гаусса решения систем линейных алгебраических уравнений

Лабораторная работа № 4

Задание

П 3.2 Метод Гаусса с выбором главного элемента для решения систем линейных алгебраических уравнений

Лабораторная работа № 5

Задание

П 3.3 Решение системы линейных алгебраических уравнений методом Жордана-Гаусса

Лабораторная работа № 6

Задание

П 3.4 Метод квадратного корня для решения систем линейных алгебраических уравнений

Лабораторная работа № 7

Задание

П 3.5 Вычисления определителя и нахождения обратной матрицы

Лабораторная работа № 8

Задание

П 3.6 Решение системы линейных алгебраических уравнений методом прогонки

Лабораторная работа № 9

Задание

П 3.7 Метод простых итераций решения систем линейных алгебраических уравнений

Лабораторная работа № 10

Задание

П 3.8 Метод Зейделя решения систем линейных алгебраических уравнений

Лабораторная работа № 11

Задание

П 3.9 Итерационные методы вариационного типа решения систем линейных алгебраических уравнений

Лабораторная работа № 12

Задание

Глава 4 вычисление собственных значений и собственных векторов матриц

П 4.1 Метод Данилевского для нахождения собственных значений и собственных векторов

Лабораторная работа № 13

Задание

П 4.2 Итерационный степенной метод нахождения наибольшего по модулю собственного значения и соответствующего собственного вектора

Лабораторная работа № 14

Задание

П 4.3 qr-алгоритм для нахождения собственных значений матрицы

Лабораторная работа № 15

Задание

П 4.4 Метод Якоби для нахождения собственных значений и собственных векторов

Лабораторная работа № 16

Задание

П р и л о ж е н и я Приложение 1 Основные сведения о матрицах

Функции MathCad

Л и т е р а т у р а

Красоткина вычислительные методы алгебры. Практикум

2 10038, Г. Витебск, Московский проспект, 33.

Разделим третье уравнение на 0.696, получим следующую систему:

Сложим третье уравнение с первым и вторым, умножив его на 0.036 и 0.08, получим:

Рассмотрим метод Жордана-Гаусса на основе факторизации.

На первом шаге исключения матрица системы (2) приводится к виду .

Этот шаг эквивалентен умножению матрицы системы (2) слева на элементарную нижнюю треугольную матрицу.

В результате имеем систему . (3)

На втором шаге исключения матрица системы (3) приводится к виду .

Для этого необходимо умножить матрицу системы (3) слева на элементарную нижнюю треугольную матрицу .

В результате получим систему . (4)

Продолжая этот процесс, в итоге приходим к системе

, (5)

где на к-ом шаге исключения элементарная нижняя треугольная матрица имеет вид.

Исходя из того, что ,перепишем систему (5) в виде

. (6)

Таким образом, правая часть системы (6) представляет собой искомый вектор решения.

Пример 2. Решить с помощью метода Жордана-Гаусса на основе факторизации систему уравнений:

Решение:

Перепишем систему в матричном виде


.

Применим первый шаг исключения, для этого умножим матрицу системы слева на матрицу .

Получим систему или в развернутом виде

.

Далее применим второй шаг исключения, для этого матрицу системы, полученной на предыдущем шаге, умножим слева на матрицу .

Имеем систему или

.

На заключительном этапе имеем систему , где матрица.

В результате получим систему .

Отсюда следует, что искомый вектор найден .


Лабораторная работа № 6

Цель: изучить метод Жордана-Гаусса для решения системы линейных алгебраических уравнений.

Задание

1. Реализуйте в классе «DirectMethodsFactorization» метод Жордана-Гаусса («gaussJordanMethod»). Для реализации метода используйте объекты и методы класса «SquareMatrix», «Vector» и «AugmentMatrix». Доступ к элементам осуществляйте с помощью методов getElement и setElement, реализованных в данных классах. Для эффективной реализации метода все необходимые матричные операции производите над объектом класса «AugmentMatrix».

2. Решите систему линейных алгебраических уравнений методом Жордана-Гаусса () в соответствии с вариантом.

3. Решите ту же задачу, используя пакет для математических вычислений.

4. Сравните результат выполнения п. 2 с решением, полученным в п. 3.

Варианты заданий

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16


П 3.4 Метод квадратного корня для решения систем линейных алгебраических уравнений

Рассмотрим алгоритм метода квадратного корня.

Метод предназначен для решения СЛАУ с симметрическими матрицами.

Пусть надо решить систему

, (1)

где матрица A – вещественная, симметрическая; X – искомый вектор решения; f – вектор правой части системы.

Матрицу A можно представить в виде , где S – верхняя треугольная матрица, ST – транспонированная к ней матрица (нижняя треугольная), D – диагональная матрица с элементами, равными +1 или –1.

Значения коэффициентов матрицы S и D находятся по формулам (2), описанным в п 2.2.

Исходную систему (1) заменяем двумя эквивалентными ей системами с треугольными матрицами: .

Решая их, получаем [19; 8]:

(2)

Если матрица А является симметричной и положительно определенной, то ее можно представить в виде произведения , S – верхняя треугольная матрица, ST – транспонированная к ней матрица (нижняя треугольная).

Значения коэффициентов матрицы S находятся по формулам (3), описанным в п 2.2.

В этом случае решение системы линейных алгебраических уравнений (1) сводится к последовательному решению двух систем с треугольными матрицами [19; 8]:

(3)

SX = Y. (4)

Т.к. матрица системы (3) является нижней треугольной, то можно сразу выписать ее решение:

(5)

i = 2, 3, …, n. (6)

Определив таким образом вектор Y, можем найти из системы (4) искомое решение. Это решение находим обратным ходом метода Гаусса, т.к. матрица Sверхняя треугольная. Имеем:


, (7)

i = n-1, n-2, …, 1. (8)

Пример 1. Решить систему линейных уравнений методом квадратного корня.

Решение:

Матрица системы является симметрической и положительно определенной. Вычислим коэффициенты матрицы S:

Получим матрицу .

Вычислим вектор Y:

Находим искомый вектор решения X:

Пример 2. Для системы уравнений с симметрической матрицей описать алгоритм метода квадратного корня, используя STS-разложение.

При описании алгоритма используются объекты и методы классов «SquareMatrix», «Vector» и «FactorizationAlgorithms».

Реализация примера на языке программирования С++ может иметь следующий вид:

void DirectMethodsFactorization ::squareMethod(SquareMatrix A, Vector f){

/*Создание матриц S, вектора X, вектора Y */

int n = A.getRowCount();

SquareMatrix S = SquareMatrix(n);

Vector X = Vector(n);

Vector Y = Vector(n);

/* STS – разложение. В результате факторизации имеем матрицу S – верхнюю треугольную матрицу */

FactorizationAlgorithms FA;

FA. STS_decomposition (A, S);

/* Решение системы STY = f. */

/* Решение системы SX = Y. Матрица S – верхняя треугольная матрица, следовательно искомый вектор решения находим обратным ходом метода Гаусса.*/

X.setElement(n-1,(Y.getElement(n-1)/S.getElement(n-1,n-1)));

for (int i = n-2; i >= 0; i--){

double sum = 0;

for (int j = n-1; j > i; j--){

sum += X.getElement(j) * S.getElement(i, j);

}

X.setElement(i, (Y.getElement(i)-sum)/S.getElement(i, i));

}

// вывод вектора решений

}