下载此文档

Python程序设计期末作业.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
Python程序设计期末作业.doc球-弹簧物理模型模拟程序
一、 编写目的
模拟一个非线性动力系统,体会系统参数的混沌现象。
熟悉VPython的使用。
二、 物理模型描述
模型空间的四周及顶面为刚性壁,底为一有质量的刚性平板,平板由一根轻 弹簧支撑。模型空间内有数个刚性球作自由运动。球的初始位置在空间内均匀分 布,初始速度满足正态分布。所有碰撞均为完全弹性碰撞。并假设平板只能作Z 方向一维运动。
三、 设计思想
由物理学中的能量守恒和动量守恒推导碰撞前后物体的速度变化。
每次迭代先使物体状态按时间小量dt发展,再判断是否有碰撞发生,若有 则由前面推导的公式改变相关物体的速度。
以适当的速率重复上述步骤,再用visual库绘制出对应图形,则得到这个 物理模型的模拟演示动画。
四、 使用方法
直接运行程序,则开始模拟并实时绘制。
也可修改程序开始处的几个全局变量,改变模型的参数。
五、 参考资料
VPython官方文档
六、 说明
在Python2. 7下调试通过。
本程序中没有一行代码直接来自网络、书籍等处,参考资料仅为VPython 官方文档。
附截图及源代码。
13叵I区]
AniMation
程序运行效果截图
from visual import *
from random import random
from math import sin,cos,sqrt,log,pi
#物理模型的参数以全局变量形式定义
g=#重力加速度
k=10#弹簧胡克系数
ml=l#球质量
m2=l 0#平板质量
N=10#球数
R=l#球半径
#物体基类,提供设置、返回位置、速度信息,及迭代一个时间小量dt的方法
class object:
def setVel(self,v):
=v
def setPos(self,p):
=p
def getPos(self):
return
def getVel(self):
return
def go(self,dt):
+=*dt
+=*dt
#球,继承于初体类
class C_Ball(object):
def —init—(self,p,v):
=p
=v
=vector(0,0,-g)
#平板,继承于物体类,有自己的迭代方法,即加速度与位置有关
class C_Board(object):
def —init_(self):
=vector(0,0,0)
self. v=vector(0,0,0)
=vector(0,0,0)
def go(self,dt):
=*-k
+=*dt
+=*dt
#生成随机位置向量(模型空间内均匀分布)
def randPos():
x=(random()-)*2*(15-R-)
y=(random()-)*

Python程序设计期末作业 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小雄
  • 文件大小91 KB
  • 时间2021-10-08
最近更新