Интеграция жестких ODE с Java

Существуют ли бесплатные библиотеки жесткого интегратора с открытым исходным кодом для Java?

В настоящее время я использую интегратор Dormand-Prince 8 (5,3) из математической библиотеки Apache Commons. Я реализую приближение DAE для своей модели, поэтому я могу использовать этот интегратор, но мне было бы интересно попробовать жесткий решатель в прямой системе ODE для сравнения.

Я искал вокруг, но не могу найти прямых ответов. Что-то похожее на решатель ode15s в MATLAB для Java?


person Wilhelm    schedule 11.05.2015    source источник


Ответы (2)


Да, все решатели в Apache Библиотека Commons Math в основном предназначена для нежестких задач. DormandPrince853Integrator это хороший общий выбор, но даже для задач с небольшой жесткостью он может не сработать.

Вы можете поискать реализации LSODE/ODEPACK или вызвать версию C или FORTRAN напрямую. Альтернатива Matlab с открытым исходным кодом, Octave, использует lsode для решения ODE (также есть пара интерфейсов R и Python).

Вы можете прочитать об алгоритмах, лежащих в основе ode15s Matlab и других методов, в этой статье. :

Л. Ф. Шампайн и М. В. Райхельт, "MATLAB ODE Suite", SIAM Journal on Scientific Computing, 18-1, 1997, ссылка в формате PDF, DOI: 10.1137/S1064827594276424

person horchler    schedule 16.05.2015
comment
Спасибо за ваш ответ. Я просмотрел этот сайт: lh3lh3.users.sourceforge.net/solveode.shtml , Он имеет реализацию lsoda на языке C. Будет ли реализация этого Java значительно медленнее? Было бы разумнее просто настроить интерфейс между решателем на C/FORTRAN и Java? - person Wilhelm; 18.05.2015

Основываясь на ответе Хорхлера, вы можете взглянуть на JavaOdeInt, который предлагает интерфейс для решателей на основе Fortran.

person StefanOverFlow    schedule 02.06.2017