Ваша система написана не для удобства.Вы должны выделить с одной стороны константы , а с другой стороны переменные .Я сделал это:
+ X1 - R1*B*X2 - R1*D*X3 - R1*D*X4 - R1*E*X5 = R1*A
- R2*B*X1 + X2 - R2*C*X3 - R2*D*X4 - R2*E*X5 = R2*A
- R3*B*X1 - R3*C*X2 + X3 - R3*D*X4 - R3*E*X5 = R3*A
- R4*B*X1 - R4*D*X2 - R4*C*X3 + X4 - R4*E*X5 = R4*A
- R5*B*X1 - R5*C*X2 - R5*D*X3 - R5*E*X4 + X5 = R5*A
Я предлагаю вам сделать другую проверку ...
Как только это будет сделано, вы можете просто решить эту проблему с помощью numpy , как здесь:
# Import numpy
import numpy as np
# Define each constant ...
R1 = R2 = R3 = R4 = R5 = 1
A = B = C = D = E = 1
# Define each row of the system :
# Here, because of the 'R' factor and the symetry, I found
# quite faster doing like this :
row1 = R1*np.array([1, -B, -D, -D, -E])
row2 = R2*np.array([-B, 1, -C, -D, -E])
row3 = R3*np.array([-B, -C, 1, -D, -E])
row4 = R4*np.array([-B, -D, -C, 1, -E])
row5 = R5*np.array([-B, -C, -D, -E, 1])
# Create the matrix
mat = np.array([row1, row2, row3, row4, row5])
# The diagonal is equal to 1
for i in range(len(mat)):
mat[i,i] = 1
# Define the constant side
constant = A*np.array([R1, R2, R3, R4, R5])
# Resolve it !
res = np.linalg.solve(mat, constant)
print(res)