99712

Исследование точности численного интегрирования

Курсовая

Информатика, кибернетика и программирование

Контроль внутренней сходимости заключается в циклическом вычислении приближенных значений интеграла для удваимого по сравнению со значением на предыдущем прохождении цикла числа n. Отношения абсолютной величины разности этих значений к абсолютной величине предыдущего приближенного значения принимается в качестве критерия достижения точности интеграла.

Русский

2016-10-08

267.06 KB

0 чел.

Федеральное агентство по образованию

ГОУ ВПО «Уральский государственный технический университет - УПИ»

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

Исследование точности численного интегрирования

Отчет по курсовой работе дисциплины «Информатика»

Студент          Лаптев С.

гр. Р-200802         ________________  ______________           

дата сдачи работы  Подпись

Преподаватель _________________ _______________  Плохих О.В.

 дата приема работы  Подпись

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

2011

Оглавление

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

2. Подробное описание задачи и способы ее решения 3

Метод трапеций 3

Метод Симпсона 3

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

3.1. Сравнение результатов 19

4. Выводы 20

5. Приложение 21

5.1. Описание применения 21

5.1.1. Назначение программы 21

5.1.2. Условия применения 21

5.1.3. Описание значения 21

5.2. Программа и методика испытаний 22

5.2.1. Объект испытаний 22

5.2.2. Цель испытаний 22

5.2.3. Требования к программе 22

5.2.4. Требования к программной документации 22

5.2.5. Средства и порядок испытаний 22

5.2.6. Метод испытаний 22

5.3. Руководство пользователя 25

5.3.1. Назначение программы 25

5.3.2. Условия и характеристики программы 25

5.3.3. Выполнение программы 25

5.3.4. Сообщения программы 25

5.3.5. Входные и выходные данные 25

5.3.6. Сборка программы 25

5.4. Описание программы 26

5.4.1. Общие сведения 26

5.4.2. Функциональное назначение 26

5.4.3. Описание логической структуры 26

5.4.4. Используемые технические средства 27

5.4.5. Вызов и загрузка 27

5.4.6. Входные и выходные данные 27

5.5. Текст программы 28

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

Провести исследование внутренней сходимости численного интегрирования методом Симпсона и трапеций различных функций, задаваемых с помощью языка С++.

  1.  Подробное описание задачи и способы ее решения

Необходимо провести исследования так называемой внутренней сходимости численного интегрирования методами трапеций и Симпсона различных функций, задаваемых с помощью функций языка С++. Предполагается, что отрезок интегрирования [a,b] разбит на n равных частей системой точек (сеткой).

Контроль внутренней сходимости заключается в циклическом вычислении приближенных значений интеграла для удваимого по сравнению со значением на предыдущем прохождении цикла числа n. Отношения абсолютной величины разности этих значений к абсолютной величине предыдущего приближенного значения принимается в качестве критерия достижения точности интеграла.

Построить зависимости количеств итераций от различных величин критерия точности.

Построить обратные зависимости критерия точности от количества итераций.

Повторить все вышеуказанные исследования для случая, когда при вычислении критерия точности разность значений интеграла относится не к предыдущему значению, а к точному значению аналитически вычисленного интеграла.

Исследовать влияние увеличения верхнего предела интегрирования на точность (при прочих неизменных условиях).

Метод трапеций

Метод Симпсона


  1.  Результаты исследований

Таблицы и графики зависимостей количества итераций от различных величин критерия точности для интегралов, вычисленных методом трапеций:

Критерийточности

Количествоитераций

0,0001642

1

0,0000554

2

0,0000199

3

0,0000097

4

0,000003

5

0,0000024

6

0,000021

7

0,0001352

8

0,0004427

9

0,0017771

10

0,0070933

11

0,0733414

12

0,1639168

13

0

14

0,1591954

15

Критерийточности

Количествоитераций

0,0000435

1

0,0000246

2

0,0000098

3

0,0000027

4

0,0000054

5

0,0000034

6

0,0000111

7

0,0000371

8

0,0003384

9

0,0005241

10

0,0024769

11

0,0193195

12

0,0460816

13

0,0891634

14

0,1816833

15

Критерийточности

Количествоитераций

0,0000009

1

0,0000005

2

0,000001

3

0,0000016

4

0,0000005

5

0,000001

6

0,0000223

7

0,000056

8

0,0003561

9

0,0002782

10

0,0003474

11

0,0066709

12

0,0042367

13

0,0053266

14

0,0052932

15

Критерийточности

Количество итераций

0,7210944

1

5,7138805

2

0,5115891

3

0,1587429

4

0,2640994

5

0,273518

6

0,7462801

7

