位置: 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高级

  • 税负率的计算公式举例说明
  • 税财通财务软件下载
  • 成立一般纳税人公司
  • 调整未分配利润影响所得税吗
  • 装修费用摊销是当月还是次月
  • 汇算清缴企业所得税退税账务处理
  • 以前年度损益调整结转到哪里
  • 户口与工作地不一致,社保
  • 纳税申报的具体流程个体户
  • 工会经费计提多了跨年
  • 用现金支付购买增值税应税服务
  • 补发工资计算公式
  • 转售水的税率
  • 财务报表层次重大错报风险增大了认定层次
  • 其他应付款变动率公式
  • 软件企业涉税风险分析
  • 税务小规模定律是什么意思
  • 污泥处置中心所得税优惠政策
  • 清包工程增值税税率
  • 转让股权应具备什么条件
  • 注册资本印花税按实缴还是认缴
  • 固定资产实物归哪个部门管理
  • 营业外支出应填什么科目
  • 企业之间承兑汇票贴现违法吗知乎
  • 开启共享文件夹
  • 出口退税生产企业税率
  • 销售净利率怎么分析盈利能力
  • 应交税费和应交税金的区别属于什么科目
  • 商业承兑汇票如何签收
  • 公司注销往来账的账务处理
  • mac设置邮件
  • 公司用车车祸一般谁负责
  • hpwuschd application
  • pniopcac.exe是什么
  • php foreach循环遍历数组
  • 商业汇票不带息到银行办理贴现公式
  • vscode常用插件功能简介
  • 携程首页
  • vue的ref怎么用
  • nlp track
  • 苗木增值税税率
  • 帝国cms源码
  • python pdb模块
  • 1%征收率可以开专票吗
  • 银行贷款印花税是什么意思
  • 定期定额自行申报表
  • 外贸出口企业如何申报增值税
  • 公司代缴社保如何查询
  • 一般纳税人的税负率是多少
  • 河道管理费是附加税吗
  • 土地使用权属于无形资产吗
  • 厂房违建如何处理
  • 工程施工企业收到工程款,怎么做分录
  • 利润分享并购方法有哪些
  • 商业医疗保险的缺点
  • 企业实缴各类税金的总额
  • 企业组织结构的本质是
  • 工程检测公司的账务处理流程
  • 企业短期借款可以是个人吗
  • aesm_service.exe是什么
  • fedora系统怎么样
  • diy组装电脑前置怎么样
  • linux内核的作用
  • 家字取名男孩名字
  • 迅雷看看电脑版 下载
  • win10恢复以前系统
  • [置顶]游戏名:chivalry2
  • div与span区别及用法
  • nodejs 函数
  • jQuery获取checkbox选中的值
  • Android带有注册界面的简单app
  • go语言websocket
  • 最简单的十个菜
  • 广东省电子税务局登录方式
  • 新公司税务登记完后还需要什么流程
  • 小规模纳税人无进项发票要如何做账?
  • 卷票是什么票
  • 竣工开始缴房产税吗
  • 五险一金和公积金冲突吗
  • 岗位练兵的作用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设