我有以下代码并得到此错误: S[i+1,:]=(S[i,:]+np.cumsum公司(np.sqrt公司(dt)np.random.随机(nsims),轴=0))+ε加np.随机.泊松(λ加上(M,nsims))
ValueError:无法将输入数组从形状(20,10)广播到形状(10)
sigma = 0.1
dt = 0.05
lambda_plus = 2
lambda_minus = 2
M = 20 #number of steps
epsilon_plus = 1.0/2
epsilon_minus = 1.0/2
T = 1
nsims = 10
s = 100
S = s*np.ones((M,nsims))
def price(lambda_plus, lambda_minus, M, T, dt, nsims):
for i in range(M-1):
S[i+1,:] = (S[i,:] + np.cumsum(np.sqrt(dt)*np.random.randn(nsims),axis=0)) + epsilon_plus*np.random.poisson(lambda_plus,(M,nsims))
return S
当我加上epsilon加上*np.随机.泊松(λ加上(M,nsims))。如何将此部分添加到S?你知道吗
问题是这个表达式:
添加
sigma*math.sqrt(dt)*A
、epsilon_plus*B
和epsilon_minus*C
的所有三个术语都具有形状(201,)
,添加到S[t-1]
后的结果也具有形状S[t]
,但您试图将其分配给具有形状(1,)
的S[t]
。你知道吗您需要解释一下您希望在
S[t]
中存储什么,以便我提供一个解决方案—我不想从您的代码中逆向工程/猜测意图。你知道吗相关问题 更多 >
编程相关推荐