Исследование метода вычисления многомерного интеграла методом статистических испытаний (метод Монте-Карло)

Автор работы: Пользователь скрыл имя, 13 Января 2013 в 11:25, курсовая работа

Описание работы

Вычислить многомерные интегралы методом статистических испытаний (методом Монте-Карло) и исследовать влияние кол-ва случайных точек на приближенное значение интеграла для следующих случаев:

Содержание работы

1 Задание для исследования 3
2 Описание метода решения 4
3 Результаты исследования 5
4 Сравнение результатов 20
5 Список литературы 21
Приложение А. Текст программы, реализующий исследование. 22

Файлы: 1 файл

Kurs_otch.doc

— 403.50 Кб (Скачать файл)

Министерство общего и профессионального образования

Российской Федерации

Уральский Государственный  Технический Университет – УПИ

Кафедра Технологий и  Средств Связи

 

 

 

 

 

 

 

 

 

 

 

 

 

Исследование  метода вычисления многомерного интеграла  методом статистических испытаний (метод Монте-Карло)

 

Отчет по лабораторным работам дисциплины “Информатика”, третий семестр

 

 

 

 

 

Студенты:

 

 

 

Группа: Р-226

Преподаватель:

Яковлев Алексей Владимирович

 

 

 

 

 

 

 

 

Екатеринбург 2002

 

СОДЕРЖАНИЕ

 

 

1 Задание для исследования

 

Вычислить многомерные интегралы  методом статистических испытаний (методом Монте-Карло) и исследовать  влияние кол-ва случайных точек  на приближенное значение интеграла  для следующих случаев:

 

1.  , где G – треугольник с вершинами A(0,0), B(1,0), C(1,1)

2.  , где G – криволинейный треугольник, ограниченный параболой y2 = x и прямыми x = 0, y = 1

3.  , где G – область интегрирования, ограниченная координатными плоскостями и плоскостью x + y + z = 1

 

2 Описание метода решения

 

Переменной m задается кратность интеграла. Во всех трех заданиях она равна двум (m = 2).

 

Образуем m равномерно распределенных на отрезке [0,1] последовательностей случайных чисел вида {xji , i=1,…N} j=1,…m. Это достигается запуском m раз генерации серии N случайных чисел. При m = 1 серия чисел для переменной x. Результаты помещаются в массив Arr1[0][x], где x = 0,…N-1. При m = 2 серия чисел для переменной y. Результаты помещаются в массив Arr1[1][y], где y = 0,…N-1.

 

Теперь вектор {xjk, j=1,…m} можно рассматривать как k – ю точку в многомерном пространстве, причем мы получили набор из N таких точек, равномерно распределенных в m – мерном единичном кубе. В программе этот вектор выглядит как совокупность точек Arr1[0][k] и Arr1[1][k] (в третьем случае еще и Arr1[2][k]).

 

Проверяем какое количество точек  попало в область G и переносим их в массив Arr2[][];

Вычисляем интеграл по формуле  .

 

3 Результаты исследования

 

Результаты исследований проведенных  для интегралов 1, 2 и 3 размещены в Таблица 1, Таблица 2 и Таблица 3 соответственно. Графики отклонения значения интеграла вычисленного при помощи программы от вычисленного алгебраическим способом расположены на Рисунок 1, Рисунок 2 и Рисунок 3 соответственно.

 

Таблица 1

Общее число случайных  точек

N

Число точек попавших в область N - n

Примерный процент попадания

Значение интеграла

I * 1000

100

41

41

207.403866

200

93

46

249.003233

300

156

52

273.509211

400

207

51

280.821664

500

244

48

254.370628

600

292

48

253.307079

700

344

49

257.689679

800

402

50

256.937830

900

458

50

267.065492

1000

491

49

255.008842

1100

566

51

272.897840

1200

601

50

266.748697

1300

653

50

261.251333

1400

675

48

251.202605

1500

754

50

265.613832

1600

787

49

250.716613

1700

866

50

268.915162

1800

902

50

257.739123

1900

977

51

