Brian_-_Matlab_R2007_s_nulya_33 (771739), страница 35
Текст из файла (страница 35)
(150000, 360, гаее~регоепк*регуеаг))))) епо Васе (%) Мопс)з1у Раужепс ($) 482.06 1.00 2.00 553.51 3.00 630.83 713.74 4.00 5.00 801.89 6.00 894.85 992.17 7.00 8.00 1093.36 9.00 1197.95 10.00 1305.48 Обратите внимание на использование команды йогжае Ьап)», чтобы выводить числа с плавающей запятой с двумя цифрами после десятичной точки. Есть другой способ понять зти вычисления, он несколько хитроумнее и использует возможности среды МАТ(АВ из области линейной алгебры. А именно, мы можем записать основное уравнение Р =Рит — Я в матричной форме это выражение выглядит следующим образом = Вк,и, где =Л и Мы можем проверить полученное выражение с помощью перемножения матриц: Глава 10.
Прикладные задачи » вРзав к Рз В = [га -к) 0 1) з ч = [Рз 1) з В*ч 18$ кг'Р-К что соответствует формуле, которую мы рассматривали выше. Таким образом, вектор-столбец [Ра 1), получающийся после и платежей, может быть вычислен с помощью умножения слева начального вектора [Аз 1) на матрицу В". Полагая, что х > 1, то есть, задана положительная процентная ставка, вычисления » [е1депчеококв, о1адопаИокза) = ейд(В) ейдепчессогв = 1, 1] [ О, (ш-1)/К] с]1адопа1йогш = ( ш, О] О, 1] показывают нам, что матрица В обладает собственными значениями т, ) и собст- венными векторами 0 (/л — 1)/Я .У/Я Мы можем найти коэффициенты: » [х, у) = во1че('А = х*1 + у*1', '1 = х*О + у" Т/К') (Л* Т-К) / Т 1/Т*К Теперь мы можем записать вектор [Аз 1) как линейную комбинацию собственнык векторов: )4дт(.д8 (88 таким образом, мы получим ж(А-(А/./)) +(Я/./) В" =(А — (Я/,У))т" +(Я/,У) Таким образом, сумма займа, остающаяся после и платежей, равна: Р =((АЛ-Я)т" +Я)/ У = Ат" -Я(т" — 1)/ У.
Мы получили такой же результат, что и ранее. Чтобы подвести итог, давайте определим сумму денег А, которую заемщик может позволить себе заимствовать как функцию от того, какую ежемесячную плату и он может позволить себе выплачивать. Мы просто решаем наше уравнение относительно а, предполагая, чтобудетр ~ 0 послеЫплатежей. » ВО1ЕЕ(аат"Ы - К'"(В"Ы - 1)/(В - 1), А) К* (ш"Ы-1) / (ш"Ы) / (ш-1) » Еог гасе ж 1и10, Мвр((гасе, боиЪ1е(виЬв(апв, (В, Ы, ж), (1500, 360, 1 + гаее*регоепеерегуеаг)))1) иахбша1 (.сап (8) 466360.60 405822.77 355784.07 314191.86 279422.43 250187.42 Каее (В) 1.00 2.00 3.00 4.00 5.00 6.00 Например, если вы покупаете дом и можете позволить себе платить 1500 $ в ме- сяц за 50-летний займ с постоянной процентной ставкой, то наибольшая сумма займа как функция от процентной ставки будет » а1вр(' каке (зз) ыаж1жа1 ьоап (Ф) ')а Глава 10.
Прикладные задачи 187 225461.35 7.00 8.00 204425.24 186422.80 170926.23 9.00 10.00 Моделирование Монте-Карло Чтобы выполнить долгосрочное статистическое прогнозирование результатов, для вероятностного процесса часто полезно провести моделирование, основан- ное на понимании основных вероятностей. Эта операция называется метод Монте-Карло. В качестве примера мы рассмотрим игру в казино, когда игрок держит пари против казино, а казино выигрывает в 51 % случаев.
Вопрос заключается в следующем: сколько игр должно пройти прежде, чем с достаточной уверенностью можно будет сказать, что казино скорее склонно к выигрышам, чем к проигрышам? Этот сценарий достаточно обычен, так что математики давно установили весьма точную статистику по этому вопросу. Но здесь мы хотим показать, как получить хорошее представление о том, что может случиться на практике, не погружаясь глубоко в математику. » кезгепце = взвзз(0.51 - казй) течение = Чтобы смоделировать сразу несколько игр, скажем, десять игр, мы можем с помощью команды капе (1, 10) создать вектор из десяти случайных чисел и затем применить эту же операцию.
» кезгепиев вдвп(0.51 - кап(((1, 10) ) гечепиев = Сначала мы получим выражение, которое на основании случайного числа вычисляет чистый доход казино от одной игры. Для создания случайного числа от 0 до 1 мы воспользуемся функцией гапд из среды МАТ(АВ. Если случайное число получилось меньше или равно 0.51, то казино выигрывает одно пари, если число превышает 0.51, то казино проигрывает пари. (В игре с высокими ставками каждая ставка может стоить 1000 $. Таким образом, казино важно знать, как много проигрышей ему придется выдержать прежде, чем получить прибыль, чтобы сразу же не обанкротиться!) Следующее выражение выдает 1, если результат функции гапз( будет меньше, чем 0.51, и -1, если результат функции гапз( будет больше, чем 0.51 (мы так же получим О, если результат функции гапз( будет точно равен числу 0.51, но такой случай крайне маловероятен).
188 МАТ(.АВ Со1шппв 1 с)згопд)з 5 1.00 1.00 -1.00 -1.00 -1.00 Со1шппв б С)згопд)з 10 1.00 1.00 -1.00 1.00 -1.00 Каждое число 1 представляет игру, в которой казино выиграло, а каждое значение -1 представляет игру, в которой оно проиграло. Для большего числа игр, скажем 100, в среде МАТ1 АВ мы можем просуммировать доход от отдельных пари следующим образом: » ргогас = вчж(вздтз(0.51 - гази%(1, 100) ) ) ргобзс Результат представляет чистую прибыль (или убытки, если он отрицательный) для казино после 100 игр. В среднем за калсдые 100 игр казино должно выигрывать 51 раз, а игрок (и), должны выигрывать 49 раз, таким образом, казино должно получить прибыль в 2 единицы (в среднем).
Давайте посмотрим, что получится в нескольких пробных запусках. » ргоНев в взза(вадзз(0.51 — гвззИ100, 10) ) ) ргойзев Со1ипшв 1 с)згоид)з 5 6.00 2.00 -4.00 14.00 -12.00 Со1шппв б С)згопд)з 10 0 -10.00 12.00 0 12.00 Мы видим, что чистая прибыль может значительно колебаться от одного набора 100 игр к другому и что существует большая вероятность того, что казино потеряет деньги после 100 игр. Чтобы получить представление о том, как чистая прибыль может быть распределена в общем случае, мы можем повторить наш эксперимент большое число раз и построить гистограмму результатов.
Следующая функция вычисляет чистую прибыль для )с различных испытаний по п игр каждое. » ргойзсв = Ф(п, )с) вша(в*'дп(0.51 - гапка(п, )с) ) ) ргой1Св Я(п,)с) вшв(вздп(0.51 — ганс)(п, )с) ) ) Эта функция должна создать матрицу из случайных чисел размером и х )с и затем выполнить те же самые операции, что были проделаны выше с каждым элементом матрицы, чтобы получить матрицу с записями 1, если казино выиграло, и -1 — для игр, когда казино проиграло. Наконец, данная функция суммирует столбцы Глава 10. Прикладные задачи 189 матрицы, чтобы получить векго!тсз року из !с злементов, каждый из которых прелставляет общую прибыль от гтолбца за п игр.
'!еперь мы построим гистограмму результатов функции ргоб!в для п = 100 и !с 100. '!'горетичгски, казино могло выиграть или потерязь ло !00 единиц. но практически мы нзхолим, сто !эезультаты почти всегда находятся в пределах 80 или 190 мдт(.де Согласно теореме центр» явного предела, когда и и, и )с являнатся большими чис лами, гистограмма должна быть сформирована в виде «колоколообразной кривой», и на рисунке выше мгя вилим, что вта форма начинает появляться. Давайте перейдем далыве к )0000 испьпаниям. » ь1ве (ркоквев (100, 10000)„ -40;2з40)( вхвв кхд)ав Глава 10.
Прикладные задачи 1Я1 испытании. Это важно для казино, поскольку если бы разброс бьи бы пропорционален л, то казино никогла не могло быть достаточно уверено в получении прибыли. Когда мы увеличивзеи п в 10 раз, разброс может увеличиться только в ч10 раз или немного больше, чем в 3 раза. Обр;лите внимание на за, что после 1()00 игр казино более вероятно будет в Теперь давайте посмотрим, спо происходит после 10000 игр. Мы ожидаем, что в атой слу ~ае казино в срсднем будет выигрывать 200 единиц и на основе паше~о раппего рассмотр( ния диапззоц значений, который мы используем для вострое ния гистограммы, необходимо увели юить примерно в три раза по сравненикз с предыдущим случаем.
Давайте перейдем непосрсдственно к 10000 испытзциям. На сей раз мы сделаем 100 партий по 1()0 испытаний в каж лой из.ния 194 мяты Х = зеков(п + 1, 1) Х(1) = ХЕп1С; Еог )с = 1:и Х()с + 1) = Е (Х(К) , к); епс) Фактически, это простая программа для итерационных вычислений значени1 последовательности х„м = Е(х„, к), и к О, для заданной функции Е, значени.
ее параметра к и начального значения хэ этой последовательности. Теперь давайте применим эту программу, чтобы вычислить численность дву видовза5-летние промежутки временидляк = 0.1,азатемк ~ -0.1: » Х1п1с = 100) Е = 9(х, к) х*(1 + к)) » х = аевед (Е, хйпав, 100, 0.1) а » Еокхав 1опд) Х(1: 5: 101) апв = 1.0е+006 * 0.00010000000000 0.00016105100000 0.00025937424601 0.00041772481694 0.00067274999493 0.00108347059434 0.00174494022689 0.00281024368481 0.00452592555682 0.00728904836851 0.01173908528797 0.01890591424713 0.03044816395414 0.04903707252979 0.07897469567994 0.12718953713951 Глава 10. Прикладные задачи 195 0.20484002145855 0.32989690295921 0.53130226118483 0.85566760466078 1.37806123398224 » Х Хаем (й, Хзвзв, 100, -0.1) у Х(1с5 с 101) 1.0е+002 * 1.00000000000000 0.59049000000000 0.34867844010000 0.20589113209465 0.12157665459057 0.07178979876919 0.04239115827522 0.02503155504993 О. 01478088294143 0.00872796356809 0.00515377520732 0.00304325272217 0.00179701029991 0.00106111661200 0.00062657874822 0.00036998848504 0.00021847450053 0.00012900700782 0.00007617734805 0.00004498196225 0.00002656139889 (ОЕ МАТ1 АЕ В первом случае численность растет быстро, а во втором — быстро уменьшается Действительно, из модели видно, что для любого х отношение Р„/Р „= (1 + к) и из этого следует, что Р„= Ро (1 + к)", х 2 О.
Это выражение используетсз для расчета экспоненциального роста/спада. Эта модель предсказывает росз численности без какого-либо ограничения (для видов с увеличивающейся чис ленностью) и поэтому она не является правдоподобной. Наша следующая модель учитывает сдерживание роста численности, вызванное ограниченным просгран ством, ограниченными пищевыми ресурсами, конкурентами и хищниками. Логистический рост Предыдущая модель предполагает, что относительное изменение численности постоянно, то есть ( Р„„— Р„) / Р„= г. Теперь давайте добавим условие, которое будет сдерживать рост, а именно (Р„„-Рэ)/Р„=к — иР„. Мы упростим задачу, приняв, что ц ~ 1 + г так, что наша рекурсивная связь примет вид Р„„= иР„(1 — Р„), где ц является положительной постоянной. В этой модели численность Р долж. на лежать между 0 и 1, и она должна быть понята как процент от максимально возможной численности в рассматриваемой окружающей среде.
Так что давайте определим функцию, которую мы будем использовать в процедуре итерации: » Е = Ф(х, ц) ц*х*(1 - х) ) Теперь давайте вычислим несколько примеров и воспользуемся командой р1о1, чтобы отобразить результаты. » Х1х1Ф = 0.5) Х = 1ввея(Е, Хйх10, 20, 0.5)) р1оа(Х) 0.5 ОЛ о.з 0.2 ол о 0 5 10 15 20 25 » Х ~~ 1КВЕ0((Е, Х1ХЫ, 20, 1); Р1ОФ(Х) Глава 10. Прикладные задачи 197 О.б 0.4 а.з о.г ол о о 10 го » Х = 1евео((0, ХАпае, 20, 1.5) з р1ов(Х) Об олб 0.4 о.зб 0 б 10 1б 20 2б ° > Х зввец(0, Х1пЫ, 20, 3.4) 2 р1ов(Х) ол о.б ол о.б 0.4 ' о б 1о 10 го гб ) первом вычислении мы использовали нашу итерационную программу, чтобы вычислить плотность популяции для 20 временных промелсугков, принимая лоистическую постоянную роста и = О.