matlab源代码实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.硬币模拟试验
源代码:
clear;
clc;
head_count=0;
p1_hist= [0];
p2_hist= [0];
n = 1000;
p1 = 0.3;
p2=0.03;
head = figure(1);
rand('seed',sum(100*clock));
for i = 1:n
tmp = rand(1);
if(tmp <= p1)
head_count = head_count + 1;
end
p1_hist (i) = head_count /i;
end
figure(head);
subplot(2,1,1);
plot(p1_hist);
grid on;
hold on;
xlabel('重复试验次数');
ylabel('正面向上的比率');
title('p=0.3试验次数N与正面向上比率的函数图');
head_count=0;
for i = 1:n
tmp = rand(1);
if(tmp <= p2)
head_count = head_count + 1;
end
p2_hist (i) = head_count /i;
end
figure(head);
subplot(2,1,2);
plot(p2_hist);
grid on;
hold on;
xlabel('重复试验次数');
ylabel('正面向上的比率');
title('p=0.03试验次数N与正面向上比率的函数图');
实验结果:
2.不同次数的随机试验均值方差比较
源代码:
clear ;
clc;
close;
rand('seed',sum(100*clock));
Titles = ['n=5时'
'n=20时'
'n=25时'
'n=50时'
'n=100时'];
Titlestr = cellstr(Titles);
X_n_bar=[0]; %the samples of the X_n_bar
X_n=[0]; %the samples of X_n
N=[5,10,25,50,100];
j=1;
num_X_n = 100;
num_X_n_bar = 100;
h_X_n_bar = figure(1);
for n = 1: num_X_n
for i= 1 : num_X_n_bar
X_n = rand(1,n);
X_n_bar(i) = mean(X_n); %X_n 是我们模拟的对象end
mean_X_n_bar(n) = mean(X_n_bar); %均值
var_X_n_bar(n) = var(X_n_bar);%方差
if(n==5||n==10||n==25||n==50||n==100)
figure(h_X_n_bar)
subplot(2,2,j);
plot(X_n_bar);
grid on;
hold on;
xlabel('重复试验次数');
ylabel('Xn_bar');
axis([0 100 0 1]);
title(Titlestr(j));
j=j+1;
end
end
theory_mean_X_n_bar = [num_X_n];
theory_var_X_n_bar = [num_X_n];
for n=1:100
theory_mean_X_n_bar(n) = 0.5;
theory_var_X_n_bar(n) = 1/(12*n);
end
figure;
subplot(2,1,1);
plot(theory_mean_X_n_bar, '-r');
grid on;
hold on;
plot(mean_X_n_bar,'bo-');
xlabel('n');
ylabel('样本均值的均值');
legend('theory value','sampled value');
subplot(2,1,2);
plot(theory_var_X_n_bar, '-r');
grid on;
hold on;
plot(var_X_n_bar,'bo-');
xlabel('n');
ylabel('样本均值的方差');
legend('theory value','sampled value');实验结果: