Solve simultaneous equations using the Newton-Raphson method in Python,,''' soln = n
文章由Byrx.net分享于2019-03-23 10:03:39
Solve simultaneous equations using the Newton-Raphson method in Python,,''' soln = n
''' soln = newtonRaphson2(f,x,tol=1.0e-9). Solves the simultaneous equations f(x) = 0 by the Newton-Raphson method using {x} as the initial guess. Note that {f} and {x} are vectors.'''from numpy import zeros,dotfrom gaussPivot import *from math import sqrtdef newtonRaphson2(f,x,tol=1.0e-9): def jacobian(f,x): h = 1.0e-4 n = len(x) jac = zeros((n,n)) f0 = f(x) for i in range(n): temp = x[i] x[i] = temp + h f1 = f(x) x[i] = temp jac[:,i] = (f1 - f0)/h return jac,f0 for i in range(30): jac,f0 = jacobian(f,x) if sqrt(dot(f0,f0)/len(x)) < tol: return x dx = gaussPivot(jac,-f0) x = x + dx if sqrt(dot(dx,dx)) < tol*max(max(abs(x)),1.0): return x print 'Too many iterations'
评论关闭