现在,我在学习同情。在尝试一些有关微分方程的代码时,我将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
。逻辑上的答案是,我认为它应该是零
另外,当我试图寻找二阶导数时,它给了我一个错误,这意味着f
是2
,它不能是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)
,但这不是问题所在
在SYMPY 1.7.1中测试
如果在函数的第一个参数中不提供输入,则该操作将以较少的符号形式进行计算,dx like=arg2、dy like=arg3和order=arg4
相关问题 更多 >
编程相关推荐