Jump to content

Матричный инструментарий Java

Матричный инструментарий Java
Оригинальный автор(ы) Бьёрн-Уве Хеймсунд
Первоначальный выпуск 2003 год ; 21 год назад ( 2003 )
Предварительный выпуск
0.9.14 / 22 ноября 2011 г. ( 2011-11-22 )
Репозиторий github /фоммил /matrix-toolkits-java
Написано в Ява
Тип Интерфейс прикладного программирования (API)
Лицензия LGPL

Matrix Toolkit Java (MTJ) — это с открытым исходным кодом Java программная библиотека для выполнения числовой линейной алгебры . Библиотека содержит полный набор стандартных операций линейной алгебры для плотных матриц на основе кода BLAS и LAPACK . Частичный набор разреженных операций предоставляется в рамках проекта Templates. Библиотеку можно настроить для работы как чистой библиотеки Java или использовать машинно-оптимизированный код BLAS через собственный интерфейс Java .

Первоначально MTJ был разработан Бьорном-Уве Хеймсундом, который сделал шаг назад из-за других обязательств. На веб-странице проекта указано, что «(новые сопровождающие) в первую очередь озабочены поддержанием поддержки библиотеки и исправлением ошибок по мере их обнаружения. План действий для будущих выпусков отсутствует». [1]

Несколько упоминаний MTJ можно найти в научной литературе, в том числе [2] который использует свой предобуславливатель LU. Производительность MTJ сравнивалась с другими библиотеками, которые можно найти на сайте Java Matrix Benchmark. [3]

Возможности

[ редактировать ]

Ниже приводится обзор возможностей MTJ, перечисленных на веб-сайте проекта:

  • Структуры данных для плотных и структурированных разреженных матриц в следующих форматах:
    • Плотный, столбчатый.
    • Ленточные матрицы, хранящие лишь несколько диагоналей.
    • Упакованные матрицы, хранящие только половину матриц (для треугольных или симметричных матриц).
    • Трехдиагональные и симметричные трехдиагональные матрицы.
  • Прозрачная поддержка симметричного и треугольного хранилища.
  • Структуры данных для неструктурированных разреженных матриц в этих форматах:
    • Сжатое хранилище строк или столбцов (CRS/CCS).
    • Гибкая CRS/CCS с использованием растущих разреженных векторов.
    • Сжатое диагональное хранилище (CDS).
  • Плотные и структурированные разреженные матрицы создаются на основе BLAS и LAPACK и включают в себя следующие внутренние операции:
    • Умножение матрицы/вектора.
    • Матрица/умножение матриц.
    • Ранжируйте обновления по матрицам или векторам.
    • Прямые решатели матриц.
  • Неструктурированные разреженные матрицы поддерживают те же операции, что и структурированные, за исключением того, что у них нет прямых решателей. Однако их методы умножения матриц/векторов оптимизированы для использования в итерационных решателях.
  • Матричные разложения плотных и структурированных разреженных матриц:
    • ЛУ и Холецкий.
    • Разложения по собственным значениям для несимметричных плотных матриц.
    • Разложения по сингулярным числам для несимметричных плотных матриц.
    • Разложения по собственным значениям для симметричных матриц (трехдиагональных, полосчатых, упакованных и плотных).
    • Ортогональные матричные разложения для плотных матриц (QR, RQ, LQ и QL).
  • Итеративные решатели для неструктурированных разреженных матриц из проекта Templates:
    • Бисопряженные градиенты.
    • Градиенты BiConjugate стабилизировались.
    • Сопряженные градиенты.
    • Сопряженные градиенты в квадрате.
    • Чебышевская итерация.
    • Обобщенный минимальный остаток (GMRES).
    • Итеративное уточнение (метод Ричардсона).
    • Квазиминимальный остаток.
  • Подборка алгебраических предобуславливателей:
    • Диагональная предобусловливание.
    • Симметричное последовательное перерасслабление.
    • Неполный Холецкий.
    • Неполный ЛУ.
    • Неполный LU с заполнением с использованием пороговой обработки.
    • Алгебраическая многосетка путем сглаженного агрегирования.

Примеры использования

[ редактировать ]

Пример разложения по сингулярным значениям (SVD):

SVD svd = new SVD(matA.numRows(),matA.numColumns());
SVD s = svd.factor(matA);
DenseMatrix U = s.getU();
DenseMatrix S = s.getS();
DenseMatrix Vt = s.getVt();

Пример умножения матрицы:

DenseMatrix result = new DenseMatrix(matA.numRows(),matB.numColumns());
matA.mult(matB,result);

См. также

[ редактировать ]
  1. ^ «Страница проекта MTJ» . МТДЖ . Проверено 30 ноября 2012 г.
  2. ^ МакМахан, HB; Гордон, Дж.Дж. (2005). «Быстрое точное планирование в процессах принятия решений Маркова» (PDF) . Учеб. 15-й Международной конференции по автоматизированному планированию и составлению графиков (ICAPS-05) .
  3. ^ «Бенчмарк Java-матрицы» . Проверено 6 декабря 2012 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 908220fed0f1e91b8b55a0e83687683e__1610573520
URL1:https://arc.ask3.ru/arc/aa/90/3e/908220fed0f1e91b8b55a0e83687683e.html
Заголовок, (Title) документа по адресу, URL1:
Matrix Toolkit Java - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)