Объединенный Открытый Проект - Сайт для Настоящих Компьютерщиков

Объединенный Открытый Проект

Сайт для Настоящих Компьютерщиков

; Логин:
  Пароль:
Обычный
Безопасный
Запомнить пользователя



Зарегистрироваться
Забыли пароль?
 
 
 
Объединенный Открытый Проект »   Модуль для работы с матрицами и комплексными числами
Реклама
Модуль для работы с матрицами и комплексными числами
Последнее обновление: 2 марта 2005 20: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 - динамический массив, содержащий в качестве первого элемента количество строк и столбцов в матрице, а в остальных - элементы матрицы и хранящийся в памяти последовательно (что удобно для вывода в файл или передачи по сети).

    Предложения по дальнейшему развитию модуля, а также сообщения об ошибках отправляйте в форум поддержки прочих разработок Объединенного Открытого Проекта.



    Всего скачиваний: 6482



Быстрый переход в раздел:
Реклама


Время выполнения скрипта: 0.0479. Количество выполненных запросов: 6, время выполнения запросов 0.0125
Rambler's Top100