Я пытаюсь создать функцию, которая проверяет, являются ли матрица и вектор стохастическими (сумма элементов = 1 для всего столбца как матрицы, так и, конечно, вектора), если да, она применяет матричное произведение между M и p, в противном случае возникает ошибка. Я создал функцию под названием is_sto для проверки суммы = 1 для векторов. Я пробовал что-то, что не работает... Я немного скептически отношусь к тройному И, но я не смог сделать лучше. Можно подсказку? Большое спасибо
p=np.array([[0.5],[0.5]])
M=np.array([[0.3,0.5], [0.7,0.5]])
b=np.zeros(2)
def matrix_stoch (p,M):
for column in M.T:
b[None,:]=is_sto(column)
v= (b[0] and b[1] and is_sto(p))
if v == True:
np.dot(M,p)
else:
raise ValueError('no stochastic matrix')