为什么未知函数的导数在辛中为1

2024-10-03 02:47:06 发布

您现在位置:Python中文网/ 问答频道 /正文

现在,我在学习同情。在尝试一些有关微分方程的代码时,我将f定义为一个函数,如下所示:

from sympy import *
f=symbols('f',cls=Function)
x,y=symbols('x,y')

当我试图写出一阶导数w.r.t.x时,我写了这样一句话:

diff(f,x)

它总是给出1。我的问题是为什么?这是否意味着f的默认值是x?这是不符合逻辑的,因为当我试图找到导数w.r.t.y时,它也是1。逻辑上的答案是,我认为它应该是零

另外,当我试图寻找二阶导数时,它给了我一个错误,这意味着f2,它不能是2

diff(f,x,2)
Traceback (most recent call last):

  File "<ipython-input-73-34a606e25841>", line 1, in <module>
    diff(f,x,2)

  File "C:\Users\osama\AppData\Local\Programs\Spyder\pkgs\sympy\core\function.py", line 2503, in diff
    return f.diff(*symbols, **kwargs)

  File "C:\Users\osama\AppData\Local\Programs\Spyder\pkgs\sympy\core\expr.py", line 3502, in diff
    return _derivative_dispatch(self, *symbols, **assumptions)

  File "C:\Users\osama\AppData\Local\Programs\Spyder\pkgs\sympy\core\function.py", line 1947, in _derivative_dispatch
    return Derivative(expr, *variables, **kwargs)

  File "C:\Users\osama\AppData\Local\Programs\Spyder\pkgs\sympy\core\function.py", line 1314, in __new__
    raise ValueError("First variable cannot be a number: %i" % v)

ValueError: First variable cannot be a number: 2

编辑:SymPy版本=1.8

我找到了“从代码角度”的解决方案,即我应该将其键入diff(f(x),x)diff(f(x),x,2),但这不是问题所在


Tags: inpycorelocallinediffusersappdata
1条回答
网友
1楼 · 发布于 2024-10-03 02:47:06

在SYMPY 1.7.1中测试

如果在函数的第一个参数中不提供输入,则该操作将以较少的符号形式进行计算,dx like=arg2、dy like=arg3和order=arg4

diff(f, x, x) = 1      # == diff(f, x) == diff(f, x, x, 1)
diff(f, y, y) = 1      # == diff(f, y) == diff(f, y, y, 1)
diff(f, x, y) = diff(f, y, x) = 0
diff(f, x, x, 0) = x
diff(f, x, x, 1) = 1
diff(f, x, x, 2) = 0

相关问题 更多 >