在Lisp代码中使用(sqrt x)
我在用lisp编写符号微分时遇到了一些问题。 我试图写sqrt(x)的导数,但当我在代码中使用这个变量时,它告诉我x没有定义在Lisp代码中使用(sqrt x),lisp,common-lisp,clisp,Lisp,Common Lisp,Clisp,我在用lisp编写符号微分时遇到了一些问题。 我试图写sqrt(x)的导数,但当我在代码中使用这个变量时,它告诉我x没有定义 ;---------------------------------------- ; deriv sqrt ;---------------------------------------- (defun derivsqrt (expr var) (smult (smult (sdiv 1 2) (sqrt (secon
;----------------------------------------
; 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(第一个表达式))(derivsqrt expr var)) 我正在用:(deriv'(sqrt(*3x))'x)测试它
有人能帮忙吗?
(第二个表达式)
是列表(*3 x)
,它不是一个数字,但函数sqrt
需要一个数字作为参数。既然您说要进行符号微分,您可能应该返回一个包含符号sqrt
的列表,而不是调用该函数。该函数似乎假定expr
是一个至少包含两个元素的列表。你在传递什么?为什么不包含错误消息?