0,1349342

8

0,1746383

9

0,322107

10

61,4329529

11

1,0215764

12

0,0930657

13

0,0566663

14

0,0027258

15


Критерийточности

Количествоитераций

0,0000017

1

0,0000075

2

0,000004

3

0,0000028

4

0,0000031

5

0,0000033

6

0,0000019

7

0,0000064

8

0,0000001

9

0,0000386

10

0,0000803

11

0,0007838

12

0,0016693

13

0,0005451

14

0,0119303

15

Критерийточности

Количествоитераций

0,0000001

1

0,0000118

2

0,0000105

3

0,0000047

4

0,000003

5

0,0000023

6

0,0000019

7

0,0000048

8

0,0000013

9

0,0000021

10

0,0000579

11

0,0001056

12

0,0012424

13

0,0027928

14

0,0026273

15


Таблицы и графики зависимостей количества итераций от различных значений критерия точности для интегралов, вычисленных методом Симпсона:

Критерийточности

Количествоитераций

0,0000366

1

0,0000148

2

0,0000097

3

0,0000029

4

0,000005

5

0,0000158

6

0,0000078

7

0,0001184

8

0,000019

9

0,000466

10

0,0069997

11

0,0210596

12

0,0596227

13

0,0416028

14

0,1333978

15

Критерийточности

Количествоитераций

0,0000529

1

0,0000309

2

0,0000055

3

0,0000206

4

0,0000275

5

0,0000172

6

0,0000026

7

0,0000373

8

0,0001679

9

0,0009911

10

0,001429

11

0,0012871

12

0,0251969

13

0,0904129

14

0,1624286

15


Критерийточности

Количествоитераций

0,0002614

1

0,0001696

2

0,0000683

3

0,0000173

4

0,000005

5

0,0000016

6

0,0000146

7

0,0000081

8

0,0000532

9

0,0001906

10

0,0000148

11

0,0016623

12

0,0047355

13

0,0001972

14

0,0441604

15

Критерийточности

Количество итераций

1,3475398

1

299,5162048

2

0,6511438

3

0,769284

4

0,831215

5

1,4512321

6

0,2898597

7

0,4690856

8

0,1021232

9

0,0488429

10

0,2428324

11

0,3262224

12

0,0297503

13

0,0498698

14

0,0221329

15


Критерийточности

Количествоитераций

0,001854

1

0,0011909

2

0,0008299

3

0,0000531

4

0,0001553

5

0,0000502

6

0,0000104

7

0,0000078

8

0,0000058

9

0,000028

10

0,0000372

11

0,0001925

12

0,0004425

13

0,0016719

14

0,0065919

15

Критерийточности

Количествоитераций

0,0023198

1

0,0015105

2

0,0010463

3

0,0005129

4

0,0001719

5

0,0000787

6

0,0000228

7

0,0000053

8

0,0000017

9

0,0000023

10

0,0000167

11

0,000088

12

0,0000317

13

0,0013675

14

0,0006897

15


Обратные зависимости критерия точности от количества итераций:




Сравнительная таблица значений критерия,полученных по отношению к предыдущему значению и по отношению к аналитическому значению для интеграла, вычисленного методом трапеций:

По отношению к предыдущему значению

По отношению к аналитическому значению

Критерийточности

Количествоитераций

Критерийточности

Количествоитераций

0,0001642

1

0,0000916

1

0,0000554

2

0,0000361

2

0,0000199

3

0,0000162

3

0,0000097

4

0,0000065

4

0,000003

5

0,0000035

5

0,0000024

6

0,0000059

6

0,000021

7

0,000015

7

0,0001352

8

0,0001503

8

0,0004427

9

0,0005929

9

0,0017771

10

0,0023689

10

0,0070933

11

0,0094454

11

0,0733414

12

0,0632033

12

0,1639168

13

0,1110735

13

0

14

0,1110735

14

0,1591954

15

0,2525865

15

По отношению к предыдущему значению

По отношению к аналитическому значению

Критерийточности

Количествоитераций

Критерийточности

Количествоитераций

0,0000435

1

0,0000444

1

0,0000246

2

0,0000198

2

0,0000098

3

0,00001

3

0,0000027

4

0,0000073

4

0,0000054

5

0,0000019

5

0,0000034

6

0,0000053

6

0,0000111

7

0,0000058

7

0,0000371

8

0,0000428

8

0,0003384

9

0,0002955

9

0,0005241

10

0,0002287

10

0,0024769

11

0,002705

11

0,0193195

12

0,0165622

12

0,0460816

13

0,0302826

13

0,0891634

14

0,1167459

14

0,1816833

15

0,2772185

15


