python编程求导数_在python中如何计算导数?

这个问题的答案很简单。当然,在另一个答案中给出的subs选项可用于计算某个数的导数,但如果要绘制导数,则不起作用。有一种方法可以解决这个问题:lambdify,如下所述。

使用lambdify将所有sympy函数(可以区分但不能计算)转换为它们的numpy对应函数(可以计算、绘制等,但不能区分)。例如,sym.sin(x)将替换为np.sin(x)。其思想是:使用symphy函数定义函数,根据需要进行区分,然后定义一个新的函数,它是原始函数的lambdified版本。

在下面的代码中,sym.lambdify接受以下输入:

sym.lambdify(variable, function(variable), "numpy")

第三个输入“numpy”是用numpy对应函数替换sympy函数的内容。例如:def f(x):

return sym.cos(x)

def fprime(x):

return sym.diff(f(x),x)

fprimeLambdified = sym.lambdify(x,f(x),"numpy")

然后函数fprime(x)返回-sym.sin(x),函数fprimeLambdified(x)返回-np.sin(x)。我们现在可以在特定的输入值处“调用”或“求值”,而不能“调用”或“求值”,因为前者由numpy表达式和后者的sympy表达式组成。换句话说,输入fprimelambdified(math.pi)是有意义的,这将返回一个输出,而fprime(math.pi)将返回一个错误。

下面是在多个变量中使用sym.lambdify的示例。import sympy as sym

import math

def f(x,y):

return x**2 + x*y**2

x, y = sym.symbols('x y')

def fprime(x,y):

return sym.diff(f(x,y),x)

print(fprime(x,y)) #This works.

DerivativeOfF = sym.lambdify((x,y),fprime(x,y),"numpy")

print(DerivativeOfF(1,1))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值