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

Особенности метода численного интегрирования функции одной переменной. Замена на каждом элементарном отрезке подынтегральной функции на многочлен первой степени (линейную функцию). Разработка алгоритма программы, ее листинг. Пример работы программы.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 14.07.2012
Размер файла 217,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

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

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

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

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

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

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

Содержание

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

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

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

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

. (1)

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

. (2)

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

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

. (3)

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

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

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

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

. (4)

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

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

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

Размещено на http://www.allbest.ru/

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

program task;

const

E = 0.0000001;

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. Учебник для вузов.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.