import numpy as np N = np.array([[0.436,-0.281, 0.121], \ [0.614, 0.064, 0.0461], \ [0.603, 0.230, 0.167]]) time = np.array([0.0, \ 0.5-np.sqrt(5)/10.0, \ 0.5+np.sqrt(5)/10.0, \ 1.0]) from scipy.optimize import fsolve y0 = 5 zGuess = np.zeros(6) # y1-y3 and dydt1-dydt3 def myFunction(z): y = z[0:3] dy = z[3:6] F = np.empty(6) F[0:3] = np.dot(N,dy) - (y-y0) F[3:7] = dy + y return F z = fsolve(myFunction,zGuess) print(z)