本文將從多個方面對隨機漫步的傻瓜總結做詳細的闡述,包括隨機漫步概念、Python實現、MATLAB實現以及實際應用案例。
一、隨機漫步概念
隨機漫步是指一個物體在空間內以隨機的方式進行運動,並且每次運動的距離和方向都是隨機的。在二維平面內,如果一個物體從原點開始,每次向上、下、左、右四個方向中的一個方向前進一步,那麼這個物體的運動軌跡就稱為二維隨機漫步。在三維空間中,一個物體從原點開始,每次向六個方向中的一個方向前進一步,則稱為三維隨機漫步。
隨機漫步是一種非常基礎的隨機過程,具有很多實際應用。例如金融領域中的股票價格走勢、物理學中的分子擴散等都與隨機漫步有關。
二、Python實現
在Python中,可以使用matplotlib庫中的pyplot模塊來進行隨機漫步軌跡的繪製。
import matplotlib.pyplot as plt
import random
def random_walk(n):
x, y = 0, 0
for _ in range(n):
dx, dy = random.choice([(0,1), (0,-1), (1,0), (-1,0)])
x += dx
y += dy
return x, y
def plot_walks(n_walks, n_steps):
plt.figure(figsize=(10,6))
for i in range(n_walks):
x, y = random_walk(n_steps)
plt.plot(x, y, label=f"Walk {i+1}")
plt.title(f"{n_walks} Random Walks ({n_steps} Steps Each)")
plt.xlabel("X position")
plt.ylabel("Y position")
plt.legend()
plt.show()
plot_walks(5, 1000)
三、MATLAB實現
MATLAB中也提供了類似於Python中的實現方式,可以使用randi函數來生成從1到4的隨機整數來表示四個方向上的移動。
n = 1000;
x = zeros(n, 1);
y = zeros(n, 1);
for i = 2:n
move = randi(4);
if move == 1
x(i) = x(i-1) + 1;
y(i) = y(i-1);
elseif move == 2
x(i) = x(i-1) - 1;
y(i) = y(i-1);
elseif move == 3
x(i) = x(i-1);
y(i) = y(i-1) + 1;
else
x(i) = x(i-1);
y(i) = y(i-1) - 1;
end
end
plot(x, y)
title("Random Walk")
xlabel("X position")
ylabel("Y position")
四、實際應用案例
隨機漫步的應用非常廣泛,下面介紹一個應用於金融領域的案例:
假設某股票價格的漲跌幅度服從正態分布,均值為0,標準差為1。如果以當前股價為基準每隔一秒鐘進行一次交易,每次交易的價格變動可以視為進行一次隨機漫步。我們可以使用隨機漫步來模擬該股票價格在未來若干秒後的變動趨勢,從而幫助投資者做出投資決策。
下面是基於Python實現的隨機漫步模擬代碼:
import numpy as np
seed_price = 100
n_steps = 100
dt = 1
sigma = 1
prices = np.zeros(n_steps)
prices[0] = seed_price
for i in range(1, n_steps):
prices[i] = prices[i-1] * np.exp(sigma * np.sqrt(dt) * np.random.normal())
plt.plot(prices)
plt.title("Stock Price Random Walk")
plt.xlabel("Time (seconds)")
plt.ylabel("Price")
plt.show()
以上代碼就是基於隨機漫步模擬了某股票價格在未來100秒內的價格變化趨勢。
原創文章,作者:GHQKD,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/374194.html
微信掃一掃
支付寶掃一掃