Вычисление интеграла методом Симпсона

Тип работы:
Контрольная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Министерство образования и науки Российской Федерации

Воронежский государственный технический университет

Кафедра полупроводниковой электроники и нано электроники

Контрольная работа

по дисциплине информатика

На тему: «Вычисление интеграла методом Симпсона»

Содержание

  • 1. Теоретическая часть
  • 1.1 Метод деления отрезка пополам
  • 1.2 Метод трапеций
  • 2. Алгоритм работы программы
  • 3. Листинг программы
  • 4. Пример работы программы
  • 5. Вывод
  • Список литературы

1. Теоретическая часть

1.1 Метод деления отрезка пополам

Задача заключается в нахождении корней нелинейного уравнения

. (1)

Для начала итераций необходимо знать интервал значений, на концах которого функция принимает значения разных знаков:

. (2)

Из непрерывности функции f и условия (2) следует, что на интервале существует хотя бы один корень уравнения (в случае наличия нескольких корней метод приводит к нахождению одного из них)

Выберем точку внутри интервала:

. (3)

Если, то корень найден. Если разобьём интервал на два: и. Теперь найдём новый интервал, в котором функция меняет знак. Пусть и соответственно корень находится внутри интервала. Тогда обозначим и повторим описанную процедуру до достижения требуемой точности. За количество итераций N первоначальный отрезок делится в 2N раз.

1.2 Метод трапеций

Метод численного интегрирования функции одной переменной, заключающийся в замене на каждом элементарном отрезке подынтегральной функции на многочлен первой степени, то есть линейную функцию. Площадь под графиком функции аппроксимируется прямоугольными трапециями. Алгебраический порядок точности равен 1.

Если отрезок является элементарным и не подвергается дальнейшему разбиению, значение интеграла можно найти по формуле:

. (4)

Это простое применение формулы для площади трапеции — полусумма оснований, которыми в данном случае являются значения функции в крайних точках отрезка, на высоту (длину отрезка интегрирования).

Метод трапеций быстро сходится к точному значению интеграла для периодических функций, поскольку погрешность за период аннулируется. Метод может быть получен путём вычисления среднего арифметического между результатами применения формул правых и левых прямоугольников.

2. Алгоритм работы программы

/

3. Листинг программы

program task;

const

E = 0. 1;

function f (x: Real): Real;

begin

f: = 4 — sqr (sqr (x));

end;

function g (x: Real): Real;

begin

if x < 0 then

g: = - exp (ln (-x) / 3)

else if x > 0 then

g: = exp (ln (x) / 3)

else

g: = 0;

end;

function func (x: Real): Real;

begin

func: = f (x) — g (x);

end;

function bissection (a, b: Real): Real;

var

x: Real;

t: Boolean;

begin

bissection: = 0;

if ((func (a) * func (b)) > 0) then

begin

WriteLn ('Здесь не может быть корня! ');

end

else

begin

if (abs (func (a)) < E) then

bissection: = a

else if (abs (func (b)) < E) then

bissection: = b

else

begin

x: = (a + b) / 2;

t: = true;

while t do

begin

if (abs (func (x)) < E) or (abs (a — b) < E) then

begin

bissection: = x;

t: = false;

end

else

begin

if (func (x) * func (a) < 0) then

b: = x

else

a: = x;

x: = (a + b) / 2;

end;

end;

end;

end;

end;

function Integral (a, b: Real): Real;

const

n = 128;

var

h, x, res: Real;

begin

h: = (b — a) / n;

x: = a;

res: = 0;

repeat

res: = res + 0.5 * (func (x) + func (x + h)) * h;

x: = x + h;

until x > b-h;

Integral: = res;

end;

var

a, b: Real;

begin

a: = bissection (-3, 0);

b: = bissection (0,3);

WriteLn ('Корень 1 = ', a: 7: 7);

WriteLn ('Корень 2 = ', b: 7: 7);

WriteLn ('Площадь интеграла = ', Integral (a, b): 7: 7);

ReadLn;

end.

4. Пример работы программы

Точное значение интеграла, посчитано средствами математического пакета Mathcad:

.

5. Вывод

В данной работе решена задача приближённого интегрирования функции методом трапеций и нахождения пределов интегрирования методом деления отрезка пополам.

В процессе создания работы разработан алгоритм решения поставленной задачи. По этому алгоритму на языке Pascal составлена и отлажена программа.

В ходе тестирования были получены результаты работы методом деления отрезка пополам и метода трапеций.

Программа является полностью работоспособной, что подтверждается результатами её тестированием.

интеграл симпсон программа листинг

Список литературы

1. Н. С. Пискунов. Дифференциальное и интегральное исчисление 370 — 373 с.

2. С. А. Немнюгин. Turbo Pascal. Учебник для вузов.

ПоказатьСвернуть
Заполнить форму текущей работой