首页 存档 技术 查看内容

用Python模拟弹道轨迹

2018-3-30 13:00 |来自: 互联网 777 0

摘要: 我 相 信 这 么 优秀 的 你 已 经 置 顶了 我 转自:中国统计网(小编微信:itongjilove) 作者:Toby:python数据科学爱好者。国内最大药品数据中心任职,二十多个数据库负责人。 最近美国把萨德系统部署到韩国 ...

我 相 信 这 么 优秀 的 你

已 经 置 顶了 我

自:中国统计网(小编微信:itongjilove)

作者:Toby:python数据科学爱好者。国内最大药品数据中心任职,二十多个数据库负责人。


最近美国把萨德系统部署到韩国,一时心血来潮就用python模拟最简单的弹道轨迹。希望能帮助各位初学者学习python数学建模和matplotlib动态可视化模拟。


发表一下**观点:看了战争之王的朋友可以理解,和平是军火商的噩梦。为了赚取高额军火利润,美**火商要不停制造全球仇恨和紧张。美国在亚太不停挑拨离间各个中,日,韩,朝鲜,菲律宾,制造仇恨和冲突。这是为了能借机卖更多军火给这些国家。


暴力是人的本能之一。


洛克希德马丁公司是美国知名军火商,利润每年上百亿。萨德系统就是洛克希德马丁的产品。奥巴马和特朗普收了军火商的**贿金,美国总统只不过是军火商的头号代理商和宣传工具。


所以不要期待**自由的美国总统给世界带来和平,很多时候,为了赚钱,美国政客和军火商要不停制造全球冲突和仇恨。

(洛克希德马丁)


切入正题,谈谈科学。。。。。。。

数学建模要用导数知识:


感谢英国大神牛顿和德国大神莱布尼茨的导数求最值方法,当导弹的瞬时速度为0时,导弹高度达到最高值(峰值),看不懂的可以去补补微积分知识,高中课本就能看懂。



Python导入math模块,表示飞行时间t_flight:


t_flight =2*u*math.sin(theta_radians)/g


这是代码运行的界面



运行后可以观察弹道数据,设置不同发射速度和角度可以得到不同结果。



生成的动态图:


生成动态图需要导入matplotlib模块。

说明此语句意思animation.FuncAnimation(fig, update,generate,interval=5)

animation.FuncAnimation函数用于生成动态图片。fig是生成的图表对象,generate函数生成数据后传递给update函数更新,这样数据不断更新,图形也不停变化。

interval表示时间间隔,设置的值越小,运动速度越快。



代码运行平台:


Canopy python 2.7,Windows32位系统

代码汇总


源代码添加详细注解,方便各位朋友阅读理解

#-*- coding: utf-8 -*-

'''

Animatethe trajectory of an object in projectile motion

'''

#seaborn增强背景效果

importseaborn

frommatplotlib import pyplot as plt

frommatplotlib import animation

frommatplotlib.font_manager import FontProperties

importmath

g= 9.8

fig= plt.figure()

ax=fig.add_subplot(111)

ax.set_aspect('equal')

#中文字体路径 设置

font=FontProperties(fname=r"c:\windows\fonts\simsun.ttc",size=14)

#获取一个列表,有205个间隔数据,每个数据间隔0.005

defget_intervals(u, theta):

intervals = []

start = 0

interval = 0.005

while start

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部