267.125815

2000

976

48

254.867523

2100

1055

50

259.927658

2200

1075

48

258.525011

2300

1145

49

258.648328

2400

1230

51

265.433003

2500

1271

50

266.804737

2600

1277

49

259.554555

2700

1360

50

264.254899

2800

1398

49

261.421030

2900

1434

49

260.796848

3000

1515

50

263.630659

3100

1567

50

265.351419

3200

1570

49

256.332938

3300

1655

50

262.563380

3400

1725

50

264.828277

3500

1760

50

263.117395

3600

1832

50

268.468701

3700

1867

50

262.615953

3800

1865

49

254.872287

3900

1987

50

269.880944

4000

2066

51

272.775151

4100

2070

50

266.053828

4200

2134

50

269.975126

4300

2183

50

267.506783

4400

2238

50

267.594811

4500

2310

51

269.562820

4600

2287

49

259.493372

4700

2380

50

266.268629

4800

2423

50

264.878567

4900

2442

49

261.408421

5000

2468

49

257.076286

5100

2595

50

267.583400

5200

2595

49

260.940391

5300

2672

50

265.570021

5400

2670

49

257.414136

5500

2780

50

263.994676

5600

2805

50

260.845007

5700

2837

49

260.252879

5800

2961

51

267.622718

5900

2928

49

259.507351

6000

2970

49

257.127703

6100

3038

49

259.883721

6200

3101

50

263.693106

6300

3190

50

267.710452

6400

3227

50

266.606365

6500

3217

49

257.180913

6600

3336

50

264.547720

6700

3324

49

258.187469

6800

3423

50

262.733722

6900

3444

49

260.254433

7000

3498

49

261.415696

7100

3547

49

261.797441

7200

3587

49

262.142195

7300

3582

49

256.097748

7400

3676

49

259.583091

7500

3760

50

261.137750

7600

3797

49

259.907472

7700

3912

50

266.394003

7800

3882

49

260.556222

7900

4017

50

267.673791

8000

3967

49

261.534573

8100

4056

50

261.257409

8200

4075

49

261.172113

8300

4061

48

253.740389

8400

4134

49

258.136390

8500

4298

50

266.423749

8600

4278

49

260.472465

8700

4324

49

260.987507

8800

4419

50

264.512611

8900

4479

50

264.572287

9000

4536

50

265.736818

9100

4566

50

262.697992

9200

4537

49

256.619907

9300

4626

49

259.644424

9400

4704

50

263.026951

9500

4715

49

260.250086

9600

4828

50

264.581779

9700

4912

50

266.049804

9800

4899

49

262.163817

9900

4935

49

259.062990

10000

5046

50

265.189058

10100

5098

50

265.608309

10200

5063

49

258.726989

10300

5154

50

262.505089

10400

5209

50

261.257873

10500

5264

50

262.142404

10600

5306

50

260.977459

10700

5381

50

262.758637

10800

5423

50

263.583218

10900

5452

50

261.693717

11000

5573

50

266.480081

11100

5519

49

258.851087

11200

5623

50

262.492439

11300

5639

49

258.667850

11400

5734

50

262.872686

11500

5745

49

260.761650

11600

5827

50

263.626567

11700

5837

49

261.417878

11800

5870

49

258.955604

11900

5948

49

260.564901

12000

5991

49

259.748383

12100

6024

49

260.493650

12200

6106

50

261.815553

12300

6216

50

265.451078

12400

6163

49

257.295625

12500

6281

50

262.830611

12600

6297

49

262.141706

12700

6381

50

261.846046

12800

6424

50

259.708152

12900

6578

50

268.480856

13000

6551

50

263.443551

13100

6588

50

263.463048

13200

6689

50

265.711631

13300

6645

49

261.106665

13400

6745

50

263.648678

13500

6792

50

263.543127

13600

6802

50

260.712191

13700

6765

49

255.633945

13800

6998

50

266.812063

13900

7167

51

272.812553

14000

7093

50

265.929308

14100

7075

50

261.127972

14200

7129

50

