|
发表于 2023-12-7 22:54:39
|
显示全部楼层
问题1可以使用Python的数值计算库NumPy和SciPy来解决。可以使用Euler法或者其他更高级的数值方法来求解微分方程。以下是使用SciPy中的odeint函数来求解的示例代码:
- import numpy as np
- from scipy.integrate import odeint
- import matplotlib.pyplot as plt
- def dy_dx(y, x):
- return [y[1], 2*y[1]-3*y[0]+x*np.sin(x)]
- x = np.linspace(0, 10, 100)
- y_init = [1, 1] # 初值 y(0)=1, y'(0)=1
- y = odeint(dy_dx, y_init, x)
- plt.plot(x, y[:, 0], label='y')
- plt.plot(x, y[:, 1], label="y'")
- plt.legend()
- plt.show()
复制代码
问题2同样可以使用SciPy中的odeint函数来求解。以下是使用odeint函数求解的示例代码:
- import numpy as np
- from scipy.integrate import odeint
- import matplotlib.pyplot as plt
- def dy_dx(y, x):
- return [2*x**2 + 6 - y[0]**2]
- x = np.linspace(0, 10, 100)
- y_init = [1]
- y = odeint(dy_dx, y_init, x)
- plt.plot(x, y)
- plt.show()
复制代码
这些代码可以通过安装SciPy库来运行。如果你还没有安装,可以使用pip install scipy 命令进行安装。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|