Детерминированные вычислительные процессы с управлением по аргументу. Численное интегрирование
Автор: Никита Шимко • Октябрь 4, 2018 • Лабораторная работа • 1,173 Слов (5 Страниц) • 920 Просмотры
1
- Лабораторная работа №3 по теме: “Детерминированные вычислительные процессы с управлением по аргументу. Численное интегрирование.”
- Цель работы: научиться применять детерминированные вычислительные процессы с управлением по аргументу средствами компилятора Free Pascal для вычисления определённых интегралов различными методами.
- ПК, Pascal, draw.io.
Задание 1.
- Написать программу для вычисления определенного интеграла из индивидуального задания методом прямоугольника левых частей.[pic 1]
- [pic 2]
- [pic 3]
Переменная | Смысл | Тип данных |
a | Нижняя граница интегрирования | real |
b | Верхняя граница интегрирования | |
x | Аргумент функции | |
h | Шаг цикла | |
sum | Сумма всех значений функции в границах интегрирования | |
i | Интеграл (площадь графика) | |
n | Кол-во разбиений площади графика | integer |
- [pic 4]
- [pic 5][pic 6][pic 7][pic 8]
- Для написания программы для вычисления определённого интеграла методом прямоугольника левых частей я взял переменную n типа integer, в которой хранится считанное с клавиатуры число делений графика, в вещественных переменных a и b хранятся пределы интеграла, так как пределы имеют плавающую точку, а переменные h, sum и i типа real взяты соответственно для хранения шага цикла, суммы значений в пределах интегрирования и самого значения интеграла. Для вычисления нужной суммы я взял цикл while, так как цикл имеет шаг, отличный от единицы (а в цикле for шаг равен только единице). Начальное значение аргумента цикла было взято за a, цикл должен работать, пока x меньше или равен b-h (данные из формулы). Затем нужно умножить количество разбиений на получившуюся сумму для получения ответа. Произведя нужные арифметические действия, программа выводит результат на экран.
Задание 2.
- Написать программу для вычисления определенного интеграла из индивидуального задания методом прямоугольника правых частей.
- [pic 9][pic 10]
- [pic 11]
Переменная | Смысл | Тип данных |
a | Нижняя граница интегрирования | real |
b | Верхняя граница интегрирования | |
x | Аргумент функции | |
h | Шаг цикла | |
sum | Сумма всех значений функции в границах интегрирования | |
i | Интеграл (площадь графика) | |
n | Кол-во разбиений площади графика | integer |
- [pic 12]
- [pic 13][pic 14][pic 15][pic 16]
- При написании программы для вычисления определённого интеграла методом прямоугольника правых частей была взята переменную n типа integer, в которой хранится число делений графика, считанное с клавиатуры. Также в вещественных переменных a и b хранятся пределы интеграла, так как пределы имеют плавающую точку, а переменные h, sum и i типа real взяты соответственно для хранения шага цикла, суммы значений в пределах интегрирования и самого значения интеграла. Для вычисления нужной суммы я взял цикл while, так как цикл имеет шаг, отличный от единицы (а в цикле for шаг равен только единице). Начальное значение аргумента цикла было взято за a+h, цикл выполняется, пока x меньше или равен b (данные из формулы). Затем нужно умножить количество разбиений на получившуюся сумму для получения ответа. Произведя нужные арифметические действия, программа выводит результат на экран.
Задание 3.
- Написать программу для вычисления определенного интеграла из индивидуального задания методом трапеций.
- [pic 17][pic 18]
- [pic 19]
Переменная | Смысл | Тип данных |
a | Нижняя граница интегрирования | real |
b | Верхняя граница интегрирования | |
x | Аргумент функции | |
h | Шаг цикла | |
sum | Сумма всех значений функции в границах интегрирования | |
i | Интеграл (площадь графика) | |
n | Кол-во разбиений площади графика | integer |
- [pic 20]
- [pic 21][pic 22][pic 23][pic 24]
- Для написания программы для вычисления определённого интеграла методом трапеции я взял целочисленную переменную n для хранения считанного с клавиатуры числа делений графика, в вещественных переменных a и b хранятся пределы интеграла, так как пределы имеют плавающую точку, а переменные h, sum и i типа real взяты соответственно для хранения шага цикла, суммы значений в пределах интегрирования и самого значения интеграла. Для вычисления нужной суммы я взял цикл while, так как цикл имеет шаг, отличный от единицы (а в цикле for шаг равен только единице). Начальное значение аргумента цикла было взято за a, цикл должен работать, пока x меньше или равен b-h (данные из формулы). Затем сумму нужно подставить в формулу для получения ответа. Произведя нужные арифметические действия, программа выводит результат на экран.
Задание 4.
- Написать программу для вычисления определенного интеграла из индивидуального задания методом парабол.
- [pic 25] [pic 26]
- ЙукепнргошогрфЫЧЦУКАПЕ5НРТИМВЧ[pic 27]
Переменная | Смысл | Тип данных |
a | Нижняя граница интегрирования | real |
b | Верхняя граница интегрирования | |
x | Аргумент функции | |
h | Шаг цикла | |
sum1 | Сумма всех значений функции, которые относятся к нечётным параболам, полученных с помощью разбиения | |
sum2 | Сумма всех значений функции, относящихся к чётным параболам | |
i | Интеграл (площадь графика) | |
n | Кол-во разбиений площади графика | integer |
- [pic 28]
- [pic 29][pic 30][pic 31][pic 32]
- В процессе написания программы для вычисления определённого интеграла методом парабол была взята переменную n типа integer, в которой хранится число делений графика, считанное с клавиатуры. Также в вещественных переменных a и b хранятся пределы интеграла, так как пределы имеют плавающую точку, а переменные h, sum1, sum2 и i типа real взяты соответственно для хранения шага цикла, суммы значений нечётных и чётных парабол и самого значения интеграла. Так как нужно было посчитать две суммы с разными начальными и конечными условиями, я использовал два цикла while: в каждом из которых считалась отдельная сумма при своих начальных и конечных условиях. Получившиеся суммы следует подставить формулу: которая дана в математической модели. Программа считает значение и выводит его на экран.
- Вывод: я научился реализовывать алгоритмы на детерминированные циклические вычислительные процессы с управлением по аргументу средствами компилятора Free Pascal для решения интегралов различными методами.
2
N Количество разбиений | H шаг | I Метод левых частей прямоугольников | I Метод правых частей прямоугольников | I Метод трапеций | I Метод парабол |
10 | 0,08 | 0,54419 | 0,52987 | 0,56747 | 0,53704 |
100 | 0,008 | 0,53308 | 0,53167 | 0,53541 | 0,52769 |
1000 | 0,0008 | 0,53711 | 0,53697 | 0,53734 | 0,53611 |
10000 | 0,00008 | 0,53700 | 0,53698 | 0,53702 | 0,53695 |
3
3.1. По формуле Ньютона-Лейбница заданный интеграл равен 0,53704. Исходя из таблицы, для этой функции одним из самых точных методов является метод трапеций с кол-вом разбиений 10000. Также при кол-ве разбиений 10 самым точным является метод парабол.
...