В общем случае такая модель — это компьютерная программа, написанная на одном из языков программирования ( Visual Basic, С/C++, Java и т. д.). Моделирование заключается в том, чтобы заставить математическую модель работать на компьютере в поисках ответа на вопросы, касающиеся будущего состояния системы: «что произойдет, если…?». Таким образом, компьютер превращается в пробирку, подлинную лабораторию, где можно исследовать явления, которые нельзя изучить при полевых исследованиях или в лаборатории.
Существует несколько способов компьютерного моделирования. Во-первых, оно может заключаться в определении начальных условий и будущего состояния системы. Начальные условия — это значения входных переменных модели (они известны), на основе которых выполняется прогноз. Ученые называют отправную точку модели нулевым моментом времени, поэтому начальные условия записываются так: I 1(0), I 2(0)…, I n(0). К примеру, если на сегодняшний день свиным гриппом заболели 1247 человек, из которых 1240 выжили, семь — умерли, то начальные условия таковы: I 1(0) = 1247, I 2(0) = 1240 и I 3(0) = 7. Зная эти начальные условия и применив вычислительную модель эпидемии, можно задаться вопросом: сколько человек заболеют гриппом через семь дней?
Во-вторых, моделирование может заключаться в изменении параметров и оценке воздействия новых значений на будущее состояние системы. Что произойдет в примере со свиным гриппом, если вместо уровня смертности в 0,78 % использовать значение в 2,96 %? Каким в этом случае будет уровень смертности через месяц?
В-третьих, моделирование может заключаться в определении будущего состояния системы при заданных начальных условиях и некоторых значениях определенных параметров.
* * *
СРАВНЕНИЕ МОДЕЛЕЙ
В некоторых ситуациях моделирование может состоять в прогнозировании явления путем сравнения прогнозов, полученных с помощью различных вычислительных моделей. Такая ситуация может сложиться, когда одно явление описывается несколькими математическими моделями. К примеру, можно сравнить различные математические модели климата для одной и той же ситуации, смоделировать поведение колонии муравьев с помощью разных вычислительных моделей или определить число хищников и жертв, сравнив данные, полученные с использованием клеточных автоматов, с данными, полученными по уравнениям Лотки — Вольтерры.
Увеличение объема метана в земной коре и стратосфере согласно вычислительной модели в сравнении с другими моделями, описывающими это же явление.
* * *
Программы для символьных вычислений
Программы для символьных вычислений позволяют обрабатывать математические выражения в символьном виде. Подобные программы появились в 1960-е и стали первым коммерческим продуктом, в котором использовался искусственный интеллект. Первыми пользователями этих программ стали физики, со временем к ним присоединились и другие ученые. На заре эпохи символьных вычислений родились такие программы, как Schoonschip и MathLab , однако лишь с развитием muMath, Reduce, Macsyma и Derive программы для символьных вычислений обрели популярность в научных кругах. Сегодня эти приложения используются в университетах, учебных центрах, а также при реализации научных и инженерных проектов. Самыми популярными коммерческими программами для символьных вычислений являются Maple и Mathematica , а также бесплатные SciLab и Octave .
SciLab — бесплатная программа для научных расчетов и символьных вычислений.
Эти приложения незаменимы в математической биологии — при изучении динамических систем в экологии, эпидемиологии, фармакологии и т. д. Программы для символьных вычислений не только позволяют редактировать и исправлять выражения, но и содержат много других возможностей: с их помощью можно строить графики в двух и трех измерениях, использовать внешние программы или библиотеки процедур, имеющих различное применение в вычислительной химии и т. д. В них используются методы эволюционных вычислений, методы биоинформатики, статистические методы, дифференциальные уравнения и многое другое. Среди задач, решаемых с помощью программ символьных вычислений, выделяется упрощение выражений, разложение в ряд Тейлора, разложение многочленов на множители, вычисление пределов, производных и интегралов, выполнение операций с матрицами и векторами.
Читать дальше