首页 > 解决方案 > 为什么 Mathematica 对导数产生看似错误的答案?

问题描述

我对我让 Mathematica 为我做的偏导数中的错误感到困惑。

具体来说,这就是我所拥有的: 我想采用的衍生物

我正在尝试对变量 θ 取以下变量的偏导数(为格式化道歉):

f=(1/4)(-4e((1+θ)/2)ψ+eN((1+θ)/2)ψ+eN((1+θ)/2-θd)ψ)-s

但是 Mathematica 产生的解决方案似乎与我自己求导时得到的解决方案大不相同。虽然 Mathematica 说 f wrt θ 的偏导数是:

(1/4)eψ(N-2)

手动,我得到并且非常有信心正确的答案是:

(1/4)eψ(N(1-d)-2)

也就是说,Mathematica 产生的东西在微分时会丢弃变量 d。我已经探索了在 Mathematica 中采用导数的不同函数,以及我正在使用的某些变量(例如 d)可能受到保护或以其他方式特殊的可能性,但我不能说我知道为什么答案是所以关闭。这是笔记本中第一次出现 d,所以它没有设置为 0。对于上下文,我试图确认函数的导数对于某些范围内的变量值是正的,我们有 d >0 和 d<(1/2)。这一切都是手工完成的,但我正在尝试与 Mathematica 确认,因为我将处理更复杂的函数并且需要确保我让 Mathematica 产生正确的导数。

标签: wolfram-mathematicaderivative

解决方案


您没有在eNand中添加空格θd,因此它认为它们是其他一些 2 字符变量。

在它们之间添加空格会产生预期的结果:

f[θ,e,N,ψ,d,s] = (1/4) (-4 e ((1+θ)/2) ψ + e N ((1+θ)/2) ψ + e N ((1+θ)/2 - θ d) ψ) - s;
D[f[θ, e, N, ψ, d, s], θ] // FullSimplify
(* 1/4 e (-2 + N - d N) ψ *)

推荐阅读