gpt4 book ai didi

python - sympy 中的链式法则

转载 作者:太空宇宙 更新时间:2023-11-04 03:20:52 25 4
gpt4 key购买 nike

我正在尝试使用 SymPy 进行一些基本练习。我想相对于极坐标中的半径参数对直角坐标中的函数进行二阶导数。

我想要一个很好的链式法则符号表达式,它可以计算它可以计算的内容,而不会计算无法进一步简化的内容。

from sympy import *
init_session()
x, y, r, t = symbols('x y r t') # r (radius), t (angle theta)
f, g = symbols('f g', cls=Function)
g = f(x,y)
x = r * cos(t)
y = r* sin(t)
Derivative(g,r, 2).doit()

此代码产生 0。有没有办法得到答案的符号表示,而不是 0?

最佳答案

简答:你的命令有问题。

长答案:

x, y, r, t = symbols('x y r t') # r (radius), t (angle theta)
f, g = symbols('f g', cls=Function)
g = f(x,y)

现在 x,y 是符号,f 是函数,g 是应用函数,即符号 x,y 作为 f(x,y) 应用于 f

x = r * cos(t)
y = r* sin(t)

现在您将xy 重新定义为rt 的表达式。这对 g 没有丝毫影响!

Derivative(g,r, 2).doit()

现在你从 g 派生 r。由于 g 仍然通过初始符号 x,y 定义,它不依赖于 r,因此导数为零。

要实现您想要的效果,请使用:

from sympy import *
r, t = symbols('r t') # r (radius), t (angle theta)
f = symbols('f', cls=Function)
x = r* cos(t)
y = r* sin(t)
g = f(x,y)
Derivative(g,r, 2).doit()

我还删除了所有不必要的 Symbol 定义。

关于python - sympy 中的链式法则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34786224/

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