可以采用Box_Muller的方法。Box-Muller方法是以兩組獨立的隨機(jī)數(shù)U和V,這兩組數(shù)在(0,1]上均勻分布,用U和V生成兩組獨立的標(biāo)準(zhǔn)常態(tài)分布隨機(jī)變量X和Yx=sqrt((-2)*ln(U))*cos(2*pi*V);Y=sqrt((-2)*ln(U))*sin(2*pi*V); matlab 程序function Norm_Distribution_Box_Mullerclear all;clc;%清屏 m=input('請輸入平均值:');n=input('請輸入標(biāo)準(zhǔn)差:'); t=input('請輸入數(shù)據(jù)長度:'); %產(chǎn)生正態(tài)分布的隨機(jī)數(shù) for i=1:t a=rand; b=rand; X1(i)=sqrt((-2)*log(a))*cos(2*pi*b); X2(i)=sqrt((-2)*log(a))*sin(2*pi*b); Y1=X1*n+m; Y2=X2*n+m; enddisp(Y1); %求平均值和標(biāo)準(zhǔn)差M1=mean(Y1); N1=std(Y1); disp(M1); disp(N1); disp(Y1); %求平均值和標(biāo)準(zhǔn)差 M2=mean(Y2); N2=std(Y2); disp(M2); disp(N2);%將數(shù)據(jù)寫入文本文件fid=fopen('xiefei1.dat','w'); Z1=Y1;fprintf(fid,'%f ',Z1);fclose(fid); %將數(shù)據(jù)寫入文本文件 fid=fopen('xiefei2.dat','w'); Z2=Y2; fprintf(fid,'%f ',Z2); fclose(fid); %繪圖 subplot(2,1,1); histfit(Y1);xlabel('隨機(jī)數(shù)'); ylabel('出現(xiàn)的次數(shù)'); %繪圖subplot(2,1,2);histfit(Y2);xlabel('隨機(jī)數(shù)');ylabel('出現(xiàn)的次數(shù)');%檢驗 h1=lillietest(Y1);%若結(jié)果h1為1,則說明零假設(shè)不成立,拒絕零假設(shè);否則,結(jié)果為0,零假設(shè)成立,即原分布為正態(tài)分布disp(h1);h2=lillietest(Y2);%若結(jié)果h2為1,則說明零假設(shè)不成立,拒絕零假設(shè);否則,結(jié)果為0,零假設(shè)成立,即原分布為正態(tài)分布 disp(h2);