日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

matlab线性同余发生器,用MATLAB进行随机数模拟--线性同余法

發(fā)布時間:2024/8/1 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab线性同余发生器,用MATLAB进行随机数模拟--线性同余法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、采用混合同余法生成隨機數(shù)

根據(jù)要求生成100個[0,1]內(nèi)的均勻分布隨機數(shù),且運用混合同于法,混合同于法為線性同余法中的一種方法,混合同余法的迭代公式如下:

其中,若 和 不為0,則為混合同余法;若 和 不為0,則稱為乘同余法。

根據(jù)上述方法利用matlab編程得到生成均勻分布函數(shù)fangzheng3如下程序:

function f=fangzheng3(a,c,m,x)

A=zeros(1000,1);

n=1;

while n<=1000

n=n+1;

x=rem((a*x+c),m);

r=x/1000;

A(n-1,1)=r;

End

運行如下:

fangzheng3(97,3,1000,71)得到的結(jié)果見附表1,部分結(jié)果如下表1:混合同余法生成隨機數(shù)部分結(jié)果表:

表1:混合同余法生成隨機數(shù)部分結(jié)果表:

序號

隨機數(shù)

序號

隨機數(shù)

序號

隨機數(shù)

序號

隨機數(shù)

序號

1

0.89

101

0.39

201

0.89

301

0.39

401

2

0.333

102

0.833

202

0.333

302

0.833

402

3

0.304

103

0.804

203

0.304

303

0.804

403

4

0.491

104

0.991

204

0.491

304

0.991

404

5

0.63

105

0.13

205

0.63

305

0.13

405

6

0.113

106

0.613

206

0.113

306

0.613

406

7

0.964

107

0.464

207

0.964

307

0.464

407

8

0.511

108

0.011

208

0.511

308

0.011

408

9

0.57

109

0.07

209

0.57

309

0.07

409

10

0.293

110

0.793

210

0.293

310

0.793

410

11

0.424

111

0.924

211

0.424

311

0.924

411

12

0.131

112

0.631

212

0.131

312

0.631

412

13

0.71

113

0.21

213

0.71

313

0.21

413

14

0.873

114

0.373

214

0.873

314

0.373

414

15

0.684

115

0.184

215

0.684

315

0.184

415

16

0.351

116

0.851

216

0.351

316

0.851

416

17

0.05

117

0.55

217

0.05

317

0.55

417

18

0.853

118

0.353

218

0.853

318

0.353

418

19

0.744

119

0.244

219

0.744

319

0.244

419

對生成的隨機數(shù)進行一般的統(tǒng)計量進行計算,計算出生成隨機數(shù)的均值和方差以及標準差,matlab程序如下:

sum=0;

for n=1:1000

sum=sum+A(n,1);

end

sum

Avg=sum/1000; %計算其均值

s=0;

for n=1:1000

s=s+(A(n,1)-Avg)^2;

end

S=s/(1000-1)?%計算其方差

Stdv=S^0.5?%計算其標準差

得到如下結(jié)果:

Avg =0.49950000000000

S =0.08339464464464

Stdv =0.28878130937553

可以看出,生成的均勻分布隨機數(shù)是均值為0.5,標準差在0.3左右。

2、用上面的均勻分布隨機數(shù),再根據(jù)正態(tài)分布函數(shù)生成正態(tài)分布隨機數(shù),標準正態(tài)分布函數(shù)如下:

因此利用matlab編程,程序如下:

n=length(A);

Z=zeros(n,1);

z=zeros(n,1);

for i=1:n;

z(i,1)=A(i,1)-0.5;

Z(i)=exp((-z(i,1)^2)/2)/(2*pi)^0.5;

plot(z(i,1),Z(i,1),'-r');

hold

on

end

根據(jù)上面的程序?qū)⑸傻木鶆蚍植茧S機數(shù)轉(zhuǎn)化成了標準正態(tài)分布隨機數(shù),結(jié)果見附表2,部分結(jié)果如下表2:標準正態(tài)分布隨機數(shù)

表2:標準正態(tài)分布隨機數(shù)

序號

隨機數(shù)值

序號

隨機數(shù)值

序號

隨機數(shù)值

序號

隨機數(shù)值

1

0.3697277

101

0.396536

201

0.3697277

301

0.396536

2

0.3934178

102

0.3774251

202

0.3934178

302

0.3774251

3

0.3913525

103

0.3809274

203

0.3913525

303

0.3809274

4

0.3989261

104

0.3536389

204

0.3989261

304

0.3536389

5

0.3955854

105

0.3725483

205

0.3955854

305

0.3725483

6

0.3701589

106

0.3964033

206

0.3701589

306

0.3964033

7

0.3582277

107

0.3986838

207

0.3582277

307

0.3986838

8

0.3989181

108

0.3539856

208

0.3989181

308

0.3539856

9

0.3979661

109

0.3637136

209

0.3979661

309

0.3637136

10

0.3904861

110

0.3821802

210

0.3904861

310

0.3821802

11

0.3977918

111

0.3646466

211

0.3977918

311

0.3646466

12

0.372686

112

0.3955338

212

0.372686

312

0.3955338

13

0.3902419

113

0.3825146

213

0.3902419

313

0.3825146

14

0.3721333

114

0.3957379

214

0.3721333

314

0.3957379

15

0.3922458

115

0.379513

215

0.3922458

315

0.379513

通過生成的結(jié)果做出了標準正態(tài)分布圖如下圖:

總結(jié)

以上是生活随笔為你收集整理的matlab线性同余发生器,用MATLAB进行随机数模拟--线性同余法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。