Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / Лабы 2002 / лаб4 отчет

.doc
Скачиваний:
28
Добавлен:
17.04.2013
Размер:
27.14 Кб
Скачать

Лабораторная работа №4. Численное интегрирование

Программа для вычисления интеграла при помощи формулы Симпсона.

function [y]=quadsimp(f,a,b,h)

n=round((b-a)/(h*2)); % половина от общего числа вычислений f

h=(b-a)/(2*n); % уточняем h

sum1=0;

sum2=0;

for i=1:(n-1),

sum1=sum1+feval(f,a+h*(2*i-1));

sum2=sum2+feval(f,a+h*2*i);

end;

sum1=sum1+feval(f,a+h*(2*n-1));

y=(feval(f,a)+feval(f,b)+4*sum1+2*sum2)*h/3;

Результаты работы прогрммы для различных значений шагов:

quadsimp('sin',0,pi,0.1)

ans =

2.00000103336941

>> quadsimp('sin',0,pi,0.2)

ans =

2.00001659104794

>> quadsimp('sin',0,pi,0.5)

ans =

2.00086318967354

Теоретическое значение интеграла равно двум.Соотвтственно значения погрешностей составляют:

0.00000103336941 - для шага 0.1

0.00001659104794 - для шага 0.2

0.00086318967354 - для шага 0.5

Процедура ,использующая формулу трапеций:

function I = plotTrap(fun,a,b,h)

n=round((b-a)/h);

x = a:h:b;

y = feval(fun,x);

I = h * ( 0.5*y(1) + sum(y(2:n-1)) + 0.5*y(n) )

Результаты работы прогрммы для различных значений шагов:

>> plottrap('sin',0,pi,0.1)

ans =

1.98833389306628

>> plottrap('sin',0,pi,0.2)

ans =

1.98335476185706

>> plottrap('sin',0,pi,0.5)

ans =

1.76346250444691

Теоретическое значение интеграла равно двум.Соотвтственно значения погрешностей составляют:

0.01166610693372 - для шага 0.1

0.01664523814294 - для шага 0.2

0.23653749555309 - для шага 0.5

Процедура ,использующая формулу прямоугольников:

function I = plotrect(fun,a,b,h)

n=round((b-a)/(h));

h=(b-a)/(n);

x = a:h:b;

y = feval(fun,x);

I = h *sum(y(2:n-1));

Результаты работы прогрммы для различных значений шагов:

>> plotrect('sin',0,pi,0.1)

ans =

1.98803544737928

>> plotrect('sin',0,pi,0.2)

ans =

1.95526444862032

>> plotrect('sin',0,pi,0.5)

ans =

1.69229784551456

Теоретическое значение интеграла равно двум.Соотвтственно значения погрешностей составляют:

0.01196455262072 - для шага 0.1

0.04473555137968- для шага 0.2

0.30770215448544- для шага 0.5

Вычисление определенного интеграла функции y=x^2 на отрезке [0,1] при помощи формул прямоугольников и трапеций при различных шагах:

b = 1;

a = 0;

h=0.1;

n=round((b-a)/(h));

h=(b-a)/(n);

x = a:h:b;

y = x.*x;

I1 = h * ( 0.5*y(1) + sum(y(2:n)) + 0.5*y(n+1) ) %по формуле трапеций

I2 = h *sum(y(2:n)) %по формуле прямоугольников

При h=0.1:

I1 =

0.33500000000000

I2 =

0.28500000000000

При шаге 0.2

I1 =

0.34000000000000

I2 =

0.24000000000000

При шаге 0.01

I1 =

0.33335000000000

I2 =

0.32835000000000

Соседние файлы в папке Лабы 2002