262.528561

14300

7142

49

260.321366

14400

7215

50

261.587816

14500

7430

51

267.716134

14600

7387

50

264.269113

14700

7362

50

261.411621

14800

7427

50

261.974600

14900

7561

50

264.857082

15000

7531

50

262.037435

15100

7547

49

261.596967

15200

7639

50

262.365295

15300

7623

49

259.249140

15400

7635

49

258.054862

15500

7770

50

261.978105

15600

7837

50

262.285544

15700

7856

50

261.480940

15800

8028

50

267.714380

15900

8057

50

264.868945

16000

8011

50

262.140227

16100

7978

49

258.713922

16200

8127

50

262.974868

16300

8179

50

262.518843

16400

8255

50

261.635051

16500

8347

50

266.087302

16600

8303

50

261.085562

16700

8359

50

260.702974

16800

8468

50

264.268297

16900

8568

50

266.403811

17000

8538

50

262.307215

17100

8639

50

264.707967

17200

8667

50

263.788321

17300

8642

49

259.942429

17400

8756

50

262.219532

17500

8794

50

263.432635

17600

8818

50

262.572239

17700

8907

50

263.566450

17800

8956

50

262.968631

17900

8983

50

261.028487

18000

9117

50

265.567592

18100

8974

49

257.308207

18200

9102

50

260.680475

18300

9189

50

261.587907

18400

9242

50

261.746129

18500

9222

49

260.930218

18600

9365

50

263.043549

18700

9387

50

263.283626

18800

9405

50

260.995356

18900

9380

49

259.834973

19000

9499

49

260.919120

19100

9578

50

262.661737

19200

9565

49

261.368611

19300

9678

50

262.145159

19400

9808

50

265.556257

19500

9779

50

263.391862

19600

9731

49

258.615226

19700

9834

49

260.884316

19800

9927

50

262.482791

19900

10015

50

262.526730

20000

10112

50

264.416068

20100

10070

50

262.623947

20200

9998

49

257.999921

20300

10214

50

263.752204

20400

10358

50

267.381740

20500

10292

50

263.402469

20600

10366

50

264.160012

20700

10415

50

262.526659

20800

10415

50

261.883217

20900

10486

50

263.491194

21000

10500

50

262.571365


 

 

 

Рисунок 1

 

Таблица 2

Общее число случайных  точек

N

Число точек попавших в область N - n

Примерный процент попадания

Значение интеграла

I * 1000

100

42

42

603.523375

200

76

38

553.325810

300

90

30

460.666290

400

126

31

465.694494

500

175

35

509.080655

600

201

33

487.345917

700

239

34

509.999337

800

277

34

525.124085

900

303

33

498.060089

1000

349

34

525.965742

1100

364

33

488.784503

1200

393

32

474.351020

1300

445

34

510.530639

1400

493

35

518.737700

1500

500

33

504.463162

1600

535

33

497.840499

1700

555

32

487.281722

1800

616

34

518.072399

1900

623

32

495.741947

2000

707

35

521.288497

2100

698

33

495.765432

2200

776

35

522.247208

2300

785

34

516.368656

2400

780

32

494.327115

2500

816

32

492.410105

2600

901

34

517.433199

2700

897

33

500.160242

2800

956

34

517.275232

2900

985

33

510.649606

3000

1010

33

508.721204

3100

1036

33

500.272282

3200

1103

34

516.908925

3300

1110

33

510.866121

3400

1117

32

488.279821

3500

1170

33

500.375841

3600

1185

32

491.300839

3700

1247

33

510.654551

3800

1310

34

516.394185

3900

1273

32

478.940782

4000

1292

32

482.556169

4100

1384

33

500.481352

4200

1404

33

500.428072

4300

1432

33

496.577995

4400

1455

33

495.159354

4500

1452

32

484.872179

4600

1555

33

504.878599

4700

1551

33

496.519836

4800

1581

32

494.015579

4900

1687

34

518.172674

5000

1704

34

512.281827

5100

1693

33

499.655429

5200

1742

33

498.287666

