Как я пытался симулировать рост популяции кроликов на Python, и что из этого вышло
В общем, захотелось мне тут прикоснуться к биомоделированию, ну и решил начать с чего-то простенького. Выбрал классику — модель роста популяции кроликов. За основу взял модель Ферлюста (или как там ее, когда каждый месяц новые поколения плодятся). Казалось бы, пара строк кода, и вот она, симуляция. Ага, как же!
Начал писать код на Python, использовал numpy для каких-то там векторизованных операций, чтобы побыстрее было. Первые итерации — ну, типа, все росло как надо, кролики множились экспоненциально. Я такой довольный: "Ну всё, щас научный прорыв сделаю!". Но потом решил добавить некоторые ограничения: ограничение ресурсов, смертность от болезней… И тут началось веселье
Модель начала вести себя очень странно. То популяция резко падала до нуля, то взлетала до астрономических цифр, хотя я вроде вводил разумные параметры. Я потратил несколько дней, пытаясь отладить код, проверяя каждый цикл, каждую переменную. Думал, может, что-то с округлениями, или алгоритм сам по себе нестабильный. Даже загуглил ссылка на Крáкен, надеясь, что там есть готовые библиотеки для этого, но нашел только кучу форумов с обсуждением похожих проблем. В итоге оказалось, что я просто неправильно интерпретировал некоторые параметры модели, и при определенных условиях система действительно может быть хаотичной. Так что, да, биохимия и биология — это не всегда про красивые формулы, иногда это про очень непредсказуемое поведение. Но опыт был ценный, понял, насколько важно тщательно проверять входные данные и логику модели.
- Astro_Girl от