包含指示性的功能,如:
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)
感谢所有帮助的人
答案 0 :(得分:1)
常微分方程给了我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)
我不知道这是一篇有用的文章,还是我可以正确表达自己的意思,但感谢您的关注和答复
答案 1 :(得分:0)
这是您的意思吗?
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)
答案 2 :(得分:0)
在存在派生和函数的情况下执行子操作时,必须小心。简短的答案是:
Could not resolve dependencies for project com.example:projectA:jar:0.0.1-SNAPSHOT: Could not find artifact com.example:projectB:jar:0.0.1-SNAPSHOT
其中导数(取决于y)在y之前完成,而y(取决于x)在x之前完成。
其他注释:1)注意,将f定义为f(x,y),然后立即将其定义为表达式http
;第一个定义不是必需的。 2)您定义了df = f.diff(x)
df_num = df.subs([(y.diff(x),1), (y,1), (x,2)])
,但这对计算-x*y**2
的数值没有影响。