Я ищу хорошую библиотеку, которая будет интегрировать жесткие ODE в Python. Проблема в том, что odeint scipy дает мне хорошие решения иногда, но малейшее изменение начальных условий заставляет его падать и сдаваться. Эта же проблема решается довольно успешно с помощью жестких решателей MATLAB (ode15s и ode23s), но я не могу ее использовать (даже с Python, потому что ни одна из привязок Python для API MATLAB C не реализует обратные вызовы, и мне нужно передать функцию к решателю ODE). Я пытаюсь PyGSL, но это ужасно сложно. Любые предложения будут ценны.Интегрируйте жесткие ODE с Python
EDIT: Конкретная проблема, с которой я столкнулась с PyGSL, заключается в выборе правильной функции шага. Есть несколько из них, но нет прямых аналогов ode15s или ode23s (формула bdf и модифицированный Rosenbrock, если это имеет смысл). Итак, что такое хорошая функция для выбора жесткой системы? Я должен решить эту систему на очень долгое время, чтобы убедиться, что она достигнет устойчивого состояния, и решатели GSL либо выбирают минимальный временной шаг, либо слишком большой.
Я хотел бы помочь вам с PyGSL. Я никогда не использовал его, но у меня есть опыт работы с GSL. Я просто посмотрел на пример, представленный в pygsl (odeiv.py), и он выглядит примерно так же, как и в C. Считаете ли вы, что PyGSL ужасно сложна из-за интерфейса python или GSL как такового? – YuppieNetworking
Ну, ужасно сложно, возможно, преувеличение :). Это на порядок сложнее, чем MATLAB или scipy. Чтобы уточнить, интерфейс python почти такой же, как интерфейс C, поэтому сама библиотека является сложной. Кроме того, PyGSL не документирует odeiv, поэтому я должен использовать документы C, чтобы выяснить, что делать в Python. Не весело. –
Отредактировал вопрос. –