У меня следующий код, и я получаю эту ошибку: не удалось передать входной массив из формы (201) в форму (1).Я понимаю причину ошибки, но не могу сделать это правильно.
import math
import numpy as np
import matplotlib.pyplot as plt
import random
from math import sqrt
s = 100
sigma = 0.1
dt = 0.005
M = 200
I = 1
lambda_plus=2
lambda_minus=2
epsilon_plus=1.0/2
epsilon_minus=1.0/2
S = np.zeros((M+1,I), dtype=np.float)
S[0] = s
for t in range(1, M+1):
X1 = np.random.poisson(lambda_plus, (M+1))
X2 = np.random.poisson(lambda_minus, (M+1))
S1 = [np.sum(X1[0:t]) for t in range(M+1)]
S2 = [np.sum(X2[0:t]) for t in range(M+1)]
A = np.random.standard_normal(M+1)
B = np.asarray(S1)
C = np.asarray(S2)
S[t] = S[t-1] + sigma*math.sqrt(dt)*A + epsilon_plus*B-epsilon_minus*C
Ошибка:
Traceback (most recent call last):
File "E:/Project/Python/snippets/snips.py", line 26, in <module>
S[t] = S[t-1] + sigma*math.sqrt(dt)*A + epsilon_plus*B-epsilon_minus*C
ValueError: could not broadcast input array from shape (201) into shape (1)