5300

1755

33

501.086583

5400

1838

34

513.208098

5500

1828

33

502.293362

5600

1882

33

507.049893

5700

1925

33

502.484155

5800

1891

32

489.705543

5900

2010

34

507.427962

6000

2050

34

514.008531

6100

2090

34

510.632559

6200

2085

33

500.873970

6300

2100

33

498.646552

6400

2128

33

497.912524

6500

2244

34

515.678072

6600

2190

33

495.650406

6700

2300

34

516.641896

6800

2282

33

503.884393

6900

2345

33

507.712833

7000

2387

34

511.316188

7100

2385

33

501.861925

7200

2436

33

505.705700

7300

2518

34

517.043124

7400

2549

34

519.358890

7500

2500

33

499.669325

7600

2592

34

516.985378

7700

2546

33

497.971724

7800

2648

33

504.218035

7900

2614

33

495.446982

8000

2774

34

517.985172

8100

2739

33

505.062103

8200

2815

34

512.668336

8300

2863

34

514.346583

8400

2890

34

513.518697

8500

2843

33

502.449927

8600

2917

33

508.591123

8700

2953

33

506.981785

8800

2968

33

503.242279

8900

2995

33

503.617776

9000

3025

33

502.903266

9100

3095

34

509.096141

9200

3178

34

520.643776

9300

3202

34

516.723706

9400

3213

34

513.710717

9500

3276

34

517.425144

9600

3230

33

500.977171

9700

3241

33

499.799863

9800

3337

34

510.424419

9900

3379

34

510.895131

10000

3391

33

511.594047

10100

3394

33

503.237290

10200

3478

34

508.603486

10300

3496

33

511.787024

10400

3477

33

500.100290

10500

3533

33

506.448191

10600

3582

33

508.030650

10700

3594

33

501.995378

10800

3633

33

504.155534

10900

3667

33

503.269111

11000

3667

33

499.248062

11100

3817

34

515.426866

11200

3748

33

501.337050

11300

3848

34

512.354603

11400

3839

33

502.922396

11500

3959

34

517.051775

11600

3926

33

505.421262

11700

3990

34

511.635224

11800

4037

34

514.814916

11900

4043

33

508.073989

12000

4081

34

510.560586

12100

4142

34

512.531919

12200

4080

33

497.518325

12300

4118

33

499.997890

12400

4245

34

514.485095

12500

4176

33

501.098740

12600

4290

34

508.859970

12700

4275

33

506.522498

12800

4319

33

508.945698

12900

4268

33

496.331057

13000

4352

33

499.989062

13100

4417

33

505.318660

13200

4407

33

500.328738

13300

4541

34

511.897040

13400

4474

33

499.461651

13500

4556

33

507.907271

13600

4535

33

499.039138

13700

4686

34

510.722272

13800

4615

33

502.405983

13900

4517

32

485.956586

14000

4656

33

496.923851

14100

4752

33

508.112944

14200

4816

33

507.379273

14300

4877

34

511.139339

14400

4877

33

505.715190

14500

4723

32

490.609463

14600

4882

33

501.200802

14700

4988

33

508.254812

14800

4968

33

501.639432

14900

4919

33

497.527744

15000

5057

33

505.200339

15100

5089

33

501.112244

15200

5081

33

497.742441

15300

5163

33

506.767196

15400

5251

34

511.239471

15500

5192

33

504.047823

15600

5210

33

500.955980

15700

5303

33

505.340537

15800

5210

32

494.005980

15900

5251

33

496.491940

16000

5388

33

504.352167

16100

5572

34

520.597488

16200

5407

33

501.699911

16300

5457

33

502.717728

16400

5458

33

500.266471

16500

5505

33

497.836795

16600

5639

33

507.313808

16700

5577

33

499.473276

16800

5605

33

498.035818

16900

5565

32

494.787170

17000

5696

33

500.533045

17100

5646

33

491.957458

17200

5785

33

504.982623

17300

5850

33

508.286682

17400

5813

33

498.678510

17500

5873

33

502.061466

