
- •Рецензент: хоробров в.Р., доцент
- •Введение
- •Алгоритмизация
- •1. Вычисление суммы (суммирование) элементов вектора
- •2. Вычисление произведения элементов вектора
- •Пример 3
- •3. Вычисление произведения двух векторов
- •4. Суммирование (вычитание) матриц
- •5. ВычислениЕ произведения матриц
- •6. Вычисление произведения матрицы на вектор
- •7. Вычисление единичной матрицы
- •8. Транспонирование матрицы
- •A ij пустая ячейка b aji
- •9. Инвертирование элементов вектора
- •10. Алгоритм поиска максимального ( или минималь-ного ) элемента вектора
- •11. Алгоритм сортировки (упорядочивания) элементов вектора или матрицы
- •12. Вычисление полинома по схеме горнера
- •13. Вычисление суммы членов ряда
- •С одержание
8. Транспонирование матрицы
Транспонирование матрицы A={ }N*N предполагает перестановку в ней элементов строк и столбцов.
Например, A=
,
тогда AT
=
. (
16 )
Существуют два способа решения данной задачи:
с использованием новой матрицы AT={
}N*N ,
в этом случае
для
;
путем перестановки в три шага соответствующих элементов в исходной матрице A (рис.18).
2
-ой
шаг
1
-ый
шаг 3-ий шаг
A ij пустая ячейка 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=a1, L=1.
Алгоритм поиска максимального элемента вектора показан на рис. 21. Данный алгоритм пригоден для поиска минимального элемента вектора при очевидной замене знака "<" на знак ">" в блоке проверки условия (рис. 21).
|
Рис. 21 |