gpt4 book ai didi

python-3.x - 在 sympy 中定义一个 "derivation"函数

转载 作者:行者123 更新时间:2023-12-01 13:13:20 24 4
gpt4 key购买 nike

我正在尝试制作 derivation sympy 中的功能(我使用的是 sympy 1.4 版),但我不确定如何操作。特别是,我试图定义一个具有以下属性的通用函数(现在可以只接受 sympy 变量,而不是函数):

d(f+g)=d(f)+d(g)
d(f*g)=f*d(g)+d(f)*g

我试过阅读 sympy documentation关于定义函数,但我不确定如何为任意两个符号定义具有上述属性的函数类。

对于某些背景/上下文,我知道如何在 Mathematica 中进行推导;我只想输入

d[f_+g_]:=d[f]+d[g]
d[f_ g_]:=f d[g] + d[f] g

最佳答案

您可以编写自己的规则。以下内容可能会让您入门:

def d(e, func):
"""
>>> from sympy import x, y
>>> from sympy import Function
>>> D = Function('D')
>>> d(x + y, D)
D(x) + D(y)
"""
if e.is_Add:
return Add(*[d(a, func) for a in e.args])
elif e.is_Mul:
return Add(*[Mul(*(e.args[:i]+(d(e.args[i],func),)+e.args[i+1:]))
for i in range(len(e.args))])
else:
return func(e)

或者你可以在类里面尝试这个:

class d(Function):
@classmethod
def eval(cls, e):
if e.is_Add:
return Add(*[d(a) for a in e.args])
elif e.is_Mul:
return Add(*[Mul(*(e.args[:i]+(d(e.args[i]),)+e.args[i+1:]))
for i in range(len(e.args))])
else:
return d(e, evaluate=False)

另请参阅 linapp

关于python-3.x - 在 sympy 中定义一个 "derivation"函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58459161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com