По отношению к предыдущему значению

По отношению к аналитическому значению

Критерийточности

Количествоитераций

Критерийточности

Количествоитераций

0,0000009

1

0,0000002

1

0,0000005

2

0,0000007

2

0,000001

3

0,0000002

3

0,0000016

4

0,0000018

4

0,0000005

5

0,0000014

5

0,000001

6

0,0000004

6

0,0000223

7

0,0000219

7

0,000056

8

0,000078

8

0,0003561

9

0,0002781

9

0,0002782

10

0

10

0,0003474

11

0,0003474

11

0,0066709

12

0,0063258

12

0,0042367

13

0,0105358

13

0,0053266

14

0,0052653

14

0,0052932

15

0

15

По отношению к предыдущему значению

По отношению к аналитическому значению

Критерийточности

Количествоитераций

Критерийточности

Количествоитераций

0,7210944

1

Не определен

2

5,7138805

2

Не определен

3

0,5115891

3

Не определен

4

0,1587429

4

Не определен

5

0,2640994

5

Не определен

6

0,273518

6

Не определен

7

0,7462801

7

Не определен

8

0,1349342

8

Не определен

9

0,1746383

9

Не определен

10

0,322107

10

Не определен

11

61,4329529

11

Не определен

12

1,0215764

12

Не определен

13

0,0930657

13

Не определен

14

0,0566663

14

Не определен

15

0,0027258

15

Не определен

16


По отношению к предыдущему значению

По отношению к аналитическому значению

Критерийточности

Количествоитераций

Критерийточности

Количествоитераций

0,0000017

1

0,0000106

1

0,0000075

2

0,0000181

2

0,000004

3

0,0000221

3

0,0000028

4

0,0000249

4

0,0000031

5

0,0000281

5

0,0000033

6

0,0000314

6

0,0000019

7

0,0000333

7

0,0000064

8

0,0000269

8

0,0000001

9

0,000027

9

0,0000386

10

0,0000116

10

0,0000803

11

0,0000919

11

0,0007838

12

0,000692

12

0,0016693

13

0,0009761

13

0,0005451

14

0,0015218

14

0,0119303

15

0,0104267

15

По отношению к предыдущему значению

По отношению к аналитическому значению

Критерийточности

Количествоитераций

Критерийточности

Количествоитераций

0,0000001

1

0,0000172

1

0,0000118

2

0,000029

2

0,0000105

3

0,0000395

3

0,0000047

4

0,0000442

4

0,000003

5

0,0000471

5

0,0000023

6

0,0000494

6

0,0000019

7

0,0000475

7

0,0000048

8

0,0000522

8

0,0000013

9

0,000051

9

0,0000021

10

0,0000488

10

0,0000579

11

0,0000091

11

0,0001056

12

0,0001147

12

0,0012424

13

0,0011278

13

0,0027928

14

0,0016618

14

0,0026273

15

0,0009698

15


Сравнительная таблица значений критерия,полученных по отношению к предыдущему значению и по отношению к аналитическому значению для интеграла, вычисленного методом Симпсона:

По отношению к предыдущему значению

По отношению к аналитическому значению

Критерийточности

Количествоитераций

Критерийточности

Количествоитераций

0,0000366

1

0,0000367

1

0,0000148

2

0,0000515

2

0,0000097

3

0,0000612

3

0,0000029

4

0,0000584

4

0,000005

5

0,0000534

5

0,0000158

6

0,0000376

6

0,0000078

7

0,0000298

7

0,0001184

8

0,0000886

8

0,000019

9

0,0000696

9

0,000466

10

0,0005357

10

0,0069997

11

0,0075391

11

0,0210596

12

0,0136792

12

0,0596227

13

0,0724863

13

0,0416028

14

0,1110735

14

0,1333978

15

0,2296544

15

По отношению к предыдущему значению

По отношению к аналитическому значению

Критерийточности

Количествоитераций

Критерийточности

Количествоитераций

0,0000529

1

0,0000535

1

0,0000309

2

0,0000844

2

0,0000055

3

0,0000899

3

0,0000206

4

0,0000693

4

0,0000275

5

0,0000418

5

0,0000172

6

0,0000246

6

0,0000026

7

0,000022

7

0,0000373

8

0,0000593

8

0,0001679

9

0,0002272

9

0,0009911

10

0,0007638

10

0,001429

11

0,0021938

11

0,0012871

12

0,0009039

12

0,0251969

13

0,0243158

13

0,0904129

14

0,1125302

14

0,1624286

15

0,2566807

15


По отношению к предыдущему значению

По отношению к аналитическому значению

Критерийточности

Количествоитераций

Критерийточности