17600

5857

33

497.635486

17700

5944

33

501.630459

17800

5908

33

498.798560

17900

5995

33

499.975697

18000

5937

32

494.816815

18100

6173

34

514.152148

18200

6113

33

505.225021

18300

6084

33

499.866753

18400

6163

33

501.970714

18500

6268

33

508.319072

18600

6166

33

494.959202

18700

6252

33

502.095489

18800

6350

33

505.833658

18900

6409

33

506.015794

19000

6355

33

502.572657

19100

6415

33

503.621031

19200

6493

33

506.654074

19300

6451

33

501.284961

19400

6420

33

498.152746

19500

6522

33

500.652058

19600

6651

33

509.152528

19700

6619

33

502.253453

19800

6623

33

500.815247

19900

6638

33

502.727838

20000

6579

32

492.899452

20100

6759

33

503.620342

20200

6897

34

511.612314

20300

6710

33

492.516385

20400

6687

32

492.922761

20500

6809

33

499.577801

20600

6829

33

494.886385

20700

6878

33

500.410589

20800

6981

33

501.577113

20900

6968

33

498.527787

21000

7071

33

504.354091


 

 

 

Рисунок 2

 

Таблица 3

Общее число случайных  точек

N

Число точек попавших в область N - n

Примерный процент попадания

Значение интеграла

I * 10000

100

41

41

512.500000

200

93

46

581.250000

300

156

52

650.000000

400

207

51

646.875000

500

244

48

610.000000

600

292

48

608.333333

700

344

49

614.285714

800

402

50

628.125000

900

458

50

636.111111

1000

491

49

613.750000

1100

566

51

643.181818

1200

601

50

626.041667

1300

653

50

627.884615

1400

675

48

602.678571

1500

754

50

628.333333

1600

787

49

614.843750

1700

866

50

636.764706

1800

902

50

626.388889

1900

977

51

642.763158

2000

976

48

610.000000

2100

1055

50

627.976190

2200

1075

48

610.795455

2300

1145

49

622.282609

2400

1230

51

640.625000

2500

1271

50

635.500000

2600

1277

49

613.942308

2700

1360

50

629.629630

2800

1398

49

624.107143

2900

1434

49

618.103448

3000

1515

50

631.250000

3100

1567

50

631.854839

3200

1570

49

613.281250

3300

1655

50

626.893939

3400

1725

50

634.191176

3500

1760

50

628.571429

3600

1832

50

636.111111

3700

1867

50

630.743243

3800

1865

49

613.486842

3900

1987

50

636.858974

4000

2066

51

645.625000

4100

2070

50

631.097561

4200

2134

50

635.119048

4300

2183

50

634.593023

4400

2238

50

635.795455

4500

2310

51

641.666667

4600

2287

49

621.467391

4700

2380

50

632.978723

4800

2423

50

630.989583

4900

2442

49

622.959184

5000

2468

49

617.000000

5100

2595

50

636.029412

5200

2595

49

623.798077

5300

2672

50

630.188679

5400

2670

49

618.055556

5500

2780

50

631.818182

5600

2805

50

626.116071

5700

2837

49

622.149123

5800

2961

51

638.146552

5900

2928

49

620.338983

6000

2970

49

618.750000

6100

3038

49

622.540984

6200

3101

50

625.201613

6300

3190

50

632.936508

6400

3227

50

630.273438

6500

3217

49

618.653846

6600

3336

50

631.818182

6700

3324

49

620.149254

6800

3423

50

629.227941

6900

3444

49

623.913043

7000

3498

49

624.642857

7100

3547

49

624.471831

7200

3587

49

622.743056

7300

3582

49

613.356164

7400

3676

49

620.945946

7500

3760

50

626.666667

7600

3797

49

624.506579

7700

3912

50

635.064935

7800

3882

49

622.115385

7900

4017

50

635.601266

8000

3967

49

619.843750

8100

4056

50

625.925926

8200

4075

49

621.189024

8300

4061

48

611.596386

8400

4134

49

615.178571

8500

4298

