鱼C论坛

 找回密码
 立即注册
查看: 944|回复: 1

用python代码怎么解决这道题

[复制链接]
发表于 2023-12-7 22:54:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
解微分方程问题1: 求下面微分方程的数值解, y(0)= 1,y'(0) = 1
y " -2y'+3y= x sin x
问题2: 求下面微分方程在区间[0,3]上的数值解,方程初值为y(0) =1
y' +y² = 2x² +6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-7 22:54:39 | 显示全部楼层
问题1可以使用Python的数值计算库NumPy和SciPy来解决。可以使用Euler法或者其他更高级的数值方法来求解微分方程。以下是使用SciPy中的odeint函数来求解的示例代码:
import numpy as npfrom scipy.integrate import odeintimport matplotlib.pyplot as pltdef 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)=1y = 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 npfrom scipy.integrate import odeintimport matplotlib.pyplot as pltdef 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 17:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表