使用 sympy 的微分方程的边界条件

Chi*_*Rai 5 python sympy

我正在尝试指定微分方程的边界条件。

# *y"= 900(y - 1 + 2x) ; y(0)=5, y(2)=10*

from sympy import *
x=symbols('x')
y, g = symbols('y g', cls=Function)
diffeq = (Eq(y(x).diff(x, x) - 900*y(x) + 900, 1800*x),y(0):5,y(2)=10)
A=dsolve(diffeq, y(x))
print A
Run Code Online (Sandbox Code Playgroud)

但它显示错误

diffeq = (Eq(y(x).diff(x, x) - 900*y(x) + 900, 1800*x),y(0):5,y(2)=10)
                                                           ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

请帮忙。

Rei*_*ica 5

dsolve边界条件通过命名参数作为字典传递ics

\n\n

因此:

\n\n
from sympy import *\nx=symbols(\'x\')\nf=symbols(\'f\', cls=Function)\ndsolve(Eq(f(x).diff(x,x), 900*(f(x)-1+2*x)), f(x), ics={f(0):5, f(2):10})\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可以将最后一行粘贴到sympy live以验证它是否有效。答案是:

\n\n

f(x) = C1*e^\xe2\x88\x9230x + C2*e^30x \xe2\x88\x92 2x + 1

\n

  • 但尽管指定了边界条件,它仍然显示常数 C1 和 C2。 (6认同)