Преобразование матрицРефераты >> Программирование и компьютеры >> Преобразование матриц
Содержание.
1. Задание
2. Введение
3. Анализ задания
4. Математическая постановка задачи
4.1 Умножение матрицы на скаляр
4.2 Сложение и вычитание матриц
4.3 Умножение матриц
4.4 Транспонирование матриц
4.5 Поиск максимального (минимального) элемента матрицы
4.6 Формирование вектора из элементов матрицы
4.7 Упорядочивание элементов массива по возрастанию (убыванию) – сортировка
5. Алгоритм основной программы и его описание
6. Текст программы
7. Результаты работы
8. Инструкция пользователя
9. Результат отладки программы
10. Заключение
11. Список литературы
1. Задание.
Составить программу вычисления и преобразования матрицы P=f(A,B,C), где f(A,B,C) – матричное выражение; А, В, С – исходные матрицы, размер и значения элементов которых выбирается произвольно. Матричное выражение для расчёта матрицы Р № 9 и действия по её преобразованию № 5, 18 – выбирать из табл. 1 и 2 в соответствии с номером варианта задания. В программе предусмотреть вывод на печать всех исходных, промежуточных и результирующих матриц, а также результатов преобразования.
Таблица 1
№ |
Матричное выражение |
9 |
(С*А)Т – 2В |
Таблица 2
№ |
Действие с матрицей Р |
5 |
Сформировать вектор из сумм элементов каждой строки |
18 |
Развернуть одномерный массив по столбцам и расположить элементы полученного вектора по убыванию |
2. Введение.
Современные средства вычислительной техники и ЭВМ позволяют существенным образом повысить эффективность деятельности инженеров при решении различных задач. При этом наиболее существенным вопросом является организация взаимодействия пользователя со средствами ЭВМ. В настоящей курсовой работе для этих целей использовался диалоговый режим, что позволило существенным образом упростить процесс отладки программы. В качестве языка программирования выбран изучаемый на занятиях по дисциплине «Информатика» язык программирования Турбо Паскаль. К достоинствам языка Турбо Паскаль следует отнести такие его характеристики, как модульность, универсальность, удобство работы с массивами. Возможность построения дружественного интерфейса в графическом режиме и т.д.
3. Анализ задания.
При решении поставленной задачи необходимо выполнить следующие действия:
1. Ввести значения элементов массива А.
2. Ввести значения элементов массива В.
3. Ввести значения элементов массива С.
4. Умножить матрицу С на матрицу А.
5. Провести транспонирование матрицы (С*А), т.е. вычислить матрицу (С*А)Т=(С*А)Т =К.
6. Умножить матрицу С на скаляр 2: М=2*К.
7. Из матрицы К вычесть матрицу М: Р=К–М.
8. Сформировать вектор из сумм элементов каждой строки.
9. Развернуть одномерный массив по столбцам и расположить элементы полученного вектора по убыванию.
4. Математическая постановка задачи.
4.1. Умножение матрицы на скаляр.
Чтобы умножить матрицу на скаляр, необходимо каждый элемент этой матрицы умножить на скаляр. Например, если требуется вычислить В=d*A, где А и В – матрицы, d – скаляр, то каждый элемент матрицы В определяется по формуле:
bi,j =d*ai,j; i=1,2, .,n; j=1,2, .,m,
где n,m – размеры матриц. Алгоритм умножения матрицы А, состоящей из n строк и m столбцов, на скаляр d приведён на рис.1. Оператор вычисления очередного элемента матрицы-произведения (блок 4) является телом двойного цикла по строкам (параметр i) и столбцам (параметр j). Результатом работы является матрица В того же размера, что и матрица А.
4.2. Сложение и вычитание матриц.
Чтобы сложить (вычесть) две матрицы, необходимо сложить (вычесть) соответствующие элементы этих матриц. При вычислении С=А+-В, где А и В – матрицы, каждый элемент матрицы С определяется по формуле:
сi,j = di,j +- bi,j; i=1,2, .,n; j=1,2, .,m,
где n,m – размеры матриц. Из формулы следует, что складывать (вычитать) можно только матрицы одинакового размера. Алгоритм сложения (вычитания) матриц будет таким же, как на рис.1.
Изменения в алгоритме:
1. Входные параметры: матрицы А и В, их размеры n, m;
2. В блоке 4 вычисляется сi,j= di,j +- bi,j
3. Выходной параметр – матрица В того же размера, что А и В.
4.3. Умножение матриц.
При умножении матриц каждый элемент матрицы-произведения определяется как сумма произведений элементов строки матрицы-множимого на соответствующие элементы столбца матрицы-множителя. Например, если требуется вычислить С=А*В, где А и В – матрицы, то каждый элемент матрицы С определяется по формуле:
Сi,j = aik *b kj, i=1,2, .,n; j=1,2, .,l,
где n – число строк матрицы А; l – число столбцов матрицы В; m – число столбцов матрицы А и строк матрицы В. Из формулы следует, что перемножать можно только такие матрицы, у которых число столбцов матрицы-множимого равно числу строк матрицы множителя, т.е. [aij]n*m*[bij]m*l= [cij]n*l. Алгоритм перемножения таких матриц приведен на рисунке 2. каждый элемент матрицы-произведения вычисляется в блоках 4 – 8 как сумма произведений. В блоке 4 сумма обнуляется, в блоке 6 производится непосредственное суммирование произведений, в блоке 8 накопленная сумма записывается в выходной массив.
4.4. Транспонирование матриц.
Если в матрице А поменять местами столбцы со строками, то получим транспонированную матрицу АТ. Каждый элемент транспонированной матрицы определяется по формуле:
aijT= aji, i=1,2, .,n; j=1,2, .,m.
Транспонирование матрицы можно реализовать двумя способами.