50

632.058824

8600

4278

49

621.802326

8700

4324

49

621.264368

8800

4419

50

627.698864

8900

4479

50

629.073034

9000

4536

50

630.000000

9100

4566

50

627.197802

9200

4537

49

616.440217

9300

4626

49

621.774194

9400

4704

50

625.531915

9500

4715

49

620.394737

9600

4828

50

628.645833

9700

4912

50

632.989691

9800

4899

49

624.872449

9900

4935

49

623.106061

10000

5046

50

630.750000

10100

5098

50

630.940594

10200

5063

49

620.465686

10300

5154

50

625.485437

10400

5209

50

626.081731

10500

5264

50

626.666667

10600

5306

50

625.707547

10700

5381

50

628.621495

10800

5423

50

627.662037

10900

5452

50

625.229358

11000

5573

50

633.295455

11100

5519

49

621.509009

11200

5623

50

627.566964

11300

5639

49

623.783186

11400

5734

50

628.728070

11500

5745

49

624.456522

11600

5827

50

627.909483

11700

5837

49

623.611111

11800

5870

49

621.822034

11900

5948

49

624.789916

12000

5991

49

624.062500

12100

6024

49

622.314050

12200

6106

50

625.614754

12300

6216

50

631.707317

12400

6163

49

621.270161

12500

6281

50

628.100000

12600

6297

49

624.702381

12700

6381

50

628.051181

12800

6424

50

627.343750

12900

6578

50

637.403101

13000

6551

50

629.903846

13100

6588

50

628.625954

13200

6689

50

633.428030

13300

6645

49

624.530075

13400

6745

50

629.197761

13500

6792

50

628.888889

13600

6802

50

625.183824

13700

6765

49

617.244526

13800

6998

50

633.876812

13900

7167

51

644.514388

14000

7093

50

633.303571

14100

7075

50

627.216312

14200

7129

50

627.552817

14300

7142

49

624.300699

14400

7215

50

626.302083

14500

7430

51

640.517241

14600

7387

50

632.448630

14700

7362

50

626.020408

14800

7427

50

627.280405

14900

7561

50

634.312081

15000

7531

50

627.583333

15100

7547

49

624.751656

15200

7639

50

628.207237

15300

7623

49

622.794118

15400

7635

49

619.724026

15500

7770

50

626.612903

15600

7837

50

627.964744

15700

7856

50

625.477707

15800

8028

50

635.126582

15900

8057

50

633.411950

16000

8011

50

625.859375

16100

7978

49

619.409938

16200

8127

50

627.083333

16300

8179

50

627.223926

16400

8255

50

629.192073

16500

8347

50

632.348485

16600

8303

50

625.225904

16700

8359

50

625.673653

16800

8468

50

630.059524

16900

8568

50

633.727811

17000

8538

50

627.794118

17100

8639

50

631.505848

17200

8667

50

629.869186

17300

8642

49

624.421965

17400

8756

50

629.022989

17500

8794

50

628.142857

17600

8818

50

626.278409

17700

8907

50

629.025424

17800

8956

50

628.932584

17900

8983

50

627.304469

18000

9117

50

633.125000

18100

8974

49

619.751381

18200

9102

50

625.137363

18300

9189

50

627.663934

18400

9242

50

627.853261

18500

9222

49

623.108108

18600

9365

50

629.368280

18700

9387

50

627.473262

18800

9405

50

625.332447

18900

9380

49

620.370370

19000

9499

49

624.934211

19100

9578

50

626.832461

19200

9565

49

622.721354

19300

9678

50

626.813472

19400

9808

50

631.958763

19500

9779

50

626.858974

19600

9731

49

620.599490

19700

9834

49

623.984772

19800

9927

50

626.704545

19900

10015

50

629.082915

20000

10112

50

632.000000

20100

10070

50

626.243781

20200

9998

49

618.688119

20300

10214

50

628.940887

20400

10358

50

634.681373

20500

10292

50

627.560976

20600

10366

50

629.004854

20700

10415

50

628.925121

20800

