第2章【思考与练习3】随机游走轨迹模拟。将随机游走的步数增加到100步,计算物体最终与原点的距离。重复多次随机游走过程,观察物体与原点距离的变化趋势。
P33思考练习题3
1.将随机游走的步数增加到100步,计算物体最终与原点的距离。
#第1题
#模拟每步生成方向
import numpy as np
steps = 100
rndwlk = np.random.randint(0,2,size = (2,steps))
rndwlk = np.where(rndwlk>0,1,-1)
print(rndwlk)
#计算每步移动后的位置
position = rndwlk.cumsum(axis = 1) #按行累加求和
print(position)
#计算每步移动后与原点的距离
dists = np.sqrt(position[0]**2+position[1]**2) #sqrt求平方根
print(dists)
print(round(dists[-1],4)) #格式化输出保留4位小数。round(数,保留位数)
2.重复多次随机游走过程,观察物体与原点距离的变化趋势。
此题在第1小题的基础上进行。先后分析100次,1000次,10000次随机游走100步后物体最终离原点的距离,得出结论:运行次数越多,越能发现物体在二维空间内随机游走100步后离原点的平均距离趋近(收敛)于一个数。(这个数为10,见下)
运用到了之后几章的知识:用Matplotlib绘制散点图分析距离数据及运用机器学习回归建模。
结论:在二维平面内随机选择方向走一个单位的长度,则n步之后离出发点的平均距离为根号n。数学推导如下:
随机游走的期望距离_chivalry-CSDN博客_一维随机游走的期望距离
运行100次:
import numpy as np
l = []
for i in range(100):steps = 100rndwlk = np.random.randint(0,2,size = (2,steps))rndwlk = np.where(rndwlk>0,1,-1)position = rndwlk.cumsum(axis = 1) dists = np.sqrt(position[0]**2+position[1]**2) l.append(round(dists[-1],2))
print(l)#使用matplotlib绘制散点图,分析趋势
import matplotlib.pyplot as plt
%matplotlib inline
plt.figure(figsize = (20,6)) #定义图形大小
plt.scatter(x = np.arange(1,101),y = l,marker = '*',c = 'red') #plt.scatter()函数画散点图
plt.show() #展示图形#根据散点图分析,建立回归分析模型
x = np.arange(1,101).astype(float) #astype()函数强制类型转换为浮点型
Y = np.array(l) #将l列表转为数组
from sklearn.linear_model import LinearRegression
linreg = LinearRegression() #初始化模型
linreg.fit(x.reshape(-1,1),Y) #添加.reshape(-1,1)解决x单独一行/列不为二维数组出错的问题
print(linreg.intercept_,linreg.coef_) #输出回归模型截距,回归系数
结果 :
其中一次运行得到的次数与距离的回归方程:y = -0.008x+13.32
散点图如下:
运行1000次:
结果 :
其中一次运行得到的次数与距离的回归方程:y = 0.0008x+11.87
散点图如下:
运行10000次:
结果 :
其中一次运行得到的次数与距离的回归方程:y = -7.02e-06x+12.57
散点图如下:
由此可见,随着运行次数的增加,回归方程的回归系数越来越小,点被y=10这条线划分的界限越来越清晰。
第2章【思考与练习3】随机游走轨迹模拟。将随机游走的步数增加到100步,计算物体最终与原点的距离。重复多次随机游走过程,观察物体与原点距离的变化趋势。相关推荐
- python三维随机游走轨迹模拟_用Python模拟随机游走(Random walks)
什么是随机游走? 随机游走(random walk)也称随机漫步,随机行走等,是以随机的体例采纳连续步调的过程.然后,可以将其他条件应用于此描述,以为您的特定用例建立一个随机遍历.粒子的布朗运动,股票 ...
- Java黑皮书课后题第6章:*6.38(生成随机字符)使用程序清单6-10 RandomCharacter中的方法,打印100个大写字母及100个一位数字,每行打印10个
6.38(生成随机字符)使用程序清单6-10 RandomCharacter中的方法,打印100个大写字母及100个一位数字,每行打印10个 题目 题目描述 程序清单6-10 破题 代码 运行实例 题 ...
- “随机漫步”(Random Walk)模拟演示
(1).任务描述 有一类问题总称为"随机漫步"(Random Walk)问题,这类问题长久以来吸引着数学界的兴趣.所有这些问题即使是最简单的解决起来也是极其困难的.而且它们在很大程 ...
- Unity 3D鼠标操作实现旋转、缩放观察物体
1.实现思路:操作摄像头围绕物体中心点(远点),做球面旋转移动来实现旋转观察物体,控制球的半径大小来实现物体的缩放效果. 2.C#摄像头源码脚本 //放在摄像头上,实现旋转.缩放观察物体 using ...
- 计量经济学计算机答案第三章课后答案,复旦大学 经济学院 谢识予 计量经济学 计量经济学第三章思考练习题...
计量经济学第三章思考练习题 1. 两变量线性回归模型适合研究的经济问题有哪些主要特征? 2. 若变量Y和X之间的关系为Y A(X 5)2e ,其中A. 为未知参数, 为随机误差,问能否用两变量线性回归 ...
- 随机不重复:从以下学员名单中随机选出4个学员:var arr = [“鹿晗“,“王俊凯“,“蔡徐坤“,“彭于晏“,“周杰伦“,“刘德华“,“赵本山“];注意:不要有重复的学员
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- 层次聚类定义、层次聚类过程可视化、簇间距离度量、BIRCH、两步聚类、BIRCH算法优缺点
层次聚类定义.层次聚类过程可视化.簇间距离度量.BIRCH.两步聚类.BIRCH算法优缺点 目录
- 方舟非主机服务器无限距离,方舟非专业服务器距离限制怎么解除 | 手游网游页游攻略大全...
发布时间:2016-08-03 方舟适者生存服务器进不去 进不去服务器解决办法攻略.服务器进不去怎么办?很多玩家无法进入服务器,主要是两种情况,一种是点服务器游戏就重启,一种是进不去,这里给大家介绍解 ...
- 第15章-4~6 装配体静力学分析经验技巧总结篇 (工作原理的简化、约束、预紧力、载荷、后处理)高效修改接触对、suppress(抑制)、多工位(多步计算)的螺栓预紧力设置
15-04 工作原理的对接 (相关不清楚的设置在之前的博客有介绍,欢迎关注博客.批评指正) 在仿真前必须对工位吊的原理非常清楚. 接触类型辨别: 1转筒1和转台2的接触面有三个,它们之间是摩擦接触. ...
最新文章
- 【数据库】SQLite和MySQL之间的对比和选择
- 全球三大BCH(比特币现金)城市,有你想去的吗
- Mysql中(@i:=@i+1)的作用
- Fibonacci(斐波纳契)数列各种优化解法
- Java监听器用法(三):外部类监听器
- 深度linux引导安装,全程演示Linux Deepin 12.06安装过程
- Cert manager自动签发/更新证书
- 找出SAP OData service出错根源的小技巧
- svn 403 Forbidden
- Mock2 moco框架的http协议get方法Mock的实现
- 基于javafx的五子棋_JavaFX中基于表达式的PathTransitions
- Android 系统(164)---手机收到8bit编码的短信无法显示
- 别急,MIUI 11还有惊喜!下一代MIUI项目已开拔
- tcp socket的发送与接收缓冲区
- 3位水仙花数计算pythonoj_简述 取模运算Modulo Operation 及其与 取余运算Complementation 区别联系...
- 购买物品_1美元能买些啥?盘点1美元在10个不同的国家所能购买的物品
- c++ struct与class
- 在VUE中实现城市及对应的地区的联动渲染
- 一个用于创建JSON接口的网站 http://myjson.com/api
- 【杂项】VScode中C C++代码美化工具Uncrustify配置详解