1

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

我原来的代码matlab:

s=0;
now=0;
for i=1:400
x=unifrnd(0,1);
if x<=0.2
if now-1 <= -10
now=now-1+3;
else
now=now-1;
end
elseif x>0.6
if now+1 >= 10
now =now+1-3;
else
now=now+1;
end
end
s = [s now];
end
s
plot(s)
xlabel('时间')
ylabel('位置')

老师的代码:

Ctrl+R 注释 

Ctrl+T 取消注释

…… 换行不影响代码完整性

F5运行

clear
s(1)=0;t=300
for n=1:t
a=rand(1);
s(n+1)=(s(n)-1).*(a<1/5)+s(n).*(a<3/5&a>1/5)+......
(s(n)+2).*(a>3/5)
s(n+1)=-7.*(s(n+1)<=-10)+6.*(s(n+1)>=10)+s(n+1).*(s(n+1)<10&s(n+1)>-10);
end
plot(s,'O')

插入图例,标签,标题等

python代码:

import random
import matplotlib.pyplot as plt
s=[0]
for i in range(400):
a = random.random()
s.append((s[-1]-1)*(a<1/5)+s[-1]*(a<3/5 and a>1/5)+(s[-1]+2)*(a>3/5))
s[-1]=-7*(s[-1]<=-10)+6*(s[-1]>=10)+s[-1]*(s[-1]<10 and s[-1]>-10);
#plt.plot(s) fig = plt.figure()
ax = fig.add_subplot(1,1,1)
x = range(len(s))
#plt.scatter(y,s, marker='o')
ax.scatter(x,s,color='', marker='o', edgecolors='g',label='点的位置') #颜色为空,设置为空 #解决中文显示问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False # 设置标题
ax.set_title('随机游走问题')
# 设置横坐标名称
ax.set_xlabel('时间')
# 设置纵坐标名称
ax.set_ylabel('位置') # 添加图例
#ax.legend(loc="upper left")
ax.legend(loc="") #自动选择一个空的位置
fig.show()

(2)考虑二维空间的布朗运动。

画图时加上横坐标和纵坐标说明,且考虑如何将图片插入到word文档中去。

考虑如何将图片中加上一横线和一纵线。

我的python代码:

import random
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
s=[0]
sy=[0]
for i in range(400):
x = random.random()
if x<=0.2:
if s[-1]-1 <= -10:
s.append(s[-1]-1+3)
else:
s.append(s[-1]-1)
elif x>0.2 and x<=0.6:
s.append(s[-1])
elif x>0.6:
if s[-1]+1 >= 10:
s.append(s[-1]+1-3)
else:
s.append(s[-1]+1) x = random.random()
if x<=0.2:
if sy[-1]-1 <= -10:
sy.append(sy[-1]-1+3)
else:
sy.append(sy[-1]-1)
elif x>0.2 and x<=0.6:
sy.append(sy[-1])
elif x>0.6:
if sy[-1]+1 >= 10:
sy.append(sy[-1]+1-3)
else:
sy.append(sy[-1]+1) fig = plt.figure() ax = fig.add_subplot(1,2,1)
ax.plot(s)
ax.set_ylabel('时间',color='r')
ax.set_xlabel('位置',color='c') ay = fig.add_subplot(1,2,2)
ay.plot(sy)
ay.set_ylabel('时间',color='r')
ay.set_xlabel('位置',color='c') fig.show() # 此处fig是二维
fig = plt.figure()
# 将二维转化为三维
axes3d = Axes3D(fig)
# axes3d.scatter3D(x,y,z)
# 效果相同
z=range(401)
axes3d.plot(s,sy,z)

我的matlab代码:

clear
s(1)=0;t=500
y(1)=0;
for n=1:t
a=rand(1);
s(n+1)=(s(n)-1).*(a<1/5)+s(n).*(a<3/5&a>1/5)+(s(n)+2).*(a>3/5)
s(n+1)=-7.*(s(n+1)<=-10)+6.*(s(n+1)>=10)+s(n+1).*(s(n+1)<10&s(n+1)>-10); a=rand(1);
y(n+1)=(y(n)-1).*(a<1/5)+y(n).*(a<3/5&a>1/5)+(y(n)+2).*(a>3/5)
y(n+1)=-7.*(y(n+1)<=-10)+6.*(y(n+1)>=10)+y(n+1).*(y(n+1)<10&y(n+1)>-10);
end
plot(s,y,'O')