10415

50

625.901442

20900

10486

50

627.153110

21000

10500

50

625.000000


 

 

 

Рисунок 3

 

4 Сравнение результатов

 

5 Список литературы

 

Дайлис  С.Ю.  Подготовка научной публикации на персональной ЭВМ: Методические указания к лабораторным работам по дисциплине “Информатика”. Екатеринбург. УГТУ. 1997г.

 

Приложение А. Текст  программы, реализующий исследование.

 

#include <math.h>

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <cyr_io.h>

#include <windows.h>

 

void main(void)

{

  int  i,j,m,n;

  int  N;

  double I;

  double Number;

  double Arr1[3][21000];

  double Arr2[3][21000];

  FILE *fOut;

  HANDLE hStdOut;

 

  FreeConsole();

  AllocConsole();

  hStdOut=GetStdHandle(STD_OUTPUT_HANDLE);

  SetConsoleTitle("Курсовая. Задание  9");

  SetConsoleTextAttribute(hStdOut,

FOREGROUND_GREEN|FOREGROUND_INTENSITY);

  rprintf("Нажмите клавишу для продолжения\n");

  getch();

 

  fOut=fopen("Data1.txt","wt");

  if(fOut==NULL)

  {

    SetConsoleTextAttribute(hStdOut,

FOREGROUND_RED|FOREGROUND_INTENSITY);

    rprintf("Не  удалось создать файл результатов. Error 0x01");

    getch();

    exit(1);

  }

 

  m = 2; // Все интегралы  второго порядка.

 

  SetConsoleTextAttribute(hStdOut,

FOREGROUND_GREEN|FOREGROUND_INTENSITY);

  rprintf("Процесс вычисления  запущен.\n");

 

  //  Вычисляем интеграл  №1.

 

  SetConsoleTitle("Курсовая. Задание 9 - Процесс 1");

 

  fprintf(fOut,"|  N  | N-n | %% |     I    |\n");

  fprintf(fOut,"----------------------------\n");

 

  for(i=0;i<3;++i)

  {

    for(j=0;j<21000;++j)

    {

      Arr1[i][j]=0.0;

      Arr2[i][j]=0.0;

    }

  }

 

  for(N=100;N<=21000;N+=100)

  {

    for(j=0;j<m;++j)

    {

      srand(j+N);

      for(i=0;i<N;++i)

     {

       Number = (1.0/RAND_MAX)*rand();

       Arr1[j][i] = Number;

     }

  }

 

  n = 0;

 

  for(i=0;i<N;++i)

  {

    if((Arr1[1][i]<=Arr1[0][i]))

    {

      Arr2[0][n]=Arr1[0][i];

      Arr2[1][n]=Arr1[1][i];

      ++n;

     }

   }

 

   I = 0.0;

 

  for(i=0;i<n;++i)

  {

    I += sqrt((Arr2[0][i]*Arr2[0][i])-(Arr2[1][i]*Arr2[1][i]));

    }

 

   I /= (N);

  fprintf(fOut,"|%5d|%5d|%3d|%3.6f|\n",N,n,(n/(N/100)),I*1000);

 

  SetConsoleTextAttribute(hStdOut,

FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY);

  printf(".");

  }

  fprintf(fOut,"----------------------------");

 

  fclose(fOut);

 

  fOut=fopen("Data2.txt","wt");

  if(fOut==NULL)

  {

    SetConsoleTextAttribute(hStdOut,

FOREGROUND_RED|FOREGROUND_INTENSITY);

    rprintf("Не удалось создать файл результатов. Error 0x02");

    getch();

    exit(1);

  }

 

  //  Вычисляем интеграл №2.

 

  SetConsoleTitle("Курсовая. Задание 9 - Процесс 2");

 

  fprintf(fOut,"|  N  | N-n | %% |     I    |\n");

  fprintf(fOut,"----------------------------\n");

 

  for(i=0;i<3;++i)

  {

    for(j=0;j<21000;++j)

    {

      Arr1[i][j]=0.0;

      Arr2[i][j]=0.0;

    }

  }

 

  for(N=100;N<=21000;N+=100)

  {

    for(j=0;j<m;++j)

    {

      srand(j+N);

      for(i=0;i<N;++i)

     {

       Number = (1.0/RAND_MAX)*rand();

       Arr1[j][i] = Number;

     }

  }

 

  n = 0;

 

  for(i=0;i<N;++i)

  {

     if(Arr1[1][i]>=sqrt(Arr1[0][i]))

    {

      Arr2[0][n]=Arr1[0][i];

      Arr2[1][n]=Arr1[1][i];

      ++n;

    }

  }

 

  I = 0.0;

 

  for(i=0;i<n;++i)

  {

    Number=Arr2[0][i]/Arr2[1][i];

    I += exp(Arr2[0][i]/Arr2[1][i]);

  }

 

  I /= N;

  fprintf(fOut,"|%5d|%5d|%3d|%3.6f|\n",N,n,(n/(N/100)),I*1000);

 

  SetConsoleTextAttribute(hStdOut,

FOREGROUND_BLUE|FOREGROUND_INTENSITY);

  printf(".");

  }

  fprintf(fOut,"----------------------------");

 

  fclose(fOut);

 

  fOut=fopen("Data3.txt","wt");

  if(fOut==NULL)

  {

    SetConsoleTextAttribute(hStdOut,

FOREGROUND_RED|FOREGROUND_INTENSITY);

    rprintf("Не удалось создать файл результатов. Error 0x03");

    getch();

    exit(1);

  }

  //  Вычисляем интеграл №3.

 

  SetConsoleTitle("Курсовая. Задание 9 - Процесс 3");

 

  fprintf(fOut,"|  N  | N-n | %% |     I    |\n");

  fprintf(fOut,"----------------------------\n");

 

  for(i=0;i<3;++i)

  {

    for(j=0;j<21000;++j)

    {

      Arr1[i][j]=0.0;

      Arr2[i][j]=0.0;

    }

  }

 

  for(N=100;N<=21000;N+=100)

  {

    for(j=0;j<m;++j)

    {

       srand(j+N);

       for(i=0;i<N;++i)

       {

         Number = (1.0/RAND_MAX)*rand();

         Arr1[j][i] = Number;

       }

    }

 

  for(j=0;j<N;++j)

  Arr1[2][j]=(1.0-Arr1[0][j]-Arr1[1][j]);

 

  n = 0;

 

  for(i=0;i<N;++i)

  {

    if((Arr1[1][i]<=Arr1[0][i]))

   {

     if((Arr1[0][i]+Arr1[1][i]+Arr1[2][i])<=1)

   {

      Arr2[0][n]=Arr1[0][i];

      Arr2[1][n]=Arr1[1][i];

      Arr2[2][n]=Arr1[2][i];

      ++n;

    }

   }

}

  I = 0.0;

 

  for(i=0;i<n;++i)

  {

    I += 1/((Arr1[0][i]+Arr1[1][i]+Arr1[2][i]+1)

       *(Arr1[0][i]+Arr1[1][i]+Arr1[2][i]+1)

    *(Arr1[0][i]+Arr1[1][i]+Arr1[2][i]+1));

  }

 

  I /= (N);

  fprintf(fOut,"|%5d|%5d|%3d|%3.6f|\n",N,n,(n/(N/100)),I*10000);

 

  SetConsoleTextAttribute(hStdOut,

FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY);

  printf(".");

  }

  fprintf(fOut,"----------------------------");

  fclose(fOut);

 

  SetConsoleTitle("Курсовая. Задание 9 - Конец работы");

  SetConsoleTextAttribute(hStdOut,

FOREGROUND_GREEN|FOREGROUND_INTENSITY);

  rprintf("\nПроцесс  вычисления закончен. Смотрите результаты  в выходных файлах.\n");

  rprintf("Нажмите клавишу для завершения.");

  getch();

}


Информация о работе Исследование метода вычисления многомерного интеграла методом статистических испытаний (метод Монте-Карло)