Примеры математических моделей Модель спроса – предложения Условие и решение задачи заимствовано из книги Уизем Дж. Линейные и нелинейные волны. - М.: Мир, 1977. 622с. Содержательная постановка задачи Представим себя на месте некоего фермера, который каждый год выращивает на своем поле пшеницу на продажу. Запасов, которые хранились бы больше года, он не делает. То есть живет если и не одним днем, то одним годом. Решение о том, сколько пшеницы сеять, принимается простейшим образом, с учетом цен предыдущего года, а именно: если цены были высокие – в этом году надо сеять пшеницы больше, а если низкие – меньше. Спрос на пшеницу в течение года зависит прежде всего от ее цены в момент продажи. Когда цена растет, спрос, естественно, падает. И наоборот. Необходимо описать поведение цен в ближайшие годы как функцию от первоначальной цены. Концептуальная постановка Введем обозначения: • pn – цена за единицу веса пшеницы в n-м году • sn – предложение (объем выращенной фермером пшеницы) пшеницы в n-й год (в единицах веса); • dn – спрос на пшеницу в n-й год (в единицах веса). Примем следующие предпосылки. • Объектом исследования является зависимость цены pn на пшеницу от ее первоначальной цены p0. • Предположим, что предложение sn+1 будущего года зависит линейно от цены pn в этом году: чем выше pn, тем больше sn+1. Очевидно, что цена на пшеницу не должна быть меньше некоторой минимальной величины, покрывающей затраты на ее производство, лишь в этом случае величина предложения sn+1 будет больше нуля. • Предположим, что спрос будущего года dn+1 зависит линейно от цены pn+1 в том же году: чем выше цена pn+1, тем меньше спрос dn+1. Очевидно, что самый большой спрос на пшеницу должен существовать при pn+1=0. • Предположим, что рыночная цена pn+1 определяется равновесием между спросом dn+1 и предложением sn+1. Требуется описать поведение цен в последующие годы p1, p2, p3, ... в зависимости от значения цены p0. Математическая постановка Выпишем систему уравнений, исходя из принятых предположений: sn+1 = а pn - b (1) dn+1 = - c pn+1 + g (2) sn+1 = dn+1 (3) Здесь a, b, c, g - положительные вещественные числа. Значения этих величин характеризуют динамику цены на рынке и специфичны для каждого продукта, например, отношение b/a характеризует минимально допустимую цену, а величина g - максимально возможный спрос; p0 задано. Решение задачи Подставляя (1) и (2) в (3), получим а pn - b = - c pn+1 + g. Введем новые положительные константы A = a/c>0, B = (b/c + g/c) > 0 Приходим к соотношению pn+1 = B - A pn Это уравнение представляет некоторое линейное рекуррентное соотношение, которое позволяет построить последовательность интересующих нас решений p1, p2, p3, ... . Попробуем вывести общую формулу pn = f(p0). Пусть p0 задано. Тогда p1=B-Ap0 p2=B(1-A)+A2p0 p3=B(1-A+A2)-A3p0 Некоторая зависимость проглядывается, но вряд ли она очевидна. Но стоит умножить и разделить первое слагаемое на (1+А) – и все встает на свои места. p1= p2 = p3= B B B 1A− A p 0= 1−−A−A p 0= 1−−A1−A1 p0 1 A 1 A 1 A B B B 1− A1A A2 p 0= 1−A2 −A2 p 0= 1−−A2 −A2 p 0 1A 1 A 1 A B B B 1− AA2 1 A−A3 p0 = 1 A3−A3 p0 = 1−−A3 −A3 p0 1 A 1A 1A Теперь общая формула очевидна: pn = B 1−−An −An p0 1A Расчет Проведем расчеты для некоторых значений A и B. Предварительное изучение уравнения показывает, что основное влияние на динамику цены оказывает параметр А. Какое именно – выясним, положив В=1. 1−− An pn = −An p 0 1A Вычислим для различных значений А изменение цены из года в год в течение 12 лет. 1) А=0.5 Проведите расчет для другого значения цены, допустим: 0,2. Сравните полученные результаты. 2) А=1 Проведите расчет для другого значения цены, допустим: 0,3. Сравните полученные результаты. 3) А=1.2 Проведите расчет для другого значения цены, допустим: 0,45. Сравните полученные результаты. Разъясним эти ситуации качественно. Анализ (самостоятельная работа) 1) Предположим, цена на пшеницу в прошлом году была p0. Это невысокая цена. Поэтому много будет желающих ее купить. Однако – мало желающих продать по такой низкой цене. Спрос d0 превышает предложение s0. В этом случае, естественно, продавец начинает поднимать цену и поднимает ее до такой, которую готов заплатить избранный покупатель – p1. Покупателей так дорого купить пшеницу немного, но и желающих продать, как мы говорили, тоже мало. Но это уже высокая, хорошая цена. Поэтому фермер, и не один, готов по этой цене вырастить и продать большее количество пшеницы: предложение резко возрастает. Однако дорогую пшеницу никто не хочет покупать – спрос на нее низкий, как видно на графика, гораздо ниже предложения. Чтобы продать товар, производителям приходится сбрасывать цену, пока она не достигнет значения p2. Иначе товар останется не проданным. Но это уже низкая цена. Желающих покупать пшеницу по такой цене много, а продавать – мало. Цена начинает расти. Так происходит до тех пор, пока не установится оптимальная цена, когда спрос равен предложению – p*. s, d s(p) d(p) p p2 p0 p* p1 Чему равно значение p*? Рассмотрим общее уравнение: pn = B 1−−An −An p0 . 1A При 0<A<1 значение An стремится к 0 при увеличении n. Следовательно, p∗= B 1 A Убедимся в этом. В нашем расчете при В=1 и А=0,5 мы получили ≈0.666, что близко к теоретическому значению: 2/3. 2) В случае, когда А=1 ситуация та же, однако наклон графиков такой, что цена колеблется между двумя фиксированными значениями. s, d s(p) d(p) p p2 p1 p0 3) При А>1 цена тоже колеблется, но не сходится к определенной величине, а наоборот, изменяется с увеличением разности цен с каждым шагом. s, d d(p) s(p) p p2 p0 p1 p3 Численная реализация Нам в некоторой степени повезло: мы смогли найти общее решение рекуррентного уравнения. Конечно, мы просто догадались, как выглядит результирующая формула. Помимо этого, существуют специальные методы реше- ния рекуррентных уравнений. Но, как вы понимаете, даже они не гарантируют нахождение решения. В этом случае используется прямой численный расчет. Покажем, как проведенные выше вычисления реализуются численно. Исходная формула: pn+1 = B - A pn 1) В=1, А=0.5 Результат, как и ожидалось, получается тот же самый. Сделаем некоторые замечания. Для хранения результатов вычислений мы использовали массив p из 12 элементов. Нумеруются элементы массива в Scilab, начиная с 1. Номер элемента массива указывается в круглых скобках. Повторяющиеся вычисления реализованы в виде цикла for, переменная n которого меняется от 1 до 12 и означает номер года. Остальные вычисления представляем без комментариев. 2) В=1, А=1 3) В=1, А=1.2 Итоговая работа: «Дайте мне точку опоры...»