Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何对函数求导,然后用实数求值?_Python_Sympy_Calculus - Fatal编程技术网

Python 如何对函数求导,然后用实数求值?

Python 如何对函数求导,然后用实数求值?,python,sympy,calculus,Python,Sympy,Calculus,我有一个巨大的,丑陋的表情。我需要求它的导数,然后插入一些数字,然后对它求值 这是为了计算电路输出的总误差 实际公式如下所示: from sympy import * T = Symbol('T') R_0 = Function('R_0')(T) R = 2*R_0 diffR = Symbol('diffR') diffR = R.diff(T) 右边几乎所有的变量都与温度有关,我关心的是整体的温度敏感性,dReff/dT 但是为了便于解释,让我们把事情简化一下。假设我有一个更简单的

我有一个巨大的,丑陋的表情。我需要求它的导数,然后插入一些数字,然后对它求值

这是为了计算电路输出的总误差

实际公式如下所示:

from sympy import *

T = Symbol('T')
R_0 = Function('R_0')(T)
R = 2*R_0

diffR = Symbol('diffR')
diffR = R.diff(T)

右边几乎所有的变量都与温度有关,我关心的是整体的温度敏感性,dReff/dT

但是为了便于解释,让我们把事情简化一下。假设我有一个更简单的公式:

R(T)=2*R_0(T)

我想得到变量的导数:

dR/dT=2*dR_0/dT

然后,从数据表中了解dR_0/dT,我希望能够将其插入:

dR_0/dT=2欧姆/摄氏度

dR/dT=2*2欧姆/摄氏度=4欧姆/摄氏度

现在,我已经使用python和sympy让我走得很远了,但现在我被卡住了。看起来是这样的:

from sympy import *

T = Symbol('T')
R_0 = Function('R_0')(T)
R = 2*R_0

diffR = Symbol('diffR')
diffR = R.diff(T)
在这一点上,如果您打印衍射,您将得到以下结果

2*Derivative(R_0(T),T)

剩下的路怎么走?有没有办法插入导数项的值?

一种解决方案是为导数制作另一个符号:

dR0 = Function('R_0')(T).diff(T)
然后,你可以在更大的导数表达式中替换它

expr.subs(dR0, value)

这在我尝试过的几个例子中都有效。他们可能更容易做到这一点,但我只在严格需要的时候处理
sympy

如果
R(t)=R(t)**2
那么
R'=2r'
.derrr被我的符号弄糊涂了。谢谢你不是真的在“制造另一个符号”。你只是把导数赋给一个变量,这是不必要的(尽管这确实使它更容易阅读)。需要注意的一点是:如果你在结果函数中同时有变量和它们的导数,那么首先在导数上做SUB。对函数进行子绑定首先会导致一些奇怪的行为。