0

我在用 lisp 编写符号微分时遇到了一些问题。我正在尝试编写 sqrt (x) 的导数,但是当我在代码中使用此变量时,它告诉我 x 未定义。

;----------------------------------------
;       deriv sqrt
;----------------------------------------
(defun derivsqrt (expr var)
  (smult (smult (sdiv 1 2) 
                (sqrt (second expr)))  ; This line gives me error
         (deriv (second expr) var)))

我将这个函数称为:

((eq 'sqrt (first expr))
(derivsqrt expr var))

我正在测试它: (deriv '(sqrt (* 3 x)) 'x)

有人可以帮忙吗?

4

1 回答 1

2

(second expr)是不是数字的列表(* 3 x),但该函数sqrt需要一个数字作为其参数。既然你说你想做符号微分,你可能应该返回一个包含符号的列表sqrt,而不是调用函数。

于 2013-09-14T21:08:46.963 回答