Sage plot斜率场和微分方程
Sage plot slope field and differential equation
我试图在 sage notebook 中绘制斜率场和几个独特的解决方案,但我的斜率场与解决方案不匹配。
c = var('c')
y = (ln(x)+c)/x
show(y)
p1 = plot_slope_field( y, (x,0,5), (c,-5,5))
for i in range(-5,5):
p1 = p1 + plot(y(c=i),x,0,5, ymin=-5, ymax=5)
p1
p1
我希望斜率场近似于附近函数的斜率,但它们似乎根本不匹配。
我发现了我的错误,@kcrisman 也指出了这一点,我忘了微分(线性化)斜率场的函数。
这修复了它:
p1 = plot_slope_field( diff(y), (x,0,5), (c,-5,5))
我们得到:
斜率不应包含积分常数。斜率场是微分方程 y'=f(x,y)
的向量场 (1,f(x,y))
。因此,您需要通过消除常量 c
.
来为您的函数族找到 ODE
对于等式
y = (ln(x)+c)/x
常数c
的隔离给出
c = xy - ln(x)
和导数方程/隐式 ODE
0 = xy' + y - 1/x
因此坡度字段应该用于坡度
y' = f(x,y) = -y/x + 1/(x*x)
x = var('x')
y = var('y')
c = var('c')
ysol = (ln(x)+c)/x
show(ysol)
p1 = plot_slope_field( -y/x+1/(x*x), (x,0,5), (y,-5,5))
for i in range(-5,5):
p1 = p1 + plot(ysol(c=i),x,0,5, ymin=-5, ymax=5)
p1
我试图在 sage notebook 中绘制斜率场和几个独特的解决方案,但我的斜率场与解决方案不匹配。
c = var('c')
y = (ln(x)+c)/x
show(y)
p1 = plot_slope_field( y, (x,0,5), (c,-5,5))
for i in range(-5,5):
p1 = p1 + plot(y(c=i),x,0,5, ymin=-5, ymax=5)
p1
我希望斜率场近似于附近函数的斜率,但它们似乎根本不匹配。
我发现了我的错误,@kcrisman 也指出了这一点,我忘了微分(线性化)斜率场的函数。
这修复了它:
p1 = plot_slope_field( diff(y), (x,0,5), (c,-5,5))
我们得到:
斜率不应包含积分常数。斜率场是微分方程 y'=f(x,y)
的向量场 (1,f(x,y))
。因此,您需要通过消除常量 c
.
对于等式
y = (ln(x)+c)/x
常数c
的隔离给出
c = xy - ln(x)
和导数方程/隐式 ODE
0 = xy' + y - 1/x
因此坡度字段应该用于坡度
y' = f(x,y) = -y/x + 1/(x*x)
x = var('x')
y = var('y')
c = var('c')
ysol = (ln(x)+c)/x
show(ysol)
p1 = plot_slope_field( -y/x+1/(x*x), (x,0,5), (y,-5,5))
for i in range(-5,5):
p1 = p1 + plot(ysol(c=i),x,0,5, ymin=-5, ymax=5)
p1