gpt4 book ai didi

python - Sympy ODE 求解器初始条件无效

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

我想使用 dsolve 来求解一个初始值问题,但初始条件 ics 似乎没有效果。示例中的两个 dsolve 给出相同的结果。

from sympy import *
x = symbols('x')
f = Function('f')

eq = Eq(Derivative(f(x), x), f(x))

# No initial condition
pprint(dsolve(eq, f(x)))

# With initial condition f(0) = 1
pprint(dsolve(eq, f(x), ics={f(0):1}))

在这两种情况下我得到了相同的解决方案

           x
f(x) = C1 ℯ
即使使用 ics

C1 也不会被值 1 替换。 Sympy second order ode提到同情issue 4720但该问题现已关闭。我正在使用 SymPy 1.1.1。

最佳答案

PR implementing the initial conditions不是 SymPy 1.1.1 的一部分,但应该在 1.2 中。你可以通过执行来测试你的 SymPy 版本是否有它

from sympy.solvers.ode import solve_ics

(如果它抛出错误,则您没有 ICS 支持,除了幂级数)。除了你提到的帖子,我的answer有一个关于如何使用 solve(在不同情况下返回不同类型的习惯)来查找和替换常量的简短讨论。

eq = Eq(Derivative(f(x), x), f(x))
sol = dsolve(eq, f(x)).rhs
constants = solve([sol.subs(x,0)-1], dict=True)
print(sol.subs(constants[0]))

关于python - Sympy ODE 求解器初始条件无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46973953/

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