导航:网站首页 >
matlab一个很小的编程题目,求助!!! matlab题目 求高手解答
matlab一个很小的编程题目,求助!!! matlab题目 求高手解答
相关问题:
匿名网友:
楼上两位的回答都很用心,也很精彩,赞一个。
我的代码主要有以下优点:
(1)用稀疏矩阵存储a,克服内存不足问题(N取100万,使用的内存还不到20M)。
(2)绘图动态显示N次模拟过程中r/R的变化。
代码如下(同时已作为附件上传):
N = 1000000;
M = 2*N;
a = sparse(M+1, M+1);
j = N + 1;
k = N + 1;
b = ceil(4*rand(1,N));
% 绘图显示计算过程(为提高效率,每n次循环输出一个点)
n = 500;
v = zeros(1, fix(N/n)+1) * NaN;
h = plot(1 : fix(N/n)+1, v, 'b-', NaN, NaN, 'ro');
xlabel('N');
ylabel('r/R');
set(gcf, 'DoubleBuffer', 'on');
set(gca, 'Xlim', [1 fix(N/n)+1]);
t=ceil(exp(1:15));
set(gca,'xtick',t/n,'xgrid','on','xticklabel',t)
for i = 1:N
switch b(i)
case 1, j=j+1; a(j,k)=a(j,k)+1;
case 2, k=k+1; a(j,k)=a(j,k)+1;
case 3, j=j-1; a(j,k)=a(j,k)+1;
case 4, k=k-1; a(j,k)=a(j,k)+1;
end
% 更新绘图
if ~rem(i, n) || i == N
% 注意:不能用 sum(a(:)~=0) 进行计算,否则容易导致内存不足
R = full(sum(sum(a~=0)));
c = fix(log(i));
r = full(sum(sum(a==c)));
idx = fix(i/n) + 1;
v(idx) = r/R;
set(h(1), 'yData', v);
set(h(2), 'xData', idx, 'yData', v(idx));
title(['N = ' int2str(i)]);
drawnow
end
end
% 输出结果
fprintf('R=%i, r=%i, r/R=%.3g\n\n', R, r, r/R);
% 统计各方向移动的次数(验证随机数的均匀性)
for i = 1 : 4
fprintf('方向%i的次数为%i\n', i, sum(b==i));
end
某次程序的输出如下:
R=204146, r=2856, r/R=0.014
方向1的次数为249327
方向2的次数为250179
方向3的次数为250085
方向4的次数为250409
简单说明几点:
1、由于是随机模拟,每次运行的结果都会有差别。
2、移动是一个前后关联的过程,所以随机数序列不仅要求均匀,还应该独立(相邻的随机数之间不相关)。
3、图中的虚线表示 int(ln(n)) 发生变化的N,计算格点次数变了,所以通常表现为不连续。
4、从图中的变化趋势看,没有收敛到某一个数的明显迹象,我运行两次的结果分别是0.0118和0.014。
5、在我的机器上,取N=100万,运行一次的时间大约是10分钟。
6、程序对MATLAB版本没有特别要求,在6.5、2008a、2012b上测试过,都可以正常运行。
匿名网友:
1.matlab一个很小的编程题目,求助!!!
问:本人matlab基本上是不大懂的。。。本来想用C语言实现,结果发现C语言在...
2.matlab题目 求高手解答
问:matlab题目 求高手解答 matlab题目 求解答 1到7的最短路径 给出matlab总...
3.matlab题目
问:Write a simple MATLAB script which converts durations from seconds ...
4.matlab题目求解
问:x = [50 50 -50 -50];y = [40 -40 -40 -40];dt = 0.04;v=0.5;t=0for i=1...
5.matlab编程问题,题目如下:
问:题目:假设新的训练样本服从二维正态分布,请用最大似然估计法估计出训...
6.matlab习题,求答案
问:如果x=1:2:8,则x(1)和x(4)分别是 x=[1 2 3],y=3:-1:1,两变量相乘结果为...
7.求matlab题目
问:硅谷员工某部门有50名员工,其工资计算方法如下: (1)工作时数超过120...
8.求解答这道matlab题目。急用
问:三、创建符号函数并求解,要求写出步骤(10分) (1)创建符号函数f=ax2+b...
9.简单MATLAB问题
问:sub2ind和ind2sub各自是什么意思? 能否举例说明,谢谢
10.MATLAB的问题
问:1. .已知传递函数 G(s)=(6s^2+1)/(s^3+3s^2+3s+1) H(s)=[(s+1)(s+2)]/[(...
问题推荐