Тема: Использование метода трапеций для вычисления значения определённого интеграла
- Разработать базовый класс для реализации метода трапеций с фиксированным числом разбиения отрезка интегрирования. Класс должен иметь все виды конструкторов, деструктор (по необходимости), свойства, методы реализации соответствующего математического аппарата, а также методы ввода с клавиатуры и вывода данных на экран.
- С помощью базового класса создать наследника, реализующего вычисление интеграла методом трапеций с заданной точностью вычислений. В наследнике предусмотреть методы для ввода данных с клавиатуры и потока, а так же для вывода на экран и в поток. Тип потока выбрать по своему усмотрению.
- Разработать структурированный алгоритм для консольного приложения. В качестве функции f(x) использовать:
- f(x) = t * x^3 * cos(x + t) tg (t * x^4 )
- Предусмотреть ввод значений a, b, t и eps с клавиатуры и из потока. Выбор варианта ввода должен определять пользователь.
- Закодировать разработанный алгоритм средствами языков C# и VB.
- Разработать алгоритм для приложения управляемого событиями и реализовать его в C# и VB.
- Для каждого типа приложения в качестве итога представить:
- Значения всех введённых с клавиатуры параметров;
- Вычисленное значение интеграла в наглядной форме;
- Размер полученного минимального шага интегрирования;
Поскольку при данной постановке задачи необходимо получить результат с заданной точностью, алгоритм должен предусматривать промежуточный контроль погрешности вычислений. Такой контроль обеспечивается использованием формулы Рунге, для которой необходимо применять метод двойного пересчёта.
Значит, последовательность действий должна быть такой:
- Ввести значения пределов интегрирования A и B, точность результата Eps и начальное число разбиений отрезка интегрирования N.
- Вычислить значение интеграла при данном числе разбиений и сохранить итог в некоторой (например, Z1) переменной.
- Удвоить число разбиений.
- Вычислить новое значение интеграла и сохранить в другой (например, Z2) переменной.
- С помощью имеющихся значений интеграла вычислить погрешность расчёта.
- Если погрешность превышает указанной на входе значение, то присвоить значение Z2 переменной Z1, удвоить число разбиений и снова вычислить Z2. В противном случае отобразить результат.
При реализации данного алгоритма вы можете отображать значение при каждом вычисленном числе разбиений отрезка интегрирования или подсчитывать число итераций. Это позволит вам принять решение о целесообразности использования данного метода с точки зрения накладных расходов. В предлагаемом ниже алгоритме предусмотрен вывод значений интеграла для каждого числа разбиений.
Введите границы отрезка,
число разбиений и погрешность: 0.7 1.3 10 1e-5
N = 10 eps1 = 1.34771108213108E-0001
Int = 4.04313324639323E-0001
N = 20 eps1 = 4.48678095613344E-0005
Int = 4.04178721210639E-0001
N = 40 eps1 = 1.12199095065446E-0005
Int = 4.04145061482120E-0001
N = 80 eps1 = 2.80516183950772E-0006
Int = 4.04136645996601E-0001
Значение интеграла: 4.041E-0001
с точностью 1.000E-0005
- DrawAnywhere - http://www.drawanywhere.com/
- Gliffy - https://www.gliffy.com/