数学建模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 编程(椭圆声学原理画图证明,解析几何)

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

  4. 数学建模python matlab 编程(喷泉模拟)

    在无风情况下的喷泉模拟 我的python代码 import numpy as np import random import matplotlib matplotlib.rcParams['font. ...

  5. 【Matlab】随机游走产生图像效果

    随机游走类似布朗运动,就是随机的向各个方向走吧.产生的图像实在漂亮,所以还是贴出分享. clear all; close all; clc; n=100000; x= 0; y= 0; pixel=z ...

  6. python模拟随机游走

    在python中,可以利用数组操作来模拟随机游走. 下面是一个单一的200步随机游走的例子,从0开始,步长为1和-1,且以相等的概率出现.纯Python方式实现,使用了内建的 random 模块: # ...

  7. matlab练习程序(随机游走图像)

    随机游走类似布朗运动,就是随机的向各个方向走吧. 虽然代码没什么技术含量,不过产生的图像实在太漂亮了,所以还是贴上来吧. 产生的图像: matlab代码如下: clear all;close all; ...

  8. 介绍一个全局最优化的方法:随机游走算法(Random Walk)

    1. 关于全局最优化求解   全局最优化是一个非常复杂的问题,目前还没有一个通用的办法可以对任意复杂函数求解全局最优值.上一篇文章讲解了一个求解局部极小值的方法--梯度下降法.这种方法对于求解精度不高 ...

  9. 推荐系统之基于图的推荐:基于随机游走的PersonalRank算法

    转自http://blog.csdn.net/sinat_33741547/article/details/53002524 一 基本概念 基于图的模型是推荐系统中相当重要的一种方法,以下内容的基本思 ...

随机推荐

  1. Vim技巧----选取一个单词

    viw 它的作用是选取一个单词(word),无论光标在这个单词的哪个位置都能选中整个单词. 每日一Vim(18)Text-Object 前两节讲了Visual mode相关内容,这里提一个小问题,“如 ...

  2. java8 常用语法小结

    // 判空 // 排序 //映射 //序列化

  3. java -为什么重写equals(),还需要重写hashCode()?

    1.先post这两个方法的基本定义: equals()的定义: 浅谈Java中的equals和==(转) hashCode()的定义: java中hashCode()方法的作用 Java中hashCo ...

  4. 【JOISC2012】fish

    Description 有 \(n\) 条鱼,第 \(i\) 条鱼的长度为 \(L_i\),颜色是 \(C_i\)(\(C_i\) 只能是 'R','G','B'). 你需要从中挑出至少一条鱼,要求挑 ...

  5. java与JSON

    XML 格式数据极其的冗长.因为每个离散的数据片段需要大量的 XML 结构,所有有效 的数据的比例非常低.XML 语法还有轻微的模糊.还有,解析 XML 是非常占程序员的精力的.你需要提前了解详细的结 ...

  6. MySQL基准测试和sysbench工具

    参考https://www.cnblogs.com/kismetv/archive/2017/09/30/7615738.html 一.基准测试的作用 sysbench是一个开源的.模块化的.跨平台的 ...

  7. 《Redis 设计与实现》读书笔记(四)

    独立功能的实现 十八.发布和订阅 发布和订阅由下面几条命令组成 PUBLISH,发布消息,例如PUBLISH SUBSCRIBE,订阅某个频道 SUBSCRIBE UNSUBSCRIBE 退订某个频道 ...

  8. andSelf() V1.2 加入先前所选的加入当前元素中

    andSelf() V1.2概述 加入先前所选的加入当前元素中 对于筛选或查找后的元素,要加入先前所选元素时将会很有用.直线电机生产厂家 从jQuery1.8开始,.andSelf()方法已经被标注过 ...

  9. SQL Server孤立用戶

    如何解决孤立用户问题 http://blog.csdn.net/zzl1120/article/details/7394468 SQL SERVER孤立用户问题解决方法 http://www.2cto ...

  10. 在chrome开发者模式中查找你的js文件

    在chrom开发者模式中按ctrl+o查找你的js文件