在无风情况下的喷泉模拟

我的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. Qt 4.8.5 + MinGW32 + Qt creater 安装

    Qt 4.8.5 + MinGW32 + Qt creater 安装 下载文件 文件版本 Qt 4.8.5 MinGW 0.4.4 Qt Creator 2.8或2.8.1 gdb-7.4-MinGW ...

  2. 【shell】ping加时间戳回复

    ping 192.168.2.1 -c 10 | awk '{ print $0"\t" strftime("%H:%M:%S",systime()) } ' ...

  3. Paper Reading:HyperNet

    论文:HyperNet: Towards Accurate Region Proposal Generation and Joint Object Detection 发表时间:2016 发表作者:( ...

  4. Java&Selenium 模拟鼠标方法封装

    Java&Selenium 模拟鼠标方法封装 package util; import org.openqa.selenium.By; import org.openqa.selenium.W ...

  5. Python与数据库 sqlalchemy 建立声明层表对象的两种方式

    在对表对象进行建立的时候,通常有两种方式可以完成,以下是两种方式的建立过程对比 首先导入需要的模块,获取一个声明层 1 from sqlalchemy.sql.schema import Table, ...

  6. ASP.Net参数传递小结

    同一页面.aspx与.aspx.cs之间参数传递 1. .aspx.cs接收.aspx的参数:由于.aspx和.aspx.cs为继承关系,所以.aspx.cs可以直接对.aspx中的ID进行值提取,具 ...

  7. STM32串口接收中断——基于HAL库

    写在前面 最近需要使用一款STM32L4系列的芯片进行开发,需要学习使用HAL库.在进行串口中断使用的时候遇到了一些小麻烦,写下解决方案供大家参考. 1.UART相关的头文件引用错误 由于本人直接使用 ...

  8. 第六章 Flask数据库(一)之SQLAlchemy

    将ORM模型映射到数据库中 1. 用`declarative_base`根据`engine`创建一个ORM基类. from sqlalchemy.ext.declarative import decl ...

  9. 2018 开始认真学习点python

    2018 伊始,又是春暖花开.俗语,“一年之计在于春”.又是一年立志时. 决定认真学习一些web. 本来倾向与学习NodeJS的.可是之前买的python的书太多了.就先紧手头的资源看了再说吧. 今天 ...

  10. show([speed,[easing],[fn]])

    show([speed,[easing],[fn]]) 概述 显示隐藏的匹配元素. 这个就是 'show( speed, [callback] )' 无动画的版本.如果选择的元素是可见的,这个方法将不 ...