日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

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

一、采用混合同余法生成隨機數

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

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

根據上述方法利用matlab編程得到生成均勻分布函數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)得到的結果見附表1,部分結果如下表1:混合同余法生成隨機數部分結果表:

表1:混合同余法生成隨機數部分結果表:

序號

隨機數

序號

隨機數

序號

隨機數

序號

隨機數

序號

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

對生成的隨機數進行一般的統計量進行計算,計算出生成隨機數的均值和方差以及標準差,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?%計算其標準差

得到如下結果:

Avg =0.49950000000000

S =0.08339464464464

Stdv =0.28878130937553

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

2、用上面的均勻分布隨機數,再根據正態分布函數生成正態分布隨機數,標準正態分布函數如下:

因此利用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

根據上面的程序將生成的均勻分布隨機數轉化成了標準正態分布隨機數,結果見附表2,部分結果如下表2:標準正態分布隨機數

表2:標準正態分布隨機數

序號

隨機數值

序號

隨機數值

序號

隨機數值

序號

隨機數值

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

通過生成的結果做出了標準正態分布圖如下圖:

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。