Описание лабораторной работы 4 по курсу "Численные методы" (ФКТИ, 4-й семестр)

Вычислить интегралы 1-3 следующими способами:

  1. Левых прямоугольников
  2. Правых прямоугольников
  3. Центральных прямоугольников
  4. Трапеций
  5. Симпсона
  6. Гаусса по 4-м узлам.
Каждую их этих формул следует применять для промежутков [ak , ak+1], а потом суммировать результаты. Здесь ak=a+kh, где h=(b–a)/N. Для интегралов 1 и 3 найти теоретическую погрешность вычисления (см. глава 3, параграф 2, страница 90 книги Бахвалова & Co) в зависимости от N. Пусть N1 – наименьшее из тех N, для которых погрешность будет меньше 10 –8.
Для интегралов 1, 2, 3 сосчитать, сколько раз нужно вычислить значение функции при вычислении по данной формуле в зависимости от N. Пусть N2 – наибольшее из тех N, для которых значение функции вычисляется не более 100 000 раз.
Возьмите N = min(N1, N2) (для второго интеграла N = N2) и вычислите с этим N приближенное значение интеграла, а также погрешности.
В отчет для каждого метода и каждого интеграла вывести:

Несобственный интеграл (4-я задача) предлагается сосчитать с абсолютной точностью 10 –10 тремя способами.

  1. Свести к собственному заменой x=1/t–1, 0<t<1.
  2. Сосчитать по промежутку 0<x<R, выбрав R так, чтобы остаток (интеграл от R до бесконечности) был по модулю меньше допустимой ошибки. Остаток оценить теоретически. Для оценки использовать неравенства: "модуль интеграла не превосходит интеграл модуля функции" и "чем больше функция, тем больше интеграл". Модуль подынтегральной функции сравнить с 1/xn.
  3. Складывать интегралы по [0;1], по [1;2], по [2;4], по [4;8] и т.д. (увеличивая промежуток вдвое) до тех пор, пока прибавляемое слагаемое больше допустимой ошибки.
Собственные интегралы при этом разрешается считат как угодно – или матлабовской процедурой quad, или формулой Гаусса с достаточно большим количеством узлов.

Для тех, кто хочет оценку выше 4

Написать MatLab-скрипт, который для заданных точек x0,...,xn из промежутка [-1, 1] находит коэффициенты квадратурной формулы с этими узлами. Используя это, написать скрипт, который на входе получает набор точек x0,...,xn, а выводит m-файл, приближенно вычисляющий интеграл по найденной квадратурной формуле. При этом функция из m-файла получает в качестве параметров:

и возвращает приближенное значение интеграла.