我如何将函数的推导替换为值?

How can i replace function's derivation to values?

包含导数的函数,如:

df = -2*x*y(x)*导数(y(x), x) - y(x)**2

我有 Derivative(y(x), x) 的值,但我不知道如何转换

x= sp.symbols('x  ')
y=sp.Function("y")(x)
f = sp.Function("f")(x,y)

f = -x*y**2

f_num = f.subs([(y,1),(x,2)])

df = sp.diff(f,x)

# I have to calculate df_num value by using(subs) respect 
x,y,Derivative(y(x), x)

感谢所有帮助过的人

这符合您的意思吗?

import sympy as sp

x= sp.symbols('x')
y=sp.Function("y")(x)
f = sp.Function("f")(x,y)

f = -x*y**2

f_num = f.subs([(y,1),(x,2)])

df = sp.diff(f,x)
df = df.subs(sp.diff(y,x),1)

sp.pprint(df)

在存在导数和函数的情况下执行 subs 时必须小心。简短的回答是:

df = f.diff(x)
df_num = df.subs([(y.diff(x),1), (y,1), (x,2)])

其中导数(取决于 y)在 y 之前完成,而 y(取决于 x)在 x 之前完成。

补充说明:1) 请注意,您将 f 定义为 f(x, y),然后立即将其定义为表达式 -x*y**2;第一个定义不是必需的。 2)你定义了f_num但是这对计算df.

的数值没有影响

常微分方程给出了 f,我尝试使用三次泰勒级数展开 (TS3) 以数值方式解决此问题。初始值已知 x=2 和 y =1,我们试图在 x = 2.5 处找到函数的值。

x= sp.symbols('x ')
y=sp.Function("y")(x)
f = sp.Function("f")(x,y) # f is actually y'(derived of y )
x0 = 2
y0 =1
f = -x*y**2  # ordinary differential equation and its derivatives line 33 to 35
df = sp.diff(f,x)
dff = sp.diff(f,x,2)
y_num = []
h = 0.1 # step size
k = 0
while x0<2.5:
    f_num = f.subs([(y,y0),(x,x0)])

    df_num = df.subs(y.diff(x),f_num).subs([(y,y0),(x,x0)])

    dff_num = dff.subs(y.diff(x,2),df_num).subs(sp.Derivative(y, 
    x),f_num).subs([(y,y0),(x,x0)])

   y_num.append(y0 + h*f_num + h**2/2*df_num+h**3/6*dff_num)

   y0 = y_num[k]
   x0 = x0+h
   k=k+1
print(x0)
print(y_num)

我不知道这是否有用 post 或者我能否正确表达自己的意思,但感谢大家的关注和回答