- •Рецензент: Писаренко э.В.
- •Введение
- •Алгоритмизация
- •1. Вычисление суммы (суммирование) элементов вектора
- •2. Вычисление произведения элементов вектора
- •Пример 3
- •3. Вычисление произведения двух векторов
- •4. Суммирование (вычитание) матриц
- •5. ВычислениЕ произведения матриц
- •6. Вычисление произведения матрицы на вектор
- •7. Вычисление единичной матрицы
- •8. Транспонирование матрицы
- •Aij пустая ячейка b aji
- •9. Инвертирование элементов вектора
- •10. Алгоритм поиска максимального ( или минималь-ного ) элемента вектора
- •11. Алгоритм сортировки (упорядочивания) элементов вектора или матрицы
- •12. Вычисление полинома по схеме горнера
- •13. Вычисление суммы членов ряда
- •Содержание
8. Транспонирование матрицы
Транспонирование матрицы A={}N*N предполагает перестановку в ней элементов строк и столбцов.
Например, A=, тогда AT = . ( 16 )
Существуют два способа решения данной задачи:
-
с использованием новой матрицы AT={}N*N ,
в этом случае для ;
-
путем перестановки в три шага соответствующих элементов в исходной матрице A (рис.18).
2-ой шаг
1-ый шаг 3-ий шаг
Aij пустая ячейка b aji
Рис.18
Схемы алгоритмов транспонирования элементов матрицы для обоих способов показаны на рис. 19.
1) 2)
Рис. 19
9. Инвертирование элементов вектора
Инвертирование вектора X={}N означает перечисление элементов вектора в обратном порядке. Например, если X=(0, -3, 2, 6), тогда XIN = (6, 2, -3, 0) .
Аналогично, существуют два способа решения данной задачи:
1) с использованием нового вектора XIN={}N ,
в этом случае = для ;
2) путем перестановки в три шага соответствующих элементов в исходном векторе X .
Схемы алгоритмов способов инвертирования элементов вектора пред-ставлены на рис. 20.
1) 2)
Рис. 20
Рассмотрим более сложную задачу.
Пример 7
Необходимо вычислить значение параметра Z в соответствии со следующим выражением:
Z = ( A - E ) * C1IN * ( C22 - 1 ) , ( 17 )
где A - исходная матрица, все элементы и размерность которой известны;
E – единичная матрица;
C1 – главная диагональ матрицы A;
C2 – побочная диагональ матрицы A.
Рассмотрим поэтапный процесс решения данной задачи.
-
Ввод размерности N и всех элементов матрицы ().
-
Вычисление единичной матрицы E={}N*N.
-
Вычисление главной диагонали (вектор) ().
-
Вычисление побочной диагонали (вектор) ().
-
Инвертирование вектора C1: ().
-
Вычисление квадратной матрицы B=A-E.
-
Вычисление вектора D=B*C1IN.
-
Вычисление значения F=C2*C2.
-
Вычисление значения K=F-1.
-
Вычисление вектора Z=D*K.
-
Вывод вектора Z={}N.
Алгоритмы для каждого этапа процедуры вычислений рассмотрены выше, за исключением очевидного десятого пункта.
В процессе программирования достаточно сложных задач, подобных примеру 7, необходимо учесть следующие рекомендации:
1) предусмотреть комментарии к каждому пункту задачи;
2) организовать вывод значений рассчитанных параметров при выпол-нении каждого пункта задачи.
Данные рекомендации способствуют лучшему пониманию и контролю процесса поэтапных вычислений.
10. Алгоритм поиска максимального ( или минималь-ного ) элемента вектора
Дан вектор X={}N .
Необходимо найти элемент вектора Х , имеющий максимальное значение. Например, пусть X = (3, 4, 2, -1, 6, 0). Очевидно, что M(max) == 6; L (порядковый номер максимального элемента)=5.
Процедура поиска максимального элемента вектора следующая: предположим, что максимальным является первый элемент, т.e. M=Х1, L=1.
Затем каждый элемент , сравнивается со значением M, и если значение некоторого текущего элемента больше M, тогда M принимает новое значение с запоминанием его порядкового номе-ра L = i. Алгоритм поиска максимального элемента вектора показан на рис. 21. Данный алгоритм пригоден для поиска минимального элемента вектора при очевидной замене знака "<" на знак ">" в блоке проверки условия (рис. 21).
|
Рис. 21 |