位置: IT常识 - 正文

如何用Python求解微分方程组(如何用python求解航天器追逃博弈)

编辑:rootadmin
如何用Python求解微分方程组 文章目录odeint简介示例odeint简介

推荐整理分享如何用Python求解微分方程组(如何用python求解航天器追逃博弈),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何用python求解一元二次方程程序,如何用python求解有约束条件的方程组,如何用python求解一元二次方程,如何用python求解一元二次方程,如何用python求解航天器追逃博弈,如何用python求解一元二次方程,如何用python求解微分,如何用python求解一元二次方程,内容如对您有帮助,希望把文章链接给更多的朋友!

scipy文档中将odeint函数和ode, comples_ode这两个类称为旧API,是scipy早期使用的微分方程求解器,但由于是Fortran实现的,尽管使用起来并不方便,但速度没得说,所以有的时候还挺推荐使用的。

其中,odeint的参数如下

scipy.integrate.odeint(func, y0, t, args=(), Dfun=None, col_deriv=0, full_output=0, ml=None, mu=None, rtol=None, atol=None, tcrit=None, h0=0.0, hmax=0.0, hmin=0.0, ixpr=0, mxstep=0, mxhnil=0, mxordn=12, mxords=5, printmessg=0, tfirst=False)

其中func为待求解函数;y0为初值;t为自变量列表,其他参数都有默认选项,可以不填,而且这些参数非常多,其中常用的有

args func中除了t之外的其他变量Dfun func的梯度函数,当此参数不为None时,若将col_deriv设为True,则可提升效率。full_output 如果为True,则额外返回一个参数字典ml=None, mu=None, rtol=None, atol=None, tcrit=None, h0=0.0, hmax=0.0, hmin=0.0, ixpr=0, mxstep=0, mxhnil=0, mxordn=12, mxords=5,printmessg 为True时打印信息。tfirst 当为False时,func的格式为func(y,t...),否则格式为func(t, y...)示例

对于常微分方程

如何用Python求解微分方程组(如何用python求解航天器追逃博弈)

θ′′(t)+bθ′(t)+csin⁡θ(t)=b=0.25;c=5θ()=π−0.1;θ′()=\theta''(t)+b\theta'(t)+c\sin\theta(t)=0\\ b=0.25;\quad c=5\\ \theta(0)=\pi-0.1;\quad \theta'(0)=0θ′′(t)+bθ′(t)+csinθ(t)=0b=0.25;c=5θ(0)=π−0.1;θ′(0)=0

将其中的二阶导数项用一个新变量替代,ω(t)=θ′(t)\omega(t)=\theta'(t)ω(t)=θ′(t),则常微分方程可拆分成微分方程组

θ′(t)=ω(t)ω′(t)=−bω(t)−csin⁡θ(t)\begin{aligned} \theta'(t)&=\omega(t)\\ \omega'(t)&=-b\omega(t)-c\sin\theta(t) \end{aligned}θ′(t)ω′(t)​=ω(t)=−bω(t)−csinθ(t)​

令y=[θ,ω]y=[\theta, \omega]y=[θ,ω],则y′=[θ′,ω′]y'=[\theta', \omega']y′=[θ′,ω′],据此可设计函数func

import numpy as npdef pend(y, t, b, c): th, om = y dydt = [om, -b*om - c*np.sin(th)] return dydt

然后调用并求解

from scipy.integrate import odeinty0 = [np.pi-0.1, 0]t = np.linspace(0, 10, 101)sol = odeint(pend, y0, t, args=(0.25, 5))

然后绘制一下结果

import matplotlib.pyplot as pltplt.plot(t, sol[:,0], label="theta")plt.plot(t, sol[:,1], label="omega")plt.legend()plt.show()

这个形状还是比较离奇的。

本文链接地址:https://www.jiuchutong.com/zhishi/297854.html 转载请保留说明!

上一篇:vue 项目中刷新当前路由(vue页面刷新时原有的数据还在吗)

下一篇:[JavaScript你真的以为这么简单吗]JavaScript高级

  • 哪些支出可以税前扣除
  • 个人所得税征收范围及税率
  • 关于美容院的会计如何做账
  • 贷款公司股权转让合法吗
  • 房产报废手续
  • 转账支票背书转让样本
  • 税务局返还的个税手续费税率
  • 待抵扣进项税额是什么情况下用的
  • 会计科目的使用说明应包括
  • 过路过桥费抵扣2021新规定
  • 个人出租住房如何开票
  • 主营业务税金及附加大概比例
  • 研发支出资本化的条件
  • 现金流量表季报还是年报
  • 小规模纳税人的增值税账务处理
  • 小企业补贴收入怎么做账
  • 印花税的征税范围及税率
  • 苹果的mac系统
  • 怎么认定是否为党员
  • 中途建账科目余额表怎么建
  • 评估报告怎么算合法
  • 企业开办费的会计分录
  • 电商运费怎么做账
  • php开发用什么ide
  • rasman.exe - rasman是什么进程 有什么作用
  • 票据承兑与票据贴现的区别
  • PHP:ftp_nb_get()的用法_FTP函数
  • 现金折扣税务处理shi
  • 视同销售收入税法处理
  • php自定义函数的语法格式
  • 建筑企业跨区域还需预缴增值税吗
  • 公司外部人员的差旅费入什么科目
  • 被白雪覆盖的彩虹歌词
  • 人脸识别测颜值,al
  • 投资性房地产公允价值大于账面价值计入
  • 文心为何意
  • 程序员 cr
  • 前端底层架构是什么意思
  • bluetooth hci0 command timeout
  • php处理xml数据
  • 国企无偿划转股权免印花税
  • 兼职工作是单位工作吗
  • js正数转负数
  • dedecms 收费
  • 视同销售如何做账务处理?
  • 企业税务分为哪几类
  • 消防工程改造方案
  • 取得交易性金融资产支付的相关税费计入
  • 建筑公司项目如何上手
  • 应交税费减免税款怎么结转
  • 出口退税进项税额转出怎么申报
  • 营改增之后是不是就没有营业税了
  • 土地回收补偿费怎么算
  • 银行存款收入范围有哪些
  • 生产用品采购怎么购买的
  • 税盘减免税款怎么做账
  • 营业外支出的用法
  • 汇兑损益的账务处
  • 事业单位会计岗位属于哪一类
  • mysql 查询范围
  • 一个关于数据库表中的各条记录
  • 数据库分页存储方法
  • centos7怎么关闭端口
  • solaris 11.4
  • csrsyncmlserver.exe是什么文件
  • 电脑xp系统虚拟内存不足怎么解决
  • win8启动后的初始界面
  • Manjaro Linux 0.8.13发布下载 可将系统装入SD卡
  • Win8用Ribbon Disabler工具关闭Ribbon功能区界面
  • win10系统如何设置不休眠
  • 如何在linux安装软件
  • javascript怎么用
  • shell中执行mysql命令
  • android 蓝牙 驱动 适配 sdio rk
  • 跟踪子弹
  • android app测试
  • 电子税务局申报表在哪里查询
  • 设备租赁增值税怎么抵扣
  • 四个落实是哪四个落实
  • 个人所得税优惠政策最新2023年度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设