在无风情况下的喷泉模拟

我的python代码

import numpy as np
import random
import matplotlib
matplotlib.rcParams['font.sans-serif']=[u'simHei']
matplotlib.rcParams['axes.unicode_minus']=False
import matplotlib.pyplot as plt tt = np.linspace(0,4,1000)
#y = -tt**2+4*tt
#plt.plot(tt,y,linestyle='--') # 没有风
vy0=10
g=10
vx0=5
x=[]
y=[]
x0=0
y0=0
dt = 4/1000
x.append(x0)
y.append(y0)
for t in tt:
y0 += vy0*dt
x0 += vx0*dt
vy0 -= g*dt
x.append(x0)
y.append(y0)
if y0<0:
break
plt.plot(x,y,linestyle='--')

在右边风情况下的喷泉模拟

我的python代码

# 有向右的风
vy0=10
g=10
vx0=5
a = 1.5
x=[]
y=[]
x0=0
y0=0
dt = 4/1000
x.append(x0)
y.append(y0)
for t in tt:
y0 += vy0*dt
x0 += vx0*dt
vy0 -= g*dt
vx0 -= a*dt
x.append(x0)
y.append(y0)
if y0<0:
break
plt.plot(x,y)

在左边风情况下的喷泉模拟

我的python代码

# 有向左的风
vy0=10
g=10
vx0=5
a = -1.5
x=[]
y=[]
x0=0
y0=0
dt = 4/1000
x.append(x0)
y.append(y0)
for t in tt:
y0 += vy0*dt
x0 += vx0*dt
vy0 -= g*dt
vx0 -= a*dt
x.append(x0)
y.append(y0)
if y0<0:
break
plt.plot(x,y)

所有代码

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

import numpy as np
import random
import matplotlib
matplotlib.rcParams['font.sans-serif']=[u'simHei']
matplotlib.rcParams['axes.unicode_minus']=False
import matplotlib.pyplot as plt tt = np.linspace(0,4,1000)
#y = -tt**2+4*tt
#plt.plot(tt,y,linestyle='--') # 没有风
vy0=10
g=10
vx0=5
x=[]
y=[]
x0=0
y0=0
dt = 4/1000
x.append(x0)
y.append(y0)
for t in tt:
y0 += vy0*dt
x0 += vx0*dt
vy0 -= g*dt
x.append(x0)
y.append(y0)
if y0<0:
break
plt.plot(x,y,linestyle='--') # 有向右的风
vy0=10
g=10
vx0=5
a = 1.5
x=[]
y=[]
x0=0
y0=0
dt = 4/1000
x.append(x0)
y.append(y0)
for t in tt:
y0 += vy0*dt
x0 += vx0*dt
vy0 -= g*dt
vx0 -= a*dt
x.append(x0)
y.append(y0)
if y0<0:
break
plt.plot(x,y) # 有向左的风
vy0=10
g=10
vx0=5
a = -1.5
x=[]
y=[]
x0=0
y0=0
dt = 4/1000
x.append(x0)
y.append(y0)
for t in tt:
y0 += vy0*dt
x0 += vx0*dt
vy0 -= g*dt
vx0 -= a*dt
x.append(x0)
y.append(y0)
if y0<0:
break
plt.plot(x,y)

 喷泉散落在地上模拟

import numpy as np
import random
import matplotlib
matplotlib.rcParams['font.sans-serif']=[u'simHei']
matplotlib.rcParams['axes.unicode_minus']=False
import matplotlib.pyplot as plt
from scipy.stats import norm
a1_list = random.uniform(0,0.5) # 生成一组正太分布的加速度,均值是0,方差是0.5
a1_list = norm.rvs(a1_list, size=1000)
a2_list = random.uniform(0,0.5)
a2_list = norm.rvs(a2_list, size=1000)
X0=[]
X1=[]
# 对每一组加速度
for i in range(1000):
vy0=10
g=10
vx0=5
vx1=5
a1 = a1_list[i]
a2 = a2_list[i]
x0=0
x1=0
y0=0
dt = 4/1000
for t in tt:
y0 += vy0*dt
x0 += vx0*dt
x1 += vx1*dt vy0 -= g*dt
vx0 -= a1*dt
vx1 -= a2*dt if y0<0:
break
X0.append(x0)
X1.append(x1) plt.scatter(X0,X1)

炫酷喷泉三维图

from mpl_toolkits.mplot3d import axes3d
from scipy.stats import norm
a1_list = random.uniform(0,0.2) # 生成一组正太分布的加速度,均值是0,方差是0.5
a1_list = norm.rvs(a1_list, size=100)
a2_list = random.uniform(0,0.2)
a2_list = norm.rvs(a2_list, size=100)
X0=[]
X1=[]
# 对每一组
ax=plt.subplot(111,projection='3d')
for i in range(100):
vy0=10
g=10
vx0=5
vx1=5
a1 = a1_list[i]
a2 = a2_list[i]
xx0=[]
xx1=[]
y=[]
x0=0
x1=0
y0=0
dt = 4/1000
for t in tt:
y0 += vy0*dt
x0 += vx0*dt
x1 += vx1*dt
vy0 -= g*dt
vx0 -= a1*dt
vx1 -= a2*dt
xx0.append(x0)
xx1.append(x1)
y.append(y0)
if y0<0:
break
# X0.append(x0)
# X1.append(x1) ax.plot(xx0,xx1,y,'--') plt.show()

