Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
牛顿'的实现;Clojure中的s方法_Clojure - Fatal编程技术网

牛顿'的实现;Clojure中的s方法

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

我试图在clojure中实现牛顿的方法来解方程f(x)=0。函数采用以下参数:f(函数)f'(函数的导数)n(迭代次数)=10和x0(初始猜测)=10

(定义牛顿法[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)))
     )