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

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

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

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

Добавлен: 20.09.2025

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

Скачиваний: 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.

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

Имеем систему линейных алгебраических уравнений:

(1)

или в матричном виде AX = f, (2)

где А – вещественная квадратная матрица порядка n, f – заданный и X – искомый векторы. Будем предполагать, что определитель матрицы отличен от нуля.

В методе Гаусса возможность проведения процесса исключения гарантируется условием неравенства нулю главных миноров матрицы А

, , …, .

Однако при вычислениях заранее неизвестно, все ли главные миноры матрицы А отличны от нуля. При этом может оказаться, что система (1) имеет единственное решение, несмотря на то, что какой-либо из главных миноров матрицы А равен нулю. Кроме того, фиксация ведущего элемента в случае его относительной малости может привести в процессе вычислений к сильному накоплению погрешностей. Избежать таких ситуаций позволяет метод Гаусса с выбором главного элемента.

Основная идея метода Гаусса с выбором главного элемента состоит в том, чтобы на очередном шаге исключать не следующее по номеру неизвестное, а то неизвестное, коэффициент при котором является наибольшим по модулю. Таким образом, в качестве ведущего элемента здесь выбирается главный, т.е. наибольший по модулю элемент.

На практике обычно используются следующие варианты метода Гаусса с выбором главного элемента [19]:

1) метод Гаусса с выбором главного элемента по строке. Ведущий элемент на k-ом шаге исключения выбирается как максимальный по модулю среди элементов k-ой строки. Это равносильно перенумерации переменных на каждом этапе исключения;

2) метод Гаусса с выбором главного элемента по столбцу. Ведущий элемент на k-ом шаге исключения выбирается как главный элемент k-ого столбца. Такой вариант метода Гаусса предусматривает перенумерацию уравнений на каждом этапе исключения;

3) метод Гаусса с выбором главного элемента по всей матрице. Ведущий элемент на k-ом шаге исключения выбирается как максимальный по модулю среди всех элементов неприведенной части матрицы, т.е. главный элемент по матрице. Такой вариант предусматривает на каждом этапе исключения соответствующую перенумерацию переменных и перестановку уравнений.


Пример 1. Решить систему уравнений методом Гаусса с выбором главного элемента по столбцу.

Решение:

Прямой ход.

Максимальным по модулю среди элементов первого столбца является элемент второй строки . Переставим 1-е и 2-е уравнения, переместив, таким образом, выбранный элемент на место ведущего.

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

Максимальным по модулю среди элементов второго столбца является элемент третьей строки . Переставим 2-е и 3-е уравнения. Получим

Проводим второй шаг исключения. Имеем

Разделим третье уравнение на 6.002, получим

В результате применения обратного хода, имеем ,,.

Рассмотрим метод Гаусса с выбором главного элемента на основе факторизации.

Матрицей перестановок Р называется квадратная матрица, у которой в каждой строке и в каждом столбце только один элемент отличен от нуля и равен единице.

Элементарной матрицей перестановок называется матрица, полученная из единичной матрицы перестановкойk-й и l-й строк.

Например, элементарными матрицами перестановок третьего порядка являются матрицы

, , .


Отметим следующие свойства элементарных матриц перестановок, вытекающие непосредственно из их определения [19]:

  • Произведение двух (а следовательно, и любого числа) элементарных матриц перестановок является матрицей перестановок (не обязательно элементарной).

  • Для любой квадратной матрицы А матрица отличается отА перестановкой k-й и l-й строк.

  • Для любой квадратной матрицы А матрица отличается отА перестановкой k-го и l-го столбцов.

Поясним применение элементарных матриц перестановок для описания метода Гаусса с выбором главного элемента по столбцу. Рассмотрим следующий пример системы третьего порядка:

(3)

Матрица системы имеет вид

. (4)

Максимальный элемент первого столбца матрицы А находится во второй строке. Поэтому в системе (3) необходимо поменять местами первую и вторую строки и перейти к эквивалентной системе

(5)

Систему (5) можно записать в виде

, (6)

т.е. система (6) получается из системы (3) путем умножения на матрицу перестановок .

Далее, к системе (5) надо применить первый шаг обычного метода исключения Гаусса, для того чтобы привести матрицу системы к виду .

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

т.е. в нашем случае .

В результате от (6) перейдем к системе

. (7)


Имеем:

(8)

Из последних двух уравнений системы (8) необходимо исключить неизвестное х2. Максимальным элементом второго столбца системы (8) является элемент третьей строки. Следовательно, в системе (8) необходимо поменять местами вторую и третью строки и тем самым перейти к эквивалентной системе (9)

(9)

которую можно записать в матричном виде как

. (10)

Таким образом, система (10) получена применением к системе (7) элементарной матрицы перестановок .

Далее, к системе (10) необходимо применить второй шаг исключения обычного метода Гаусса, для того чтобы привести матрицу системы к виду.

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

т.е. для данного примера .

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

(11)

или

(12)

Заключительный шаг прямого хода метода Гаусса состоит в замене последнего уравнения системы (12) уравнением

.

Что эквивалентно умножению (11) на матрицу ,

т.е в нашем случае .

Таким образом, для рассмотренного примера процесс исключения Гаусса с выбором главного элемента по столбцу записывается в виде

. (13)

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

(14)

По построению матрица


(15)

является верхней треугольной матрицей с единичной главной диагональю.

Для нахождения неизвестных к системе (14) применяется обратный ход обычного метода Гаусса.

Отличие метода Гаусса с выбором главного элемента по столбцу (строке, всей матрице) от обычного метода Гаусса состоит в том, что в качестве сомножителей в (15) наряду с элементарными треугольными матрицами Lk могут присутствовать элементарные матрицы перестановок Рkl.

Метод Гаусса с выбором главного элемента по столбцу эквивалентен обычному методу Гаусса, примененному к системе, полученной из исходной системы перестановкой уравнений

РАХ = Рf. (16)

Справедливо разложение [19]

РА = LU, (17)

где L – нижняя треугольная матрица с отличными от нуля диагональными элементами и U – верхняя треугольная матрица с единичной главной диагональю.

Следует подчеркнуть, что в методе Гаусса с выбором главного элемента по столбцу (строке, всей матрице) матрица Р не задается заранее, а строится в процессе исключения.

Пример 2. Описать алгоритм метода Гаусса с выбором главного элемента по столбцу на основе факторизации.

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

При реализации метода эффективнее использовать расширенную матрицу системы и проводить необходимые преобразования над ней. Приведем возможное описание класса «AugmentMatrix» (Расширенная матрица) на языке программирования С++.

/* Класс «AugmentMatrix»*/

class AugmentMatrix : public AbstractMatrix{

/* Массив элементов матрицы*/

double **elements;

/* Количество столбцов в матрице. Количество строк матрицы задавали ранее в родительском классе «AbstractMatrix» */

int СolCount;

public:

/* Конструктор класса – расширенная матрица, состоящая из квадратной матрицы и вектора */

AugmentMatrix(SquareMatrix A, Vector f);

/* Конструктор класса – расширенная матрица, состоящая из двух квадратных матриц */

AugmentMatrix(SquareMatrix A, SquareMatrix B);

/* Получение элемента по индексу*/

double getElement(int i, int j);