gpt4 book ai didi

python-3.x - 在用户定义的函数中通过 Sympy 求解线性微分方程组

转载 作者:行者123 更新时间:2023-12-03 12:59:40 25 4
gpt4 key购买 nike

t, C1, C2= symbols("t C1 C2")
x, y = symbols("x y", cls = Function, Function = True)
eq1 = Eq(3 * diff(x(t), t), y(t))
eq2 = Eq(diff(y(t),t), - 3 * y(t) - 15 * x(t) + 4 * 1)
soln = dsolve((eq1, eq2), ics = {x: 5, y: 0})
soln

效果很好。然而

t, C1, C2= symbols("t C1 C2")
x, y = symbols("x y", cls = Function, Function = True)
ics = {x: 5, y: 0}
eq1 = Eq(3 * diff(x(t), t), y(t))
eq2 = Eq(diff(y(t),t), - 3 * y(t) - 15 * x(t) + 4 * 1)
def solve_ode_ivp(eq1, eq2, ics):
soln = dsolve((eq1, eq2), ics)
return soln
solve_ode_ivp(eq1, eq2, ics)

给出错误信息 TypeError: unhashable type: 'dict'。 ics 有问题,但我不知道为什么以及如何修改 solve_ode_ivp 才能正常工作。

最佳答案

在第一个版本中键入 ics= {x:5 , y: 0} 时,您指定可选参数 ics 将此字典作为值,在第二个版本中,您将其作为第二个参数(不是ics)

你可以改成这样:

t, C1, C2= symbols("t C1 C2")
x, y = symbols("x y", cls = Function, Function = True)
ics = {x: 5, y: 0}
eq1 = Eq(3 * diff(x(t), t), y(t))
eq2 = Eq(diff(y(t),t), - 3 * y(t) - 15 * x(t) + 4 * 1)
def solve_ode_ivp(eq1, eq2, ics):
soln = dsolve((eq1, eq2), ics=ics)
return soln
solve_ode_ivp(eq1, eq2, ics)

关于python-3.x - 在用户定义的函数中通过 Sympy 求解线性微分方程组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55438838/

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