Учебная работа. Курсовая работа: Исследование точности численного интегрирования 2
Курсовой проект по дисциплине “Информатика”
исследование точности численного интегрирования
Педагог:
Студент:
Группа:
Екатеринбург 2010
Содержание
1.Техническое задание
1.1 текст задания
1.2 Подробное описание задания
1.3 способ решения
2. Результаты исследования
3. анализ результатов
4. Описание внедрения
4.1 Предназначение программки
4.2 Условия внедрения
4.3 Описание задачки
5. Программка и методика испытаний
5.1 объект испытаний
5.2 Цель испытаний
5.3 Требования к программке
5.4 средства и порядок испытаний
5.5 Способы испытаний
6. Управление юзера
6.1 Предназначение программки
6.2 Условия и свойства выполнения программки
6.3 Выполнение программки
6.4 Сообщения оператору
6.5 Входные и выходные данные
6.6 Сборка программки
7. Описание программки
7.1 Общие сведения
7.2 Функциональное предназначение
7.3 Описание логической структуры
7.4 Применяемые технические средства
7.5 Входные и выходные данные
8. текст программки
1. Техническое задание
1.1 текст задания
Провести исследование внутренней сходимости численного интегрирования способами Симпсона и трапеций разных функций, задаваемых при помощи функций языка C.
1.2 Подробное описание задания
Постройте зависимости количества итераций от разный величин аспекта точности.
Постройте оборотные зависимости аспекта точности от количества итераций.
Повторите все вышеуказанные исследования для варианта, когда при вычислении аспекта точности разность значений интеграла на смежных итерациях относится не к предшествующему значению, а к четкому значению аналитически вычисленного интеграла.
Обследуйте воздействие роста верхнего предела интегрирования на точность (при иных постоянных величинах).
Подынтегральные функции для исследования:
1/x2 [0.5, 3]
1/x [0.1, 9]
sin mx [0, π] m=1,2,7,9
1.3 способ решения
Предполагается, что отрезок интегрирования [a,b] разбит на n равных частей системой точек (сетью). Контроль внутренней сходимости заключается в повторяющемся вычислении приближенных значений интеграла для удваиваемого по сопоставлению со значением на прошлом прохождении цикла числа п. Отношение абсолютной величины разности этих значений к абсолютной величине предшествующего приближенного значения принимается в качестве аспекта заслуги точности вычисления интеграла.
x, = x0
+ ih, (i = 0,1,..,n), х0
= а, хn
= b, h=(b-a)/n
способ трапеций:
где yi
=f(xi
)
Способ Симпсона:
n – непременно четное.
2. Результаты исследования
Приведем пример построения зависимости количества итераций от аспекта точности для подынтегральной функции 1/x, решенный с помощью способа трапеций, аспект точности рассчитывается как отношение разности значений интегралов, приобретенных на смежных итерациях, к аналитическому значению.
Входные данные: номер зависимости (в данном случае – 1), номер делителя (аналитическое значение -2), номер способа, номер функции, верхний и нижний пределы, коэффициент m, равный 1.
Аспект точности автоматом меняется от 10-7
до 10-3
, с каждым шагом увеличиваясь в 101/24
, таковым образом, выходит 25 точек, которых полностью хватает для исследования зависимости. На каждой итерации кол-во отрезков, на которое делится отрезок интегрирования возрастает вдвое, т.е n = 2iter
, где itter – кол-во итераций. Циклически рассчитывается до заслуги данного аспекта точности.
Вычисленные значения сохраняются в файле “D:Zavisimost1.txt”. Опосля переноса значений в MS Excel создается таблица 1 и строится график, изображенный на рисунке 1.
Таблица 1
аспект точности
1,00E-07
1,47E-07
2,15E-07
3,16E-07
4,64E-07
6,81E-07
1,00E-06
1,47E-06
2,15E-06
Кол-во итераций
22
21
20
20
19
19
18
18
17
аспект точности
3,16E-06
4,64E-06
6,81E-06
1,00E-05
1,47E-05
2,15E-05
3,16E-05
4,64E-05
6,81E-05
Кол-во итераций
17
16
16
15
15
14
14
13
13
аспект точности
1,00E-04
1,47E-04
2,15E-04
3,16E-04
4,64E-04
6,81E-04
1,00E-03
Кол-во итераций
12
12
11
11
11
10
10
Набросок 1
Результаты всех измерений приведены в таблицах 2, 3, 4, 5, 6.
Таблица 2 — Зависимости кол-ва итераций от аспекта точности для функций 1/x, 1/x^2, sin x
Кол-во итераций от аспекта точности
к предшествующему значению
к аналитическому значению
аспект точности
способ трапеций
Способ Симпсона
Способ трапеций
способ Симпсона
1/x2
1/x
sin x
1/x2
1/x
sin x
1/x2
1/x
sin x
1/x2
1/x
sin x
1,00E-07
22
22
10
21
21
15
22
22
10
21
21
15
1,47E-07
21
21
10
20
20
14
21
21
10
20
20
14
2,15E-07
20
20
10
20
20
13
20
20
10
20
20
13
3,16E-07
20
20
10
19
19
13
20
20
10
19
19
13
4,64E-07
19
19
10
19
19
12
19
19
10
19
19
12
6,81E-07
19
19
10
18
18
12
19
19
10
18
18
12
1,00E-06
18
18
10
18
18
11
18
18
10
18
18
11
1,47E-06
18
18
10
17
17
11
18
18
10
17
17
11
2,15E-06
17
17
10
17
17
10
17
17
10
17
17
10
3,16E-06
17
17
10
16
16
10
17
17
10
16
16
10
4,64E-06
16
16
9
15
15
9
16
16
9
15
15
9
6,81E-06
16
16
9
15
15
8
16
16
9
15
15
8
1,00E-05
15
15
9
14
14
8
15
15
9
14
14
8
1,47E-05
15
15
9
14
14
7
15
15
9
14
14
7
2,15E-05
14
14
9
13
13
7
14
14
9
13
13
7
3,16E-05
14
14
8
13
13
6
14
14
8
13
13
6
4,64E-05
13
13
8
12
12
6
13
13
8
12
12
6
6,81E-05
13
13
8
12
12
5
13
13
8
12
12
5
1,00E-04
12
12
8
11
11
5
12
12
8
11
11
5
1,47E-04
12
12
7
11
11
5
12
12
7
11
11
5
2,15E-04
11
11
7
10
10
5
11
11
7
10
10
5
3,16E-04
11
11
7
10
10
4
11
11
7
10
10
4
4,64E-04
11
11
7
9
9
4
11
11
7
9
9
4
6,81E-04
10
10
6
9
9
4
10
10
6
9
9
4
1,00E-03
10
10
6
9
9
4
10
10
6
9
9
4
Таблица 3 — Зависимость аспекта точности интегрирования для функций 1/x^2, 1/x
Аспект точности от кол-во итераций
к предшествующему значению
к аналитическому значению
кол-во итераций
способ трапеций
Способ Симпсона
Способ трапеций
способ Симпсона
1/x2
1/x
1/x2
1/x
1/x2
1/x
1/x2
1/x
1
4,25E-01
4,79E-01
3,81E-01
4,69E-01
1,38E+00
4,89E+00
8,68E-01
3,26E+00
2
3,06E-01
4,46E-01
2,15E-01
4,17E-01
5,72E-01
2,38E+00
3,03E-01
1,54E+00
3
1,57E-01
3,81E-01
7,35E-02
3,27E-01
2,04E-01
1,12E+00
8,14E-02
7,06E-01
4
5,87E-02
2,77E-01
1,71E-02
2,06E-01
6,42E-02
5,05E-01
1,75E-02
2,99E-01
5
1,89E-02
1,58E-01
4,52E-03
9,55E-02
1,95E-02
2,09E-01
4,55E-03
1,10E-01
6
6,17E-03
6,89E-02
1,81E-03
3,13E-02
6,23E-03
7,66E-02
1,82E-03
3,26E-02
7
2,20E-03
2,38E-02
8,72E-04
7,28E-03
2,21E-03
2,47E-02
8,74E-04
7,35E-03
8
8,77E-04
7,16E-03
4,34E-04
1,42E-03
8,79E-04
7,24E-03
4,34E-04
1,42E-03
9
3,82E-04
2,08E-03
2,17E-04
3,66E-04
3,82E-04
2,08E-03
2,17E-04
3,66E-04
10
1,77E-04
6,32E-04
1,08E-04
1,49E-04
1,77E-04
6,33E-04
1,09E-04
1,49E-04
11
8,49E-05
2,12E-04
5,42E-05
7,19E-05
8,49E-05
2,12E-04
5,43E-05
7,19E-05
12
4,16E-05
7,99E-05
2,71E-05
3,58E-05
4,16E-05
7,99E-05
2,71E-05
3,58E-05
13
2,06E-05
3,34E-05
1,36E-05
1,79E-05
2,06E-05
3,34E-05
1,36E-05
1,79E-05
14
1,02E-05
1,51E-05
6,78E-06
8,94E-06
1,02E-05
1,51E-05
6,78E-06
8,94E-06
15
5,10E-06
7,12E-06
3,39E-06
4,47E-06
5,10E-06
7,12E-06
3,39E-06
4,47E-06
16
2,55E-06
3,46E-06
1,70E-06
2,24E-06
2,55E-06
3,46E-06
1,70E-06
2,24E-06
17
1,27E-06
1,70E-06
8,48E-07
1,12E-06
1,27E-06
1,70E-06
8,48E-07
1,12E-06
18
6,36E-07
8,45E-07
4,24E-07
5,59E-07
6,36E-07
8,45E-07
4,24E-07
5,59E-07
19
3,18E-07
4,21E-07
2,12E-07
2,79E-07
3,18E-07
4,21E-07
2,12E-07
2,79E-07
20
1,59E-07
2,10E-07
1,06E-07
1,40E-07
1,59E-07
2,10E-07
1,06E-07
1,40E-07
Таблица 4. Зависимости кол-ва итераций от аспекта точности для функций sin 7x, sin 9x
Кол-во итераций от аспекта точности
к предшествующему значению
к аналитическому значению
Аспект точности
способ трапеций
Способ Симпсона
Способ трапеций
способ Симпсона
sin(7x)
sin(9x)
sin(7x)
sin(9x)
sin(7x)
sin(9x)
sin(7x)
sin(9x)
1,00E-07
21
21
20
21
21
21
20
21
1,47E-07
20
21
20
20
20
21
20
20
2,15E-07
20
20
19
20
20
20
19
20
3,16E-07
19
20
18
19
19
20
18
19
4,64E-07
19
19
18
19
19
19
18
19
6,81E-07
18
19
17
18
18
19
17
18
1,00E-06
17
18
17
18
17
18
17
18
1,47E-06
17
18
16
17
17
18
16
17
2,15E-06
16
17
16
16
16
17
16
16
3,16E-06
16
16
15
16
16
16
15
16
4,64E-06
10
16
15
15
10
16
15
15
6,81E-06
10
15
14
15
10
15
14
15
1,00E-05
10
10
13
14
10
10
13
14
1,47E-05
10
10
13
14
10
10
13
14
2,15E-05
10
10
12
13
10
10
12
13
3,16E-05
10
10
12
13
10
10
12
13
4,64E-05
10
10
11
12
10
10
11
12
6,81E-05
10
10
11
11
10
10
11
11
1,00E-04
10
10
10
11
10
10
10
11
1,47E-04
10
10
10
10
10
10
10
10
2,15E-04
10
10
9
10
10
10
9
10
3,16E-04
9
10
9
9
9
10
9
9
4,64E-04
9
9
8
9
9
9
8
9
6,81E-04
9
9
8
8
9
9
8
8
1,00E-03
9
9
7
8
9
9
7
8
Таблица 5 — Зависимость аспекта точности интегрирования для функций sin x, sin 2x
Аспект точности от кол-во итераций
к предшествующему значению
к аналитическому значению
кол-во итераций
способ трапеций
Способ Симпсона
Способ трапеций
способ Симпсона
sin x
sin 2x
sin x
sin 2x
sin x
sin 2x
sin x
sin 2x
1
2,09E+02
6,67E-01
2,50E+02
9,00E-01
7,83E-01
3,94E+03
1,04E+00
5,91E+03
2
2,06E-01
5,00E-01
4,32E-02
1,59E-03
1,62E-01
9,87E+02
4,52E-02
1,05E+00
3
4,08E-02
5,01E-01
2,34E-03
5,01E-01
3,87E-02
4,93E+02
2,35E-03
3,29E+02
4
9,62E-03
5,01E-01
2,30E-04
5,02E-01
9,50E-03
2,46E+02
2,30E-04
1,64E+02
5
2,34E-03
5,02E-01
5,98E-05
5,03E-01
2,33E-03
1,23E+02
5,99E-05
8,21E+01
6
5,63E-04
5,04E-01
2,65E-05
5,06E-01
5,63E-04
6,16E+01
2,65E-05
4,11E+01
7
1,31E-04
5,08E-01
1,31E-05
5,12E-01
1,31E-04
3,08E+01
1,31E-05
2,05E+01
8
2,78E-05
5,17E-01
6,51E-06
5,26E-01
2,78E-05
1,54E+01
6,51E-06
1,03E+01
9
4,52E-06
5,35E-01
3,26E-06
5,54E-01
4,52E-06
7,70E+00
3,26E-06
5,13E+00
10
9,11E-08
5,75E-01
1,63E-06
6,21E-01
9,11E-08
3,85E+00
1,63E-06
2,57E+00
11
6,33E-07
6,75E-01
8,14E-07
8,19E-01
6,33E-07
1,93E+00
8,14E-07
1,28E+00
12
4,64E-07
1,04E+00
4,07E-07
2,26E+00
4,64E-07
9,63E-01
4,07E-07
6,42E-01
13
2,69E-07
1,29E+01
2,03E-07
8,96E-01
2,69E-07
4,81E-01
2,03E-07
3,21E-01
14
1,43E-07
4,64E-01
1,02E-07
2,36E-01
1,43E-07
2,41E-01
1,02E-07
1,60E-01
15
7,40E-08
1,58E-01
5,09E-08
9,56E-02
7,40E-08
1,20E-01
5,09E-08
8,02E-02
16
3,76E-08
6,84E-02
2,54E-08
4,36E-02
3,76E-08
6,02E-02
2,54E-08
4,01E-02
17
1,89E-08
3,20E-02
1,27E-08
2,09E-02
1,89E-08
3,01E-02
1,27E-08
2,01E-02
18
9,50E-09
1,55E-02
6,36E-09
1,02E-02
9,50E-09
1,50E-02
6,36E-09
1,00E-02
19
4,75E-09
7,62E-03
3,18E-09
5,06E-03
4,75E-09
7,51E-03
3,18E-09
5,01E-03
20
2,39E-09
3,81E-03
1,58E-09
2,51E-03
2,39E-09
3,79E-03
1,58E-09
2,49E-03
Таблица 6 — Зависимость аспекта точности интегрирования для функций sin 7x, sin 9x
Аспект точности от кол-во итераций
к предшествующему значению
к аналитическому значению
кол-во итераций
способ трапеций
Способ Симпсона
Способ трапеций
способ Симпсона
sin 7x
sin 9x
sin 7x
sin 9x
sin 7x
sin 9x
sin 7x
sin 9x
1
3,04E+01
2,28E+01
3,66E+01
2,72E+01
5,59E+00
6,91E+00
7,47E+00
9,18E+00
2
2,17E-01
1,95E-01
4,10E-02
4,53E-02
1,17E+00
1,41E+00
2,98E-01
4,31E-01
3
1,04E+00
1,04E+00
1,37E+00
1,36E+00
6,87E+00
8,95E+00
9,55E+00
1,24E+01
4
1,92E+00
3,28E+00
6,00E-01
1,33E+00
5,56E-01
1,06E+00
1,55E+00
4,40E+00
5
1,41E-01
2,74E-01
2,58E-02
7,72E-02
1,19E-01
2,02E-01
2,66E-02
8,43E-02
6
2,89E-02
4,93E-02
2,50E-03
5,57E-03
2,79E-02
4,64E-02
2,51E-03
5,61E-03
7
6,48E-03
1,08E-02
7,11E-04
1,25E-03
6,43E-03
1,07E-02
7,12E-04
1,26E-03
8
1,37E-03
2,26E-03
3,23E-04
5,39E-04
1,37E-03
2,26E-03
3,24E-04
5,40E-04
9
2,22E-04
3,66E-04
1,60E-04
2,64E-04
2,22E-04
3,66E-04
1,60E-04
2,65E-04
10
4,46E-06
7,37E-06
7,98E-05
1,32E-04
4,46E-06
7,37E-06
7,98E-05
1,32E-04
11
3,10E-05
5,13E-05
3,99E-05
6,59E-05
3,10E-05
5,13E-05
3,99E-05
6,59E-05
12
2,27E-05
3,75E-05
1,99E-05
3,30E-05
2,27E-05
3,75E-05
1,99E-05
3,30E-05
13
1,32E-05
2,17E-05
9,97E-06
1,65E-05
1,32E-05
2,17E-05
9,97E-06
1,65E-05
14
7,03E-06
1,16E-05
4,99E-06
8,24E-06
7,03E-06
1,16E-05
4,99E-06
8,24E-06
15
3,63E-06
6,00E-06
2,49E-06
4,12E-06
3,63E-06
6,00E-06
2,49E-06
4,12E-06
16
1,84E-06
3,04E-06
1,25E-06
2,06E-06
1,84E-06
3,04E-06
1,25E-06
2,06E-06
17
9,28E-07
1,53E-06
6,23E-07
1,03E-06
9,28E-07
1,53E-06
6,23E-07
1,03E-06
18
4,66E-07
7,70E-07
3,12E-07
5,15E-07
4,66E-07
7,70E-07
3,12E-07
5,15E-07
19
2,33E-07
3,86E-07
1,56E-07
2,58E-07
2,33E-07
3,86E-07
1,56E-07
2,58E-07
20
1,17E-07
1,93E-07
7,79E-08
1,29E-07
1,17E-07
1,93E-07
7,79E-08
1,29E-07
Набросок 2. Зависимость количества итераций от аспекта точности
Набросок 3. Зависимость количества итераций от аспекта точности
Набросок 4. Зависимость аспекта точности от количества итераций (отношение разности к значению на предшествующей итерации)
Набросок 5. Зависимость аспекта точности от количества итераций (отношение разности к аналитическому значению)
Набросок 6. Зависимость аспекта точности от количества итераций
Набросок 7. Зависимость аспекта точности от количества итераций
Набросок 8. Зависимость аспекта точности от количества итераций
Набросок 9. Зависимость аспекта точности от количества итераций
Набросок 10. Зависимость аспекта точности от количества итераций интегрирования 1/х при различных верхних границах интегрирования.
Набросок 11
3. анализ результатов
Если пристально поглядеть результаты, то можно увидеть отсутствие зависимости кол-ва итераций от данного аспекта точности для функции sin2x. Потому что исследование проходит на интервале [0, π], то величина данного интеграла равна 0 (другими словами в критериях программного расчета близка к нулю). Обширно понятно, что деление на ноль «не приветствуется», но если проводить расчет в данной программке, то можно узреть, что в конце концов покажется итог – 32 итерации, это происходит из-за того, что кол-во отрезков n, на которые разбит интервал интегрирования, имеет тип int, другими словами четырехбайтовое целое знаковое число. На 31 итерации n приняло собственный максимум, и на последующих итерациях аспект становится равным 0, что удовлетворяет хоть какому данному аспекту, потому я решил, что эти измерения не целесообразны. Из 2-ой зависимости видно что аспект точности для данной для нас функции на двадцатой итерации лишь начинает приближаться к данному интервалу критериев точности (порядка 10^-3).
Зависимости для функций 1/
x, 1/x^2, sin7x и sin9x ведут себя практически идиентично при всех данных, а вот sinx различается относительно «рекордной» точностью в измерениях (в особенности расчетом способом трапеций, этот способ наилучший при расчете площади под прямой линией).
Интегралы всех функций, не считая
sinx, имеют наилучшую точность при расчете способом Симпсона, но с учетом, что интервал интегрирования разбит на довольно огромное кол-во отрезков. На первых итерациях данный способ дает точность ужаснее, потому что он рассчитан на более-менее изогнутые и не неизменные функции. Сиим же разъясняется его «не наилучший» расчет интеграла sinx, потому что эта функция, по-сравнению с остальными, наименее изогнута (на данном интервале), к примеру sin mx весьма нередко изгибается, а 1/x и 1/x^2 весьма быстро сначала убывает.
При исследовании на функциях 1/x и sin2x воздействия роста верхнего предела на точность установлено что, на точность интегрирования функции 1/x повышение верхнего предела практически не влияет, это видно по графику на рисунке 10.
А вот на функцию sin2x повышение верхнего предела влияет существенно. При малых значениях итераций с повышением предела точность усугубляется, а вот при итерациях > 4-5 существенное улучшение.
4. Описание внедрения
4.1 Предназначение программки
Данная программка создана для исследования внутренней сходимости численного интегрирования.
4.2 Условия внедрения.
программка предъявляет весьма умеренные требования к ресурсам вычислительной установки. Для компиляции и сборки программки употребляется Microsoft Visual С++ 2005.
4.3 Описание задачки
Выстроить зависимости количества итераций от разный величин аспекта точности.
Выстроить оборотные зависимости аспекта точности от количества итераций.
Повторить все вышеуказанные исследования для варианта, когда при вычислении аспекта точности разность значений интеграла на смежных итерациях относится не к предшествующему значению, а к четкому значению аналитически вычисленного интеграла.
Изучить воздействие роста верхнего предела интегрирования на точность (при иных постоянных величинах).
5. программка и методика испытаний
5.1 Объект испытаний
Объектом испытаний является программка, созданная для исследования внутренней сходимости численного интегрирования при помощи способов вычисления интегралов: способы трапеций и Симпсона.
5.2 Цель испытаний
Целью испытаний является проверка точности работы программки для данной задачки.
5.3 Требования к программке
Во время испытаний следует проверить правильное вычисление данных интегралов и критериев точности.
5.4 средства и порядок испытаний
Тесты следует проводить на установке удовлетворяющей п.1.2. Для проверки правильности работы программки довольно провести наиболее 3-х вычислений разных интегралов.
5.5 способы испытаний
В качестве способа испытаний предоставляется последующий пример работы программки.
При запуске программки выдается сообщение о выборе зависимости. Жмем 2 и ENTER. Дальше избираем делитель для вычисления аспекта точности, выберем аналитическое
Данные файла “D:Zavisimost1.txt”:
«Данные для построения зависимости аспект точности от кол-ва итераций
Выбранное отношение для аспекта точности -2
Избранный способ -1
Избранная функция -2
Нижний предел интегрирования a=2,000000
Верхний предел интегрирования b=3,000000
Коэффициент m=1,000000
Кол-во итераций Аспект точности
1 4,316031e-001
2 2,108191e-001
3 1,040970e-001
4 5,171560e-002
5 2,577427e-002
6 1,286624e-002
7 6,427892e-003
8 3,212639e-003
9 1,605993e-003
10 8,029148e-004
11 4,014370e-004
12 2,007134e-004
13 1,003554e-004
14 5,017739e-005
15 2,508862e-005
16 1,254429e-005
17 6,272139e-006
18 3,136068e-006
19 1,568034e-006
20 7,840168e-007»
6. Управление юзера
6.1 Предназначение программки
Данная программка создана для исследования внутренней сходимости численного интегрирования способами Симпсона и трапеций для разных функций.
6.2 Условия и свойства выполнения программки
Программка была отлажена и испытана на вычислительной установке PC c микропроцессором Intel Core 2 Duo CPU 7350 2.0GHz, работающей под управлением операционной системы Windows XP SP 3 версия 5.1 сборка 2600.xpsp.080413-2111.
Для выполнения программки довольно обычный современной вычислительной установки типа IBM PC.
Для компиляции и сборки программки требуется компиляторы Microsoft Visual С++ 2005 Express Edition либо Microsoft Visual Studio 2008.
6.3 Выполнение программки
Запустить исполняемый файл и следовать инструкциям на дисплее.
6.4 Сообщения оператору
В процессе работы программки юзеру будет выведен ряд сообщений, информирующих его о последующем шаге, а конкретно:
— «Изберите зависимость: » – тут юзеру предлагается избрать (ввести подходящий номер) требуемую зависимость.
— «Изберите делитель при вычислении аспекта точности: » — тут юзер должен ввести номер требуемого делителя.
— «Изберите способ: » — тут вводится номер требуемого способа вычисления интеграла.
— «Нижний предел интегрирования a= » — вводим нижний предел.
— «Верхний предел интегрирования b= » — вводим верхний предел.
— «Коэффициент m= » — вводим коэффициент.
— «Провести исследование воздействия роста верхнего предела?? Y???» — если требуеся то нажимаем ‘y’, если нет, то всякую клавишу.
6.5 Входные и выходные данные
Входными данными для данной программки будут номера избранной зависимости (аспект точности от кол-ва итераций и напротив), способа вычисления интеграла (способы трапеций и Симпсона), подходящей функции, делителя для вычисления аспекта (или
На выходе программка выдает численные ответы в количестве 25 соотношений за один проход, сохраняя в файлы “D: Zavisimost1.txt” и “D: Zavisimost2.txt “.
6.6 Сборка программки
Сборка программки осуществляется методом компиляции и компоновки файла с начальным текстом (в количестве 4 файлов) программки в среде компилятора Microsoft Visual С++ 2005 Express Edition.
7. Описание программки
7.1 Общие сведения
Данная программка создана для исследования внутренней сходимости численного интегрирования способами Симпсона и трапеций для разных функций.
Для выполнения программки довольно обычный современной вычислительной установки типа IBM PC.
программка написана на языке С++, реализованном в компиляторе Microsoft Visual С++ 2005 Express Edition.
7.2 Функциональное предназначение
программка создана для исследования внутренней сходимости численного интегрирования способами Симпсона и трапеций для функций (подынтегральных выражений) sin(mx), m/x, m/x2
.
7.3 Описание логической структуры
Функция void Zavisimost1(char,int,int,int)- проводит построение зависимости кол-ва итераций от данного аспекта точности, воспринимает код клавиши для перехода к определенному пт меню (впервой воспринимает 49), также воспринимает значения уже выбраных пт меню.
void Zavisimost2(char,int,int,int) – таковая же функция, но строит зависимости аспекта точности от кол-ва итерациий.
double Trapecia(int,double,double,int,double) – функция вычисления интеграла способом трапеций, воспринимает кол-во разбиений отрезка, пределы интегрирования, номер избранной функции, коэффициент m, возвращает
double Simpson(int,double,double,int,double) – таковая же функция, вычисляет интеграл способом Симпсона.
double analitIntegral(int,double,double,double) – воспринимает номер функции, пределы интегрирования и коэффицент, возвращает аналитическое
double calcKritCorrectTrapecia(int ,int ,double ,double ,int ,double)
double calcKritCorrectSimpson(int ,int ,double ,double ,int ,double) – функции вычисляют аспект точности интегрирования, используя 1-ая – способ трапеций, 2-ая – Симпсона, принимают избранные номера отнощения, функции, пределы интегрирования, кол-во разбиений, коэффициент.
double selectedFunctionValue(int,double,double) — воспринимает номер функции, аргумент, коэффициент, возвращает значение избранной функции.
Дальше следуют все функции выбора и проверки его корректности:
int selectZavisimost()-выбор зависимости.
int selectedZavisimostFunction()-проверка, вывод повторного выбора при неправильности.
int selectOtnoshenie() – выбор отнощения
int selectedOtnoshenieFunction(FILE*,int)
int selectMethod()-выбор способа вычисления
int selectedMethodFunction(FILE*,int,int)
int selectFunction()-выбор функции
int selectedFunctionFunction(FILE*,int,int,int)
double selectedVerhPredel(FILE*)-ввод верхнего предела
double selectedNizhPredel(FILE*,int,int,int,int); — нижнего
double selectedKoefM(FILE*) – ввод коэфициента
7.4 Применяемые технические средства
Программка была отлажена и испытана на вычислительной установке PC c микропроцессором Intel Core 2 Duo CPU 7350 2.0GHz, работающей под управлением операционной системы Windows XP SP 3 версия 5.1 сборка 2600.xpsp.080413-2111.
Для выполнения программки довольно обычный современной вычислительной установки типа IBM PC.
7.5 Входные и выходные данные
Входными данными для данной программки будут номера избранной зависимости (аспект точности от кол-ва итераций и напротив), способа вычисления интеграла (способы трапеций и Симпсона), подходящей функции, делителя для вычисления аспекта (или
На выходе программка выдает численные ответы в количестве 25 соотношений за один проход, сохраняя в файлы “D: Zavisimost1.txt” и “D: Zavisimost2.txt “.
8. текст программки
//файл Kursovoy.h подключаемый во все файлы
//макеты всех испульзуемых функций и подключение библиотек
#ifndef Kursovoy_h
#define Kursovoy_h
#include «stdafx.h»
#include <iostream>
#include «math.h»
#include «locale.h»
#include «conio.h»
using namespace std;
void main(); //головная
int selectedOtnoshenieFunction(FILE*,int); //вывод сообщения о неправильности выбора и возврат к выбору
int selectMethod(); //этот же выбор, но способа
int selectedMethodFunction(FILE*,int,int); //снова же про неверный выбор, характеристики — ссылка на файл, и значения избранных зависимости и делителя
int selectFunction(); //выбор функции
int selectedFunctionFunction(FILE*,int,int,int); //по аналогии можно додуматься
double selectedVerhPredel(FILE*); //ввод верхнего предела интегрирования
double selectedNizhPredel(FILE*,int,int,int,int); //нижнего предела
double selectedKoefM(FILE*); //коэфициента
void Zavisimost1(char,int,int,int); //сама функция, для первой зависимоти (кол-во итераций от аспекта точности)
void Zavisimost2(char,int,int,int); //зависимость 2 (аспект точности от кол-ва итераций)
double selectedFunctionValue(int, double,double); //зависимо от избранной функции и коэффициента возвращает тербуемое
double calcKritCorrectTrapecia(int ,int ,double ,double ,int ,double); //расчет аспекта точности при помощи способа трапеций
double calcKritCorrectSimpson(int ,int ,double ,double ,int ,double); //_________________________________метода Симпсона
double Trapecia(int,double,double,int,double); //способ трапеций (возвращает
double Simpson(int,double,double,int,double); //способ Симпсона
double analitIntegral(int,double,double,double); //аналитическое
char uvelicVerhPredel(); //запррос на исследование роста верхнего предела
void Zagolovok(); //»крутая фишка» — вредный код для Windows XP
#endif
//файл Kursovoy2.cpp, содержит головную функцию программки
#include «stdafx.h»
#include «Kursovoy.h»
void main()
{
system(«cls»);
setlocale(LC_ALL, «RUSSIAN»);
selectedZavisimostFunction();
}
//ниже функция, вычисляющая значения для зависимости кол-ва итераций от данных критериев точности (от 10^-7 до 10^-3)
void Zavisimost1(char key,int selectedOtnoshenie,int selectedMethod,int selectedFunction)
{
FILE *f;
f=fopen(«D:Zavisimost1.txt