Python解非齐次线性微分方程组
时间: 2024-06-14 20:02:09 浏览: 173
求解非线性方程组
5星 · 资源好评率100%
在Python中,我们可以使用数值计算库如`scipy`或`numpy`结合`odesolve`(`scipy.integrate`中的函数)来求解非齐次线性微分方程组。非齐次方程组通常表示为:
\[
\begin{cases}
\frac{dx}{dt} = f_1(x, y, t) \\
\frac{dy}{dt} = f_2(x, y, t) \\
\vdots \\
\frac{dz}{dt} = f_n(x, y, z, t)
\end{cases}
\]
其中 \( x, y, \ldots, z \) 是未知函数,\( t \) 是时间,而 \( f_1, f_2, \ldots, f_n \) 是对应的非齐次项。
以下是使用`scipy.integrate.solve_ivp`(常微分方程组的求解器)的一个简单例子:
```python
from scipy.integrate import solve_ivp
import numpy as np
# 定义微分方程
def func(t, xy, params):
x, y = xy
dx_dt = params * x + params * y + params # 假设有一个非齐次项
dy_dt = params * x + params * y + params
return [dx_dt, dy_dt]
# 参数和初始条件
params = [1, -1, 0.1, 2, -3, 0.5]
initial_conditions = [1, 1] # x(0) 和 y(0)
# 时间范围
t_span = (0, 10) # 求解从0到10的时间区间
# 解方程
solution = solve_ivp(func, t_span, initial_conditions, args=(params,))
# 获取结果
t = solution.t
x = solution.y
y = solution.y
print("解得的x(t)和y(t)分别为:")
print(x, y)
```
阅读全文