非线性微分方程的 Odeint 误差

计算科学 Python scipy 麻木的 微分方程
2021-12-17 14:53:35

运行代码时收到以下错误。

ODEi​​ntWarning:在此调用上完成的工作过多(可能是错误的 Dfun 类型)。以 full_output = 1 运行以获取定量信息。警告.warn(warning_msg, ODEintWarning)

我从教授那里收到的一个例子弄乱了,似乎无法理解发生了什么。

%matplotlib inline
import numpy as np

import matplotlib.pyplot as plt
from scipy.integrate import odeint
from scipy.integrate import solve_ivp

def f(y, t):
    return y ** 2
    
t = np.linspace(0, 5, 100) 
x0 =  3             
x = odeint(f, x0, t) 
1个回答

确切的解决方案是

x(t)=313t.
这意味着解决方案的域是(,13). odeint与积分区间[0,5]停在这个奇点上,因为它可以正确地移动到这个点之外。