Количествоитераций

0,0002614

1

0,0002623

1

0,0001696

2

0,0000927

2

0,0000683

3

0,0000245

3

0,0000173

4

0,0000072

4

0,000005

5

0,0000022

5

0,0000016

6

0,0000038

6

0,0000146

7

0,0000184

7

0,0000081

8

0,0000103

8

0,0000532

9

0,0000635

9

0,0001906

10

0,0002541

10

0,0000148

11

0,0002393

11

0,0016623

12

0,0019011

12

0,0047355

13

0,0066277

13

0,0001972

14

0,0064318

14

0,0441604

15

0,0503082

15

По отношению к предыдущему значению

По отношению к аналитическому значению

Критерийточности

Количествоитераций

Критерийточности

Количествоитераций

1,3475398

1

Не определен

2

299,5162048

2

Не определен

3

0,6511438

3

Не определен

4

0,769284

4

Не определен

5

0,831215

5

Не определен

6

1,4512321

6

Не определен

7

0,2898597

7

Не определен

8

0,4690856

8

Не определен

9

0,1021232

9

Не определен

10

0,0488429

10

Не определен

11

0,2428324

11

Не определен

12

0,3262224

12

Не определен

13

0,0297503

13

Не определен

14

0,0498698

14

Не определен

15

0,0221329

15

Не определен

16


По отношению к предыдущему значению

По отношению к аналитическому значению

Критерийточности

Количествоитераций

Критерийточности

Количествоитераций

0,001854

1

0,0018223

1

0,0011909

2

0,0006292

2

0,0008299

3

0,0002012

3

0,0000531

4

0,0002543

4

0,0001553

5

0,0000991

5

0,0000502

6

0,0000489

6

0,0000104

7

0,0000385

7

0,0000078

8

0,0000307

8

0,0000058

9

0,0000365

9

0,000028

10

0,0000645

10

0,0000372

11

0,0000272

11

0,0001925

12

0,0002197

12

0,0004425

13

0,000662

13

0,0016719

14

0,0010088

14

0,0065919

15

0,0055898

15

По отношению к предыдущему значению

По отношению к аналитическому значению

Критерийточности

Количествоитераций

Критерийточности

Количествоитераций

0,0023198

1

0,0023715

1

0,0015105

2

0,0008646

2

0,0010463

3

0,0001808

3

0,0005129

4

0,0003322

4

0,0001719

5

0,0001603

5

0,0000787

6

0,0000817

6

0,0000228

7

0,0000589

7

0,0000053

8

0,0000536

8

0,0000017

9

0,0000518

9

0,0000023

10

0,0000541

10

0,0000167

11

0,0000708

11

0,000088

12

0,0000172

12

0,0000317

13

0,0000146

13

0,0013675

14

0,001382

14

0,0006897

15

0,0020707

15


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

Таблица сравнительных результатов:

Методтрапеций

n=1000

МетодСимпсона

n =1000

Аналитический

результат

Функция

Пределы

4,5002217

4,4996448

4,4998096

f(x)=1/x

0,1…..9

1,6667408

1,6665776

1,6666667

f(x)=1/x*x

0,5…..3

1,9999987

1,9999982

2

f(x)=sin(x)

0…….π

-0,0000007

-0,0000009

0

f(x)=sin(2*x)

0…….π

0,2857112

0,2862349

0,2857142

f(x)=sin(7*x)

0…....π

0,2222184

0,2216952

0,2222222

f(x)=sin(9*x)

0…....π

 

Таблица влияния увеличения верхнего предела на точность интегрирования на примере функции:

Аналитическое

значение

Практическое

значение

Верхний

предел

Погрешность

4,4998097

4,5002217

9

0,000412

4,6051701

4,6056180

10

-0,0004479

4,7874917

4,7880392

12

-0,0005475

4,9416424

4,9422879

14

-0,0006455

5,0751738

5,0759511

16

-0,0007773

5,1929568

5,1938734

18

-0,0009166

5,2983173

5,2993822

20

-0,0010649

Таб. 2 - Таблица влияния увеличения верхнего предела на точность интегрирования

Из таблицы видно, что увеличение верхнего предела приводит к уменьшению точности интегрирования.


  1.  Выводы

В ходе выполнения данной работы было выявлено, что при увеличении количества разбиений отрезков  интегрирования значения, полученные численными методами, стремятся к аналитически вычисленному значению интеграла.

Критерии точности относительно предыдущего вычисления и относительно аналитически вычисленного примерно равны, это означает, что численные методы являются достаточно точными. Но метод трапеций является более точным методом вычисления значения интеграла, чем метод Симпсона. При его вычислениях были замечены наименьшие неточности вычисления.

