将表达式中的低阶导数的表达式代入高阶导数

Substituting the expression of a lower order derivative in the expression for the higher order derivative

我有以下微分方程:

我正在尝试求出 y 关于 x 的二阶导数。预期结果如下:

我正在尝试使用 sympy 给我上面的表达式。这是我试过的:

from sympy import *

x = symbols('x')
y = Function('y')


#initial value condition: y(1) = 0.5

# first derivative represented as d1 

d1 = sin(x+y(x))/x

# second derivative represented as d2

d2 = diff(d1,x)

d2 的结果是:

这就是我卡住的地方;如何用表达式 d1 替换 (d/dx)(y(x)) 项?

感谢您的帮助。

可以用sub代替导数:

In [13]: d1.diff(x).subs(y(x).diff(x), d1)
Out[13]: 
⎛    sin(x + y(x))⎞                              
⎜1 + ─────────────⎟⋅cos(x + y(x))                
⎝          x      ⎠                 sin(x + y(x))
───────────────────────────────── - ─────────────
                x                          2     
                                          x