数学建模python matlab 编程(喷泉模拟)的更多相关文章

  1. 数学建模python matlab 编程(疾病传播模型)

    例12:一只游船上有800(1000)人,一名游客不慎患传染病,12(10)小时后有3人发病,由于船上不能及时隔离,问经过60(30)小时,72小时,患此病的人数.(与人口模型和Logistic模型类 ...

  2. 数学建模python matlab 编程(指派问题)

    指派授课问题 现有A.B.C.D四门课程,需由甲.乙.丙.丁四人讲授,并且规定: 每人只讲且必须讲1门课:每门课必须且只需1人讲. 四人分别讲每门课的费用示于表中: 课 费用 人 A B C D 甲 ...

  3. 数学建模python matlab 编程(随机游走问题)

    1 (1). 随机游走问题.在-10到10的一维线段上,质点以1/5的概率用左运动1单位,以2/5的概率停止不动,以2/5的概率向右运动2单位,且碰到-10时向右运动3单位,碰到10时向左运动4单位. ...

  4. 数学建模python matlab 编程(椭圆声学原理画图证明,解析几何)

    证明,在椭圆形的音乐厅内,从一个椭圆的一个焦点发出声音,则另一个焦点听到的声音是最大的. 分析:证明,从椭圆的一个焦点任意发射的直线经过反射后,并经过另一个焦点.            画图,过一个焦 ...

  5. 在数学建模中学MATLAB

    为期三周的数学建模国赛培训昨天正式结束了,还是有一定的收获的,尤其是在MATLAB的使用上. 1. 一些MATLAB的基础性东西: 元胞数组的使用:http://blog.csdn.net/z1137 ...

  6. 【数学建模】MatLab 数据读写方法汇总

    1.读入 txt 文件数据. load xxx.txt A=load(‘xxx.txt’) A=dlmread(‘xxx.txt’) A=importdata(‘xxx.txt’) 例:将身高体重的 ...

  7. 【数学建模】MATLAB语法

    一.向量.矩阵的表示和使用 format long  %小数很多format short %默认4位小数format rat %显示最近的分数format short e %指数格式的数 尾数多少 e ...

  8. 【数学建模】MATLAB学习笔记——函数式文件

    MATLAB学习笔记——函数式文件 引入函数式文件 说明: 函数式文件主要用于解决计算中的参数传递和函数调用的问题. 函数式的标志是它的第一行为function语句. 函数式文件可以有返回值,也可以没 ...

  9. python 并发编程 多进程 模拟抢票

    抢票是并发执行 多个进程可以访问同一个文件 多个进程共享同一文件,我们可以把文件当数据库,用多个进程模拟多个人执行抢票任务 db.txt {"count": 1} 并发运行,效率高 ...

随机推荐

  1. nginx屏蔽版本号

    nginx的http段添加 server_tokens off; 在nginx.conf文件内如上增加server_tokens off;就隐藏了

  2. 6.Hbase 原理

    2 HBase体系结构 2.1 设计思路 HBase是一个分布式的数据库,使用Zookeeper管理集群,使用HDFS作为底层存储.在架构层面上由HMaster(Zookeeper选举产生的Leade ...

  3. Linux下 expect 使用详解与实例

    一.概述 我们通过Shell可以实现简单的控制流功能,如:循环.判断等.但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能.而Expec ...

  4. FreeRTOS时间管理

    延时函数 vTaskDelay() 相对延时函数,在文件task.c中定义的,要使用的话宏INCLUDE_vTaskDelay必须设置为1: void vTaskDelay( const TickTy ...

  5. Windows10官方正版系统的安装、激活、升级、U盘制作,无毒无害无捆绑无风险教程

    一般电脑系统出了其他问题或电脑用久太卡了,可以选择此类方法解决系统卡顿问题,重置电脑系统或也可以恢复出厂设置 如果出现重置找不到恢复环境问题 可以通过下载系统镜像来解决,进入 MSDN 网站下载所需系 ...

  6. 使用raw input 代替全局键盘钩子

    //关于raw input 请查看msdn https://msdn.microsoft.com/en-us/library/windows/desktop/ms645536%28v=vs.85%29 ...

  7. 25-SQLServer中的DMV和DMF的使用

    一.总结 1.什么事DMV和DMFDMV(Dynamic Management View):动态管理视图DMF(Dynamic Management Function):动态管理函数 二.操作步骤 1 ...

  8. ACM-ICPC 2018 徐州赛区现场赛 I. Rikka with Sorting Networks (思维+DFS)

    题目链接:https://codeforces.com/gym/102012/problem/I 题意:问有多少个 1 到 n 的排列,使得用给定的 k 个比较器(使 au 和 av 有序)排序后,整 ...

  9. vue文件夹上传插件选哪个好?

    文件夹数据库处理逻辑 public class DbFolder { JSONObject root; public DbFolder() { this.root = new JSONObject() ...

  10. git 从某一版本拉取新分支,并在新分支合并某几个commit

    场景:需要回退至红框中的那个版本,并且只添加“缓存逻辑优化,增加加载中的状态”这一次commit,其他的commit不添加. 步骤: 1) 切换到指定分支 dev git checkout dev 2 ...