隨機(jī)模型--北太天元學(xué)習(xí)21
現(xiàn)實(shí)生活中的許多現(xiàn)象都有不確定因素。隨機(jī)模型是一個(gè)考慮到這種隨機(jī)性影響的模型。
例如,預(yù)測(cè)天氣或誰(shuí)將贏得足球比賽的預(yù)測(cè)包含了不確定性。
首先,我們將定義隨機(jī)變量,并討論如何在北太天元中生成隨機(jī)數(shù)。隨機(jī)變量X是一個(gè)具有未知值的變量,該值取決于偶然性。X可以取的所有可能值的集合稱為樣本空間。隨機(jī)變量由概率分布定義,該概率分布描述了樣本空間給出的可能結(jié)果的概率。
隨機(jī)變量可以是離散的,也可以是連續(xù)的,這取決于樣本空間的性質(zhì)。離散隨機(jī)變量具有可數(shù)或有限的樣本空間,連續(xù)隨機(jī)變量具有不可數(shù)的無(wú)限樣本空間。要在北太天元中生成隨機(jī)數(shù)可以使用rand。這將在區(qū)間[0,1]中生成一個(gè)隨機(jī)數(shù)。
您也可以使用rand(n)生成nxn個(gè)隨機(jī)數(shù)組成的矩陣,或者使用rand(n,m)生成隨機(jī)數(shù)組成的n×m矩陣。
要在[0,1]以外的區(qū)間生成隨機(jī)數(shù),只需通過(guò)乘法和/或加法進(jìn)行縮放。例如,要在區(qū)間[a,b]中生成一個(gè)隨機(jī)數(shù),可以使用(b-a)*rand+a。我們可以把生成隨機(jī)數(shù)的過(guò)程看作是從一個(gè)均勻分布的隨機(jī)變量中取樣(sampling)。
均勻分布的隨機(jī)變量是連續(xù)隨機(jī)變量的一個(gè)簡(jiǎn)單例子,如果變量在一個(gè)區(qū)間內(nèi)以相等的概率取值。我們將X~U(a,b)表示為區(qū)間[a,b]上的一致隨機(jī)變量。要在區(qū)間[8,10]中生成均勻分布的隨機(jī)值,請(qǐng)使用2*rand+8。
在實(shí)踐中,我們通常會(huì)對(duì)僅僅取有限個(gè)值的的隨機(jī)變量做取樣,例如,一個(gè)普通的六面體色子擲一次面朝上的點(diǎn)數(shù)取值X僅僅只有1,2,3,4,5,6留個(gè)數(shù)值, 此時(shí)我們稱樣本空間S={1,2,3,4,5,6}。 我們可以使用[0,1]上的均勻分布和rand函數(shù)來(lái)模擬擲色子得到點(diǎn)數(shù)。
使用這種分布,區(qū)間[0,1]的所有值都有同樣的可能被選擇,因此將區(qū)間劃分為長(zhǎng)度為1/6的6個(gè)相等的子區(qū)間, n個(gè)子區(qū)間和色子面朝上的隨機(jī)量X的n個(gè)離散值之間產(chǎn)生一對(duì)一的對(duì)應(yīng)關(guān)系。
為了隨機(jī)選擇X的六個(gè)值中的一個(gè),首先讓u∈[0,1]是區(qū)間[0,1]上均勻分布的隨機(jī)值。將區(qū)間[0,1]劃分為六個(gè)子區(qū)間[0,1/6),[1/6,2/6),..., [5/6,1],我們注意到區(qū)間u包含在哪個(gè)區(qū)間中,并賦予x∈S的值。對(duì)于u∈[0],1/6),設(shè)x=1;對(duì)于u∈[1/6,2/6],設(shè)x=2;
..., 并且對(duì)于u∈[5/6,1],設(shè)x=6。
我們回顧一下離散模型,態(tài)(state)是隨著時(shí)刻t變換的,給出了兩個(gè)時(shí)刻t, t+1 之間的關(guān)系, 例如
?? x_{t+1} = f( x_{t} ),
其中 f 是一個(gè)給出 x_{t} 到 x_{t+1} 的確定性關(guān)系的映射。 在這一節(jié),我們將學(xué)習(xí)的是, x_{t+1}和x_{t}的關(guān)系不完全是確定性的, 而是增加了一些隨機(jī)因素。 例如,一個(gè)醉漢在t時(shí)刻的位置是 x_t, 那么下一個(gè)時(shí)刻他的位置是隨機(jī)的向前或者向后的,
?? ? x_{t+1} = x_t + X(t)
其中X(t) = 1 表示t時(shí)刻擲硬幣出現(xiàn)正面向上的事件,X(t) = -1 表示t時(shí)刻擲硬幣出現(xiàn)背面向上的事件。 也就是說(shuō),在t時(shí)刻 X(t)的取值是隨機(jī)的,可能是+1, 可能是-1. 這樣的隨機(jī)模型也是有很多應(yīng)用的。例如我們要去找這個(gè)醉漢,在去找之前,我們先計(jì)算醉漢出現(xiàn)在哪些點(diǎn)的概率最大, 我們就多次模擬計(jì)算醉漢走的路徑,然后統(tǒng)計(jì)醉漢出現(xiàn)在哪些點(diǎn)的概率最高。
醉漢走丟的例子, 我用視頻來(lái)說(shuō)吧, 用的是下面的腳本.
%北太天元模擬隨機(jī)游走
clc;
clear all;
clf;
close all;
hold off
load_plugin("time") %
N = 100; % 每一次出發(fā)后走的總步數(shù),每一步x方向和y方向上走+1或者-1的距離
總次數(shù) = 200; % 走的總次數(shù)
x_t(1) = 0;?? %初始位置的x坐標(biāo)
y_t(1) = 0;? %初始位置的y坐標(biāo)
for m=1:總次數(shù)
?? ?plot(-25:25,-25:25)
?? ?hold on
? for n = 1:N %? 隨機(jī)確定每一步走到哪個(gè)位置
? ?? ?% rand生成[0,1]之間的均勻分布, rand-0.5 的符號(hào)為正負(fù)的概率都是0.5
? ?? ?%根據(jù) rand-0.5的符號(hào)來(lái)確定是走+1或者-1,
? ?? ?% rand-0.5 的符號(hào)可能取為0,這個(gè)概率是0,可以忽略。
??? sx = sign(rand-0.5);
??? x_t(n+1) = x_t(n) + sx;
??? sy = sign(rand-0.5); % 和 sx 一樣
??? y_t(n+1) = y_t(n) + sy;
??? plot(x_t(n:n+1), y_t(n:n+1),'LineWidth', 10);
??? str = sprintf("第%d次出發(fā), 第%d步",m,n)
??? title(str)
??? pause(0.2)
? end
? ?? ?clf;
? ?? ?plot(-25:25,-25:25)
? ?? ?hold on
? plot(x_t, y_t,'LineWidth',10);
??? pause(1)
? hold off
end
還可以參考兩個(gè)趣味應(yīng)用:
【電腦算卦簡(jiǎn)潔版-filmage】 https://www.bilibili.com/video/BV18s4y1f7vc/?share_source=copy_web&vd_source=2adc5aa7a702b808eb8b31dbd210f954
【如何找到合適的另一半:一個(gè)數(shù)學(xué)解決方案】 https://www.bilibili.com/video/BV1Mk4y1M7Lu/?share_source=copy_web&vd_source=2adc5aa7a702b808eb8b31dbd210f954