Также было выявлено, что при увеличении значения верхнего предела интегрирования любым из предложенных методов, критерий точности интегрирования становится больше. Следовательно, увеличение верхнего предела приводит к уменьшению точности интегрирования.


  1.  Приложение
  2.  Описание применения
  3.  Назначение программы

Программа lap предназначена для исследования точности численного интегрирования методами трапеций и Симпсона для степенных функций и функций вида sin(mx).

Программа применяется для вычисления погрешностей численного интегрирования, нахождения значения интеграла методами трапеций  и Симпсона и вычисления критерия точности. Результаты вычисления записываются в файл data.xls (при отсутствии данного файла программа запрашивает ввести имя файла с клавиатуры), предназначенный для работы в программном продукте MicrosoftExcel 2007. Построение графиков зависимостей критерия точности от количества итерацийпроизводятся также с помощью Excel 2007.

  1.  Условия применения

Для выполнения программы достаточно вычислительной установки типа PC с процессором PentiumIII (или быстрее) и 128 Мбайт оперативной памяти, оснащенной любой из следующих операционных систем: MicrosoftWindowsNT и выше.

  1.  Описание значения

Вычисления точности численного интегрирования методов трапеций и Симпсона сводится к сравнению соседних значений интегралов, а также сравнению значений с аналитическим значением интеграла.


  1.  Программа и методика испытаний
  2.  Объект испытаний

Объектом испытаний является исполняемый модуль программы lap. Программа lap предназначена для исследования точности численного интегрирования методами трапеций и Симпсона для степенных функций и функций вида sin(mx).

  1.  Цель испытаний

Целью испытаний является проверка точности работы программы на конкретной вычислительной установке.

  1.  Требования к программе

Во время испытаний следует проверить правильное прохождение контрольного примера при решении задачи двумя различными методами.

  1.  Требования к программной документации

На стадии испытания должны быть предоставлены входные данные, предназначенные для проверки работы программы.

  1.  Средства и порядок испытаний

Испытания следует проводить на той же вычислительной установке, на которой была отлажена и проверена программа lap. Для испытаний нужно иметь:

  1.  Исполняемый модуль программы lap.
  2.  Входные данные, предназначенные для проверки (представлены в пункте 5.2.6).

Необходимо дважды провести запуск программы lap и получить файлы с результатами расчета методом трапеций и методом Симпсона.

  1.  Метод испытаний

Для вызова программы необходимо запустить файл lap.exe.

Необходимо учесть, что точность выполняемых операций ограниченна типом данных double 


Для проверки вычисления интеграла степенной функции входные данные должны быть следующие:

  1.  Начало интегрирования 0.5
  2.  Предел интегрирования 3
  3.  Точность интегрирования1000
  4.  Количество итераций 15
  5.  Функция 1
  6.  Степень 2

В итоге работы программы в текущем каталоге должен появиться файл data.xls следующего содержания:

0,0000435

1

0,0000246

2

0,0000098

3

0,0000027

4

0,0000054

5

0,0000034

6

0,0000111

7

0,0000371

8

0,0003384

9

0,0005241

10

0,0024769

11

0,0193195

12

0,0460816

13

0,0891634

14

0,1816833

15

S= 1,6667408

0,0000529

1

0,0000309

2

0,0000055

3

0,0000206

4

0,0000275

5

0,0000172

6

0,0000026

7

0,0000373

8

0,0001679

9

0,0009911

10

0,001429

11

0,0012871

12

0,0251969

13

0,0904129

14

0,1624286

15

S= 1,6665776

Аналитическое значение: S = 1,6666667

Для проверки вычисления интеграла функции вида sin(mx) входные данные должны быть следующие:

  1.  Начало интегрирования 0.
  2.  Предел интегрирования 3.14
  3.  Точность интегрирования 1000
  4.  Количество итераций 15
  5.  Функция 2
  6.  Коэффициент 7

В итоге работы программы в текущем каталоге должен появиться файл data.xls следующего содержания:

0,0000017

1

0,0000075

2

0,000004

3

0,0000028

4

0,0000031

5

0,0000033

6

0,0000019

7

0,0000064

8

0,0000001

9

0,0000386

10

0,0000803

11

0,0007838

12

0,0016693

13

0,0005451

14

0,0119303

15

S= 0,2857112

0,001854

1

0,0011909

2

0,0008299

3

0,0000531

4

0,0001553

5

0,0000502

6

0,0000104

7

0,0000078

8

0,0000058

9

0,000028

10

0,0000372

11

0,0001925

12

0,0004425

13

0,0016719

14

0,0065919

15

S= 0,2862349

