簡體   English   中英

Python 中的 Sympy 沒有給出想要的結果

[英]Sympy in Python not giving the desired result

我正在嘗試使用 sympy 來解決一個簡單的二階 ODE:gamma*y''(x) + 4*y(x)=0。 我不斷收到錯誤“名稱 x 未定義”。 每次我嘗試糾正一個錯誤時,都會彈出另一個錯誤。 請有人告訴我我的代碼有什么問題。 另外,我如何繪制解決方案?

最初我有以下問題:

from sympy import* 
from sympy.solvers import dsolve
import sympy as sp
from pylab import*
dsolve?
f = sp.symbols("f", cls=sp.Function)
f(x)
ode1 = gamma*f(x).diff(x,2) + 4*f(x)
f_init = [1,0]
gamma = 0.01
sol1 = dsolve(ode1, f(x), f_init)
print(ode1, sol1)


更新:這使它成為我正在尋找的使它對我有用的東西:

from sympy import* 
from sympy.solvers import dsolve
import sympy as sp
from pylab import*
import matplotlib.pyplot as plt

x = sp.symbols('x')
f = sp.Function("f")

gamma = 0.01
ode1 = sp.Eq(gamma*f(x).diff(x,2)+4*x)
sol1 = sp.dsolve(ode1, ics={f(0): 0, sp.diff(f(x), x).subs(x,0): 1})

print(ode1, sol1)

至少這應該是一個開始,但不確定你想進一步實現什么,看看:

from sympy.solvers import dsolve
import sympy as sp

x = sp.symbols('x')
f = sp.Function("f")
gamma = 0.01
ode1 = sp.Eq(gamma*f(x).diff(x,2)+4*x)
sol1 = sp.dsolve(ode1, ics={f(0): 0, sp.diff(f(x), x).subs(x,0): 1})

print(ode1, sol1)

打印出來:

Eq(4*x + 0.01*Derivative(f(x), (x, 2)), 0) Eq(f(x), -200*x**3/3 + x)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM