import numpy as np def NewtonRaphson(F,J,x0,tol=0.001): x=x0 error=10**5 n=0 while error > tol: dx= -np.linalg.solve(J(*x),F(*x)) #np.linalg.solve=Solve a linear matrix equation, or system of linear scalar equations. print(dx) error= np.linalg.norm(dx)/np.linalg.norm(x) #np.linalg.norm=Matrix or vector norm. x+=dx; n+=1 print("Number of Iteration:",n) return x F= lambda x, y: [x**2+y**2-3,x*y-1] J= lambda x, y: [[2*x,2*y],[y,x]] print("[x,y]=",NewtonRaphson(F,J,[0.5,1.5],0.0001))