Аналитическое значение: S = 0,2857143

Результаты, полученные аналитическим и численным методами, отличаются друг от друга, но эти отличия лежат в пределах точности методов.

  1.  Руководство пользователя
  2.  Назначение программы

Программа lap предназначена для исследования точности численного интегрирования методами трапеций и Симпсона для степенных функций и функций вида sin(mx).

  1.  Условия и характеристики программы

Для выполнения программы достаточно вычислительной установки типа PC с процессором PentiumIII (или быстрее) и 128 Мбайт оперативной памяти, оснащенной любой из следующих операционных систем: MicrosoftWindowsNT и выше.

  1.  Выполнение программы

Для вызова программы необходимо перейти в каталог программы и запустить файл lap.exe.

  1.  Сообщения программы

В программе задаются данные для исследования. Все входные данные численные.

Также в процессе выполнения программы возможен вывод следующих сообщений на экран:

Ошибка! Невозможно открыть файл!Введите имя файла: - данное сообщение выводится в случае, если файл data.xls отсутствует в каталоге с программой или имя файла изменено, следует ввести новое имя файла.

Ошибка! Неверный ввод! – данное сообщение выводится в случае, если указан не существующий номер функции.

  1.  Входные и выходные данные

Входные данные поступают с клавиатуры. После ввода требуемой величины необходимо нажать Enter. Пример входных данных приведен в пункте 5.2.6.

  1.  Сборка программы

Средаразработки: Microsoft Visual Studio 2005

Язык: C++

Дополнительные библиотеки: стандартная библиотека шаблонов (STL).


  1.  Описание программы
  2.  Общие сведения

Программа lap предназначена для исследования точности численного интегрирования методами трапеций и Симпсона для степенных функций и функций вида sin(mx).

Для выполнения программы достаточно вычислительной установки типа PC с процессором PentiumIII (или быстрее) и 128 Мбайт оперативной памяти, оснащенной любой из следующих операционных систем: MicrosoftWindowsNT и выше.

Программа lap написана на языке C++ и реализована компилятором MicrosoftVisualStudio 2005 для операционных систем MicrosoftWindowsNT и выше.

  1.  Функциональное назначение

Программа lap применятся для вычисления точности численного интегрирования методами трапеций и Симпсона для степенных функций и функций вида sin(mx).

  1.  Описание логической структуры

Для отображения русских символов в консоли используется модуль:

#include "locale.h"

setlocale (LC_ALL, "Russian")

При запуске программа требует ввести исходные данные для вычислений: начало интегрирования (a), предел интегрирования (b), точность интегрирования (d) и количество итерации (N). Происходит присваивание значений переменных, необходимых для вычислений.

Затем создается файл data.xls, для записи исследований. В первом столбце записывается критерий точности, во второй номер итерации. Запись производится со второй итерации.

В следующем пункте программы необходимо выбрать тип функции, которую мы будем интегрировать: 1 – для степенной функции; 2 – для функции вида sin(mx). Выбор функции реализуется с помощью оператора выбора switch(f), где f – номер функции.

Для степенной функции вводится степень n.

Вначале вычисление интеграла производится методом трапеций.

Для вычисления интеграла данным способом задаем сперва цикл с параметром, где j задается от 0 до  заданного N. Интервал интегрирования h вычисляется следующим выражением - h=(a+b)/(int (pow(2.0,j))*d). Функция pow –функция для возведения в степень, где первый параметр – число, а второй – степень, в которую возводится данное число.  Затем вновь используем цикл с параметром, где i задается от 0 до (int (pow(2.0,j))*d). Необходимо учесть, что точность выполняемых операций ограниченна типом данных double. В цикле вычисляем для данной итерации x= a+i*h. Затем в условном операторе проверяем i=0, если да, то коэффициент t=1, иначе t=2. Затем вычисляем значение интеграла по выражению y=t*(h/2)*1/pow(x,n).После сумма, т.е.приближенное значение интеграла при заданных параметрах, вычисляется по формуле s[j]=s[j]+y, т.е. предыдущее значение прибавляется ктекущему. Затем вычисляется критерий точности по формуле coa=abs(s[j]-s[j-1])/s[j-1]).Функция abs возвращает абсолютное значение параметра.Далее происходит запись в файл критерия точности и количества итераций, начиная с j>0.

После этого, вычисляем интеграл методом Симпсона. Единственное различие заключается в том, что перед вычислением интеграла по формулеy=t*(h/3)*1/pow(x,n)происходит проверка на чётность количества разбиений, t=2, если четное разбиение иt=4, если нечетное разбиение. Запись в файл производится аналогично.

Для функции вида sin(mx) мы задаем с клавиатуры коэффициент m. И вычисления по методам трапеций и Симпсона проводятсяпо формулам y=t*(h/2)*sin(m*x)y=t*(h/3)*sin(m*x), соответственно. Все остальные операции происходят так же, как для вычисления интеграла степенной функции.

После вычислений записываемый поток закрывается.

  1.  Используемые технические средства

Программа была отлажена и проверена на вычислительной установке PCc процессором IntelCore 2 DuoT5250 1.8 ГГц, ОЗУ 1 Гб работающей под управлением операционной системы Windows 7 Ultimate.

  1.  Вызов и загрузка

Для вызова программы необходимо перейти в каталог программы и запустить файл lap.exe.

  1.  Входные и выходные данные

Входные данные поступают с клавиатуры. После ввода требуемой величины необходимо нажать Enter. Пример входных данных приведен в пункте 5.2.6.


  1.  Текст программы

// lap.cpp: Исследование точности численного интегрирования.

//

#include "stdafx.h"

#include "stdio.h"

#include "string.h"

#include "math.h"

#include <conio.h>

#include <io.h>

#include <stdlib.h>

#include <iostream>

#include "locale.h"

int _tmain(int argc, _TCHAR* argv[])

{

setlocale (LC_ALL, "Russian"); //для отображения русских букв в консоли

 FILE *fp;

int d,f,i,j,t,N;

float a,b,h,n,m,x,y,s[100],coa;

 printf("Исследование точности численного интегрирования\n\n");

 

printf("Введите начало интегрирования a=");

scanf("%f",&a);

printf("Введите предел интегрирования b=");

scanf("%f",&b);

printf("Введите количество частей n=");

scanf("%d",&d);

printf("Введите количество итераций N=");

scanf("%d",&N);

// Открытие файла

 while((fp=fopen("data.xls","w"))==NULL)

{

 puts("Ошибка!Невозможно открыть файл!\nВведите имя файла:\n");

}

h=(b-a)/d;

printf("\nШаг интегрирования h=%.5f\n",h);

printf("\nВыберите функцию:\n");

printf("1) Степенная функция f(x)=1/x^n\n");

 printf("2) Функциявида f(x)=sin(m*x)\n");

scanf("%d",&f);

if (f<1 || f>2)

 {

 printf("Ошибка!Неверный ввод!\n");

 scanf("%d",&f);

}

switch(f)

 {

 case 1:

  printf("Введите степень n=");

  scanf("%f",&n);

  printf("\nВычисление интеграла методом трапеций:\n");

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

  {

   h=(b-a)/(int (pow(2.0,j))*d);

   s[j]=0;

   for(i=0;i<=(int (pow(2.0,j))*d);i++)

   {

    x=a+i*h;

    if(i==0)

     t=1;

    else

     t=2;

    y=t*(h/2)*1/pow(x,n);

    s[j]=s[j]+y;

   }

   if (j>0)

   {

    coa=abs((s[j]-s[j-1])/s[j-1]);

    printf("Критерий точности %.7f Количество итераций %d\n",coa,j);

    fprintf(fp,"%.7f\t",coa);

    fprintf(fp,"%d\t\n",j);

   }

  }

  printf("Суммаметодомтрапеций S= %.7f\n",s[1]);

  fprintf(fp,"%.7f\n",s[1]);

  printf("\nВычисление интеграла методом Симпсона:\n");

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

  {

   h=(b-a)/(int (pow(2.0,j))*d);

   s[j]=0;

   for(i=0;i<=(int (pow(2.0,j))*d);i++)

   {

    x=a+i*h;

    if(i==0||i==d)

     t=1;

    else

    {

     if(i%2==0)

      t=2; //если четное разбиение

     else

      t=4; //если нечетное разбиение

    }

    y=t*(h/3)*1/pow(x,n);

    s[j]=s[j]+y;

   }

   if (j>0)

   {

    coa=abs((s[j]-s[j-1])/s[j-1]);

    printf("Критерий точности %.7f Количество итераций %d\n",coa,j);

    fprintf(fp,"%.7f\t",coa);

    fprintf(fp,"%d\t\n",j);

   }

  }

  printf("СуммаметодомСимпсона S= %.7f\n",s[1]);

  fprintf(fp,"%.7f\n",s[1]);

 break;

 case 2:

  printf("Введитекоэффицент m=");

  scanf("%f",&m);

  printf("\nВычисление интеграла методом трапеций:\n");

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

  {

   h=(b-a)/(int (pow(2.0,j))*d);

   s[j]=0;

   for(i=0;i<=(int (pow(2.0,j))*d);i++)

   {

    x=a+i*h;

    if(i==0)

     t=1;

    else

     t=2;

    y=t*(h/2)*sin(m*x);

    s[j]=s[j]+y;

   }

   if (j>0)

   {

    coa=abs((s[j]-s[j-1])/s[j-1]);

    printf("Критерий точности %.7f Количество итераций %d\n",coa,j);

    fprintf(fp,"%.7f\t",coa);

    fprintf(fp,"%d\t\n",j);

   }

  }

  printf("Суммаметодомтрапеций S= %.7f\n",s[1]);

  fprintf(fp,"%.7f\n",s[1]);

  printf("\nВычисление интеграла методом Симпсона:\n");

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

  {

   h=(b-a)/(int (pow(2.0,j))*d);

   s[j]=0;

   for(i=0;i<=(int (pow(2.0,j))*d);i++)

   {

    x=a+i*h;

    if(i==0||i==d)

     t=1;

    else

    {

     if(i%2==0)

      t=2; //если четное разбиение

     else

      t=4; //если нечетное разбиение

    }

    y=t*(h/3)*sin(m*x);

    s[j]=s[j]+y;

   }

   if (j>0)

   {

    coa=abs((s[j]-s[j-1])/s[j-1]);

    printf("Критерий точности %.7f Количество итераций %d\n",coa,j);

    fprintf(fp,"%.7f\t",coa);

    fprintf(fp,"%d\t\n",j);

   }

  }

  printf("СуммаметодомСимпсона S= %.7f\n",s[1]);

  fprintf(fp,"%.7f\n",s[1]);

 break;

}

 

// Закрытиефайла

fclose (fp);

 

printf("\nДля выхода нажмите любую клавишу...\n");

 _getch();

}


 

А также другие работы, которые могут Вас заинтересовать

79718. Механизм государства: понятие и структура. Орган государства: понятие, признаки, классификаци 140 KB
  Обобщая политический опыт развития эксплуататорских государств, можно определить государство как организацию для поддержания одних политических сил, стоящих у власти, над другими. Без механизма государства нет и самого государства
79719. Гражданское общество: основные этапы становления и сфера деятельности 62 KB
  Идея гражданского общества появилась в Новое время, в противовес всевластию государства. Концепцию гражданского общества в наиболее полном виде разработал Г. Гегель, немецкий философ.
79720. Понятие демократии. Предпосылки демократии. Институты прямой демократии 80.5 KB
  Критериями демократического общества в эту эпоху были: Возможность принятия главных решений всему свободными гражданами полиса большинством голосов; Занятие должностей по жребию; Периодические отчеты должностных лиц. Этому способствуют: открытые для прессы заседания коллегиальных государственных органов публикация их стенографических отчетов представление чиновниками деклараций о своих доходах существование свободных от цензуры и независимых от власти неправительственных СМИ; Выборность основных органов власти на основе всеобщего...
79721. Зарождение и развитие идеи правового государства 52 KB
  Признаки правового государства. К концу XX века человечество приблизилось к реальному воплощению выработанной веками идеи правового государства. У ее истоков стояли древние философы Платон и Аристотель но наиболее полное отражение концепция правового государства получили в работах Ш.
79722. Понятие гражданства и подданства. Категории физических лиц по их отношению к гражданству, их правовой статус 79 KB
  Гражданство - устойчивая правовая связь человека с государством, выражающаяся в совокупности их взаимных прав, обязанностей и ответственности, основанная на признании и уважении достоинства, основных прав и свобод человека.
79723. Понятие правового статуса личности и его структура. Основные международные документы о правах человек и их содержание 89.5 KB
  Правовой статус (положение) человека - это совокупность его прав и обязанностей. Права и обязанности закрепляются многочисленными законами и иными нормативно-правовыми актами, но особое значение в определении правового статуса личности имеет конституция государства.
79724. Понятие социальной нормы. Право и мораль. Право и другие социальные нормы 162 KB
  Право и другие социальные нормы. Значение любой нормы состоит в том что она указывает на те границы пределы в которых существует то или иное явление или объект сохраняя при этом свое качество и не утрачивая своей сущности.
79725. Теории происхождения права (основные направления учения о праве) 80 KB
  Некоторые из теорий происхождения права носят аналогичные названия теориям происхождения государств: теологическая, естественно-правовая, теория насилия, марксистская.
79726. Право и государство, их соотношение и взаимодействие. Понятие источников (форм) права 58 KB
  Какое выражение вам кажется более правильным: «Где общество, там и право» или «Где государство, там и право?». Сделаем вывод, что право существует далеко не во всяком обществе, в то время как ни одно государство не может существовать без установленных им правовых норм