Численные методы для анализа
нелинейных динамических систем
и существующие программные реализации

Детали для конструктора
«Собери программу сам».

СГТНД    : :    алгоритмы и программы    : :    Детали для конструктора

english      noframes
frames  

На свете счастья нет…//философское [отс/вс]тупление

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

  • Решение задач линейной алгебры.

  • Решение систем нелинейных уравнений.

  • Решение систем обыкновенных дифференциальных уравнений.

  • Методы продолжения решений систем нелинейных уравнений по параметру.

Не упомянуты еще статистические методы, и еще спектральные задачи, и еще, и еще... - я бы сам с удовольствием где-нибудь об этом почитал.

Естественно, поскольку не мы одни такие умные и проблема сформулирована давно, то существуют пакеты подпрограмм по типу «все в одном» или «батарейки включены» – библиотеки, где есть все необходимое, кроме, пожалуй, последнего пункта нашего списка. Если вы работаете под системой MATLAB или MATHEMATICA, то я здесь напрасно трачу ваше время. Или, например, если вы являетесь счастливым обладателем компилятора с языка FORTRAN фирмы COMPAQ, то у вас все под руками в виде библиотеки IMSL, уже скомпилированной и готовой к потреблению. Очень удобно.

Однако.

Однако, зачастую хочется иметь под руками что-то

  • легко переносимое с машины на машину и работающее под любой операционной системой

  • небольшое и гибкое, такое, что можно было бы объять взглядом и легко подогнать под новые обстоятельства

  • чтобы можно было бы передавать свои программы знакомым, не волнуясь, имеете ли вы на это право или о том, есть ли у них эти библиотеки

  • чтобы можно было показать всем свою программистскую крутизну

Это значит, что вам нужны бесплатные библиотеки в исходных кодах. Их таких в Интернете есть.

Прежде всего это

Библиотеки подпрограмм общего назначения

Язык программирования

Общая характеристика

LAPACK

FORTRAN, C

Это библиотека предназначена для решения задач линейной алгебры и вообще-то не может считаться пакетом общего назначения
Включена в этот список потому что и SLATEC и GSL обращаются к ней для решения этого типа задач.

SLATEC

FORTRAN

Пакет достаточно старый, следовательно, проверенный временем.
Находится на NETLIBе – сайте, на котором вообще много интересного. Это, я думаю, вы и так должны знать, ведь все дороги ведут на NETLIB.

GSL

C

GNU Scientific Library
Активно развиваемый в настоящее время проект (текущая версия 1.8). Существуют проблемы с компилированием под WINDOWS. В Интернете можно найти уже оттранслированную библиотеку и import library для Visual C (как ее сделать). А здесь есть патч, который по мысли автора позволяет решить проблему с компиляцией под Visual C++2005 Эта библиотека входит и в состав CYGWIN, так что если вы используете этот компилятор, то у вас всегда есть уже готовое решение.

Numerical Recipes
(книги on-line)

FORTRAN, C, PASCAL

В on-line доступе находится не сама библиотека, а текст online-учебника по численным методам с опубликованными в нем исходными кодами. Эти тексты часто подвергаются критике профессионалов, наверное, обоснованно, и помечены как «учебные» и «для начинающих». Однако, если численная ситуация стандартная и далека от патологии, эти методы вполне работоспособны.

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

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