ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode


Вычисление интеграла на Си


В этой статье мы рассмотрим вычисление интеграла на языке Си. Будет приведён теоретический материал и его реализация в виде программы.

Для того, чтобы найти значение интеграла, нам понадобится формула парабол (Симпсона) — это один из самых точных численных методов для нахождения определенного интеграла. Вот эта формула:

calculationOfDefiniteIntegralFormula

где h = (b-a)/2n, 2n — количество отрезков (четное число), на которое мы делим интервал интегрирования (чем больше, тем точнее вычисления).

calculationOfDefiniteIntegralFormula2

В скобках формулы вычисления интеграла мы видим, как сгруппированы значения функции: первое и последнее просто суммируются, значения с нечетными индексами умножаются на 4, а с четными на 2.

Напишем программу, которая вычисляет такой определенный интеграл:


calculationOfDefiniteIntegralIntegral

Подключим необходимые библиотеки и определим константу N — число отрезков (четное), на которое мы будет делить отрезок интегрирования [a, b]:

Нам понадобится функция F(double x), вычисляющая значение sin(x) + cos(x), она будет возвращать значение типа double — вещественный тип повышенной точности:

Переходим к функции main(). Определим необходимые переменные, константу Пи и вычислим значение h:

Вычисляем значение x1 и в цикле начинаем вычислять часть формулы .. + 4(…) + 2(…):

Добавляем к S первое и последнее значение функции S + f(a) + f(b) и умножаем результат на (h/3). Выводим результат в консоль:

В итоге получается такая программа (исходник, как обычно, можно скачать внизу страницы):

Демонстрация работы программы:

calculationOfDefiniteIntegralDemo

Значение интеграла равно двум!

Скачать исходник
4.7/5 - (15 голосов)



Поделиться в соц. сетях:

Добавить комментарий

Ваш адрес email не будет опубликован.