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

56565 (2)

.docx
Скачиваний:
1
Добавлен:
22.05.2024
Размер:
175.85 Кб
Скачать

Лабораторная работа №5 по ЧМ

«Интегрирование функций. Формулы трапеций, Симпсона»

Выполнил: Баранов вадим

1)

function I = Trapezia(fname, a, b, N)

h=abs(b-a)/N;

IntSum = feval(fname,a)+feval(fname,b);

x0=a;

for i=1:1:(N-1)

x0=x0+h;

IntSum=IntSum+2*feval(fname,x0);

end

I=h*IntSum/2;

end

>> Trapezia(@(x)x^3,0,1,1000)

ans =

0.250000250000001

>> abs(1/4-ans)

ans =

2.500000005345449e-07

function I = Simpson(fname,a,b,N)

h=abs(b-a)/(2*N);

IntSum=feval(fname,a)+feval(fname,b);

x0=a;

for i=1:1:(2*N-1)

x0=x0+h;

if rem(i,2)==0

IntSum=IntSum+2*feval(fname,x0);

else

IntSum=IntSum+4*feval(fname,x0);

end

end

I=h*IntSum/3;

end

>> Simpson(@(x)x^3,0,1,10)

ans =

0.250000000000000

>> abs(1/4-ans)

ans =

1.665334536937735e-16

Какие бы получились значения погрешностей для линейной функции (предположите и проведите численный эксперимент для f(x) = x^2, на отрезке [0,1]).

>> Simpson(@(x)x/2,0,1,10)

ans =

0.250000000000000

>> Trapezia(@(x)x/2,0,1,1000)

ans =

0.250000000000000

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

Трапеция:

Симпсон:

>> pi

ans =

3.141592653589793

>> 4*Trapezia(@(x)1/(1+x^2),0,1,450)

ans =

3.141591830544522

>> 4*Simpson(@(x)1/(1+x^2),0,1,200)

ans =

3.141592653589796

3)

>> abs(4*Trapezia(@(x)1/(1+x^2),0,1,900)-pi)

ans =

2.057613071038134e-007

>> abs(4*Simpson(@(x)1/(1+x^2),0,1,40)-pi)

ans =

1.505462421391712e-013

Реализация функциями MATLAB

q = quad(fun,a,b) – вычисление интеграла от функции fun (встроенной или описанной файл-функцией) на отрезке [a,b]. Алгоритм основан на квадратурной формуле Симпсона с автоматическим подбором шага.

>> 4*quad(@(x)1./(1+x.^2),0,1)

ans =

3.141592596973042

>> quad(@(x)x.^3,0,1)

ans =

0.250000000000000

>> quad(@(x)x/2,0,1)

ans =

0.250000000000000

Соседние файлы в предмете Численные методы