|
Модуль для работы с матрицами и комплексными числами |
Последнее обновление: 2 марта 2005 22:38 Перейти к скачиванию
Дистрибутив содержит 2 модуля: Matrices.pas – для работы с обычными матрицами типа extended) и Cmatrics.pas – для работы с комплексными числами и комплексными матрицами.
Для использования модуля необходима среда Delphi 6 или выше.
Работа с комплексными числами
Комплексные числа хранятся в переменных типа Complex;
Обращение к комплексному числу: A.Re - реальная часть комплексного числа, A.Im - мнимая часть комплексного числа (A - имя переменной). Обработка ошибок при действиях с комплексными числами (например, деление на ноль или переполнение) не производится.
Для комплексных чисел в модуле Cmatrics.pas предусмотрены функции, выполняющие следующие действия: - сложение (CAdd)
- вычитание (CSub)
- умножение (CMul)
- деление (Cdiv)
- смена знака (Cneg)
- получение обратного комплексного числа (C1)
- получение комплексно-сопряженного числа (CCmplx).
Также определены функции, возвращающие констаты 0+0i (CZero) и 1+0i (Cone) и функция преобразования двух вещественных чисел в комплексное ToComplex.
Работа с матрицами
Матрицы вещественного типа extended хранятся в переменных типа Matrix, матрицы комплексного типа хранятся в переменных типа Cmatrix. Память для матриц выделяется динамически (используются динамические массивы Delphi).
Для начала работы с матрицей необходимо задать ее размер с помощью функции SetSize (ее можно в дальнейшем вызывать повторно, при этом при увеличении размера матрицы содержащиеся в ней значения сохраняются). Обращение к элементу матрицы: B.Data[i,j], где B - имя переменной, i - номер строки в матрице, j - номер столбца в матрице. Обращение к реальной и мнимой частям элемента: B.Data[i,j].Re и B.Data[i,j].Im
Для матриц, создаваемых с помощью функций модуля (например, умножения), вызывать SetSize не требуется.
Модуль реализует следующие действия над обычными и комплексными матрицами: - сложение
- вычитание
- умножение
- умножение матрицы на константу
- сложение матрицы с константой
- получение матрицы с обратным знаком
- транспонирование матрицы
- обращение матриц методом Жордана-Гаусса
- вставка и удаление строк и столбцов
- выделение подматрицы (по диапазону и по списку строк/столбцов)
В модуле предусмотрена обработка исключений, связанных с несогласованием
размера матриц (например, при умножении или объединении).
Также в модулях Matrix и CMatrix определены следующие вспомогательные типы:
TMap - динамический массив с индексами столбцов (строк) матрицы, CVector - динамический массив, содержащий в качестве первого элемента количество строк и столбцов в матрице, а в остальных - элементы матрицы и хранящийся в памяти последовательно (что удобно для вывода в файл или передачи по сети).
Предложения по дальнейшему развитию модуля, а также сообщения об ошибках отправляйте в форум поддержки прочих разработок Объединенного Открытого Проекта.
Всего скачиваний: 6937
|
Время выполнения скрипта: 0.0109. Количество выполненных запросов: 6, время выполнения запросов 0.0027
|
|