牛顿'的实现;Clojure中的s方法
我试图在clojure中实现牛顿的方法来解方程f(x)=0。函数采用以下参数:f(函数)f'(函数的导数)n(迭代次数)=10和x0(初始猜测)=10牛顿'的实现;Clojure中的s方法,clojure,Clojure,我试图在clojure中实现牛顿的方法来解方程f(x)=0。函数采用以下参数:f(函数)f'(函数的导数)n(迭代次数)=10和x0(初始猜测)=10 (定义牛顿法[f'n x0] (如果(嗯,你似乎至少有两个问题。 首先,您的条件将始终返回true(假设(fx0)返回一个数值),因此这可能不是您想要做的 另外,为了在clojure中正确实现递归函数,您应该了解一下,否则可能会遇到堆栈溢出(在这种特殊情况下不太可能,但仍然如此) 另一件小事,与其使用(+n1),不如使用(inc n)这是什么(似
(定义牛顿法[f'n x0]
(如果(嗯,你似乎至少有两个问题。
首先,您的条件将始终返回true(假设(fx0)
返回一个数值),因此这可能不是您想要做的
另外,为了在clojure中正确实现递归函数,您应该了解一下,否则可能会遇到堆栈溢出(在这种特殊情况下不太可能,但仍然如此)
另一件小事,与其使用(+n1)
,不如使用(inc n)
这是什么(似乎中缺少了一个参数,n
和x0
,这两个参数在牛顿方法的内部调用中是反向的。
(defn newtons-method [f f' n x0]
(if (<= (f x0))
n
(newtons-method f f' (- x0 (/ (f x0) (f' x0))) (+ n 1)))
)