Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Сокровищница
  
 

Фильтр по датам

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  05:00[Войти] | [Зарегистрироваться]

Класс TMatrix — реализация основных действий над матрицами

Георгий Кузнецов
дата публикации 18-04-2006 07:16

Класс TMatrix — реализация основных действий над матрицами
Класс TMatrix реализует основные действия над матрицами действительных чисел. Может быть применён для решения систем уравнений в матричной форме
(A * X = B => X = A^(-1) * B),
различных матричных преобразований и везде там, где производятся действия над матрицами.

Возможности:

  1. Загрузка матрицы из текстового файла (Пример файла содержится в архиве). Создание дубликата матрицы. Поэлементное создание матрицы. Быстрое создание единичной матрицы.
  2. Умножение матрицы на число. Сложение, вычитание матриц. Умножение матриц. Возведение матрицы в целую степень.
  3. Нахождение определителя матрицы.
  4. Нахождение минора матрицы.
  5. Нахождение ранга матрицы.
  6. Удаление (вставка) строк (столбцов). При вставке необходимо создать матрицу, которую будем вставлять.
  7. А также другие элементарные действия над матрицами (Транспонирование, поворот, отражение).

Ограничения:

  1. Количество столбцов или строк не может быть больше 65535 (Мощность типа Word);
  2. Алгоритм нахождения обратной матрицы для больших порядков работает очень долго, т.к. она вычисляется по формуле
    (1/Det)*[A]^T,
    приходится находить все алгебраические дополнения. В следующих версиях он будет заменён на более быстрый
    [A|E] -> [E|B] => A^(-1) = B;
  3. Скорость вычисления ранга тоже пока оставляет желать лучшего.
Версия 0.3b - 20.04.06 01.22
[-]Удалён из uses модуль Classes (переписан метод LoadFromFile без использования StringList), что уменьшает размер исполняемого файла;
[-]Небольшие изменения в функции DetMatrix;
[-]Переписан метод RetMatrix (тестовая матрица 100x100 обращается за 0,047с., старый метод делал это за 88 с.);
[-] Исправлена ошибка переполнения в методе Rank;
[+] Добавлен метод ApplyFunction, который даёт возможность применить какую-либо функцию одного аргумента ко всем элементам матрицы, например можно забить её псевдослучайными числами;
[+] Добавлен ещё один конструктор с одним параметром для создания квадратных матриц (Create(Count: Word)).
В архиве пример вычисления обратной матрицы.

Версия 0.2b - 18.04.06 14.20
  • Удалены из uses модули Dialogs и Math (они использовались при отладке), что непременно уменьшило размер исполняемого файла.


К материалу прилагаются файлы:


Смотрите также материалы по темам:
[Матричное исчисление]

 Обсуждение материала [ 20-10-2016 09:13 ] 3 сообщения
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования