Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ВЫЧИСЛЕНИЕ ЕДИНИЧНОЙ МАТРИЦЫ



 

Формализация данной задачи приводит к следующему выраже-нию: E={ }N*N= , ( 15 ) для   Алгоритм вычисления единич-ной матрицы приведен на рис. 17.       Рис. 17

ТРАНСПОНИРОВАНИЕ МАТРИЦЫ

Транспонирование матрицы A ={ }N*N предполагает перестановку в ней элементов строк и столбцов.

Например, A = , тогда AT = . ( 16 )

Существуют два способа решения данной задачи:

1) с использованием новой матрицы AT ={ }N*N,

в этом случае для ;

2) путем перестановки в три шага соответствующих элементов в исходной матрице A (рис.18).

2-ой шаг

1-ый шаг 3-ий шаг

aij пустая ячейка b aji

 

Рис.18

 

Схемы алгоритмов транспонирования элементов матрицы для обоих способов показаны на рис. 19.

 
 

 


1) 2)

Рис. 19

Инвертирование элементов вектора

 

Инвертирование вектора 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.

 

Рассмотрим поэтапный процесс решения данной задачи.

1. Ввод размерности N и всех элементов матрицы ( ).

2. Вычисление единичной матрицы E ={ }N*N.

3. Вычисление главной диагонали (вектор) ( ).

4. Вычисление побочной диагонали (вектор) ( ).

5. Инвертирование вектора C1: ( ).

6. Вычисление квадратной матрицы B=A-E.

7. Вычисление вектора D=B*C1IN.

8. Вычисление значения F= C2*C2.

9. Вычисление значения K=F-1.

10. Вычисление вектора Z=D* K.

11. Вывод вектора Z ={ }N.

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

В процессе программирования достаточно сложных задач, подобных примеру 7, необходимо учесть следующие рекомендации:

1) предусмотреть комментарии к каждому пункту задачи;

2) организовать вывод значений рассчитанных параметров при выпол-нении каждого пункта задачи.

Данные рекомендации способствуют лучшему пониманию и контролю процесса поэтапных вычислений.

 

АЛГОРИТМ поиска МАКСИМАЛЬНОГО ( ИЛИ МИНИМАЛЬ-НОГО ) элемента ВЕКТОРА

 

Дан вектор X ={ }N.

Необходимо найти элемент вектора Х , имеющий максимальное значение. Например, пусть X = (3, 4, 2, -1, 6, 0). Очевидно, что M(max) = = 6; L (порядковый номер максимального элемента)=5.

Процедура поиска максимального элемента вектора следующая: предположим, что максимальным является первый элемент, т.e. M=a1, L=1.

 

 

Затем каждый элемент , сравнивается со значением M, и если значение некоторого текущего элемента больше M, тогда M принимает новое значение с запоминанием его порядкового номе-ра L = i. Алгоритм поиска максимального элемента вектора показан на рис. 21. Данный алгоритм пригоден для поиска минимального элемента вектора при очевидной замене знака " < " на знак " > " в блоке проверки условия (рис. 21).       Рис. 21

Алгоритм сортировки (упорядочивания) элементов вектора или матрицы

 

Сортировка означает перестановку элементов вектора или матрицы в определенном порядке (по возрастанию или по убыванию) в соответствии с их значениями.

Рассмотрим алгоритм сортировки (упорядочивания) элементов вектора, когда значение каждого последующего элемента вектора больше предыдущего. Например, пусть исходный вектор X ={ }6=(3, 4, 2, -1, 6, 0), тогда в результате сортировки получим вектор X =(-1, 0, 2, 3, 4, 6).

Существуют различные способы решения данной задачи. Рассмотрим один из них.

Процедура сортировки элементов вектора X по возрастанию их значенийследующая.

 

Первый шаг

Среди N-1 элементов вектора X (за исключением ) произведем поиск минимального элемента вектора и поменяем его местами с первым элементом, если значение < . В результате выполнения первого шага сортировки получим следующий вектор X =(-1, 4, 2, 3, 6, 0).

 

Второй шаг

Среди N-2 элементов вектора X (за исключением , ) произведем поиск минимального элемента вектора и поменяем его местами со вторым элементом, если значение < . В результате выполнения второго шага сортировки получим вектор X =(-1, 0, 2, 3, 6, 4).

Очевидно, после выполнения N-1 шага (в нашем примере после 5 шагов) получим окончательный упорядоченный вектор X =(-1, 0, 2, 3, 4, 6).

Алгоритм упорядочивания по возрастанию элементов вектора показан на рис. 22. Данный алгоритм пригоден для упорядочивания элементов вектора по убыванию с очевидной заменой знака " > " на знак " < " в блоке проверки условия (рис. 22).

Рассмотрим алгоритм сортировки элементов матрицы.

Дана матрица A ={ }P*N . Необходимо упорядочить элементы столбцов матрицы А в порядке убывания. Алгоритм сортировки элементов матрицы для этого случая приведен на рис. 23.

       
   
 

 

 


Рис.22


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-28; Просмотров: 664; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.02 с.)
Главная | Случайная страница | Обратная связь