首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python不能在某一时刻计算导数

Python不能在某一时刻计算导数
EN

Stack Overflow用户
提问于 2021-12-20 11:31:33
回答 1查看 192关注 0票数 1

我用朱庇特笔记本。为什么当我想求P点的偏导数时,这个方法不起作用?

代码语言:javascript
复制
from sympy import *
P = (-3,-2)
def f(x,y):
    return x**3+3*x**2-9*x+y**3-12*y
def f_x(x,y):
    return diff(f(x,y), x)

当我输入f(P,P1)时,我得到了答案43。

当我输入f_x(x,y)时,得到f wrt的导数。X

然后,当我输入f_x(P,P1)时,会得到以下错误:

代码语言:javascript
复制
ValueError                                Traceback (most recent call last) <ipython-input-2-2afed429d2a2> in <module>
      7     return diff(f(x,y), x)
      8 
----> 9 f_x(P[0],P[1])

<ipython-input-2-2afed429d2a2> in f_x(x, y)
      5     return x**3+3*x**2-9*x+y**3-12*y
      6 def f_x(x,y):
----> 7     return diff(f(x,y), x)
      8 
      9 f_x(P[0],P[1])

~\anaconda3\lib\site-packages\sympy\core\function.py in diff(f,
*symbols, **kwargs)    2503         return f.diff(*symbols, **kwargs)    2504     kwargs.setdefault('evaluate', True)
-> 2505     return _derivative_dispatch(f, *symbols, **kwargs)    2506     2507 

~\anaconda3\lib\site-packages\sympy\core\function.py in
_derivative_dispatch(expr, *variables, **kwargs)    1945         from sympy.tensor.array.array_derivatives import ArrayDerivative    1946    return ArrayDerivative(expr, *variables, **kwargs)
-> 1947     return Derivative(expr, *variables, **kwargs)    1948     1949 

~\anaconda3\lib\site-packages\sympy\core\function.py in __new__(cls, expr, *variables, **kwargs)    1312             if isinstance(v, Integer):    1313                 if i == 0:
-> 1314                     raise ValueError("First variable cannot be a number: %i" % v)    1315                 count = v    1316           prev, prevcount = variable_count[-1]

ValueError: First variable cannot be a number: -3
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-21 22:07:00

你正在做的事:

f_x(P[0], P[1])变成

f_x(-3, -2)变成

diff(f(-3, -2), -3)变成

diff(43, -3)给出了一个错误:您不能计算常量函数43对一个数字(-3)的导数。

显然,函数通常只是写成包含符号变量(symbols)的表达式。导数是直接根据表达式计算的。请注意,diff(f, x)也可以编写为f.diff(x),这可能更容易阅读。

代码语言:javascript
复制
from sympy import symbols

x, y = symbols('x y')
P = (-3, -2)
# let f be a function of x and y:
f = x**3 + 3*x**2 - 9*x + y**3 - 12*y
# calculate the derivative of f towards x
f_x = f.diff(x) # so, f_x = 3*x**2 + 6*x - 9
# now, fill in the values into the derivative:
f_x.subs({x: P[0], y: P[1]}) # 0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70421151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档