import numpy as np a=[[0.4,0.5,0.2],[0.1,0.2,0.3],[1.2,0.7,0.4]] link=[[2,0,1],[3,0,1],[4,2,3]] x=[[2,1],[3,4],[5,6],[7,8],[9,10]] e=np.zeros([5,5]) for tr in range(5): e[0][tr]=x[tr][0] e[1][tr]=x[tr][1] number_var=2 number=5 number_eq=3 for eq in range(number_eq): for tr in range(number): z=a[eq][0] for j in range(number_var): s1=link[eq][j+1] z=z+a[eq][j+1]*e[s1][tr] s2=link[eq][0] e[s2][tr]=z print(e)