Составить блок схему для каждого алгоритма (методы прямоугольников, метод трапеций, метод Симпсона). Вычислить значения интеграла по разным методам и сравнить результаты. Возможно использование решателей.
Вариант 3. Интегрировать с шагом 0,001
0.40.6xcosx2dx
Решение
Блок-схема метода прямоугольников:
Блок-схема метода трапеций:
Блок-схема метода Симпсона:
Программа в MATLAB:
clear all
close all
h=0.001; %шаг интегрирования
a=0.4; b=0.6; %начало и конец отрезка интегрирования
n=ceil((b-a)/h);%число отрезков интегрирования
I1= Sr_rec(a,b,n);
I2= Trapez(a,b,n);
I3= Simpson(a,b,n);
fprintf('Значение интеграла по методу прямоугольников: %10.9f \n',I1);
fprintf('Значение интеграла по методу трапеций: %10.9f \n', I2);
fprintf('Значение интеграла по методу Симпсона: %10.9f \n', I3);
%подынтегральная функция
function y = f_I(x)
y=sqrt(x).*cos(x.^2);
end
%метод средних прямоугольников
function I = Sr_rec(a,b,n)
h=(b-a)/n;%шаг
x=(a+h/2):h:(b-h/2);%середины интервалов разбиений
y=f_I(x);%значение подынтегральной функции в точках
%накапливаем значение суммы интеграла в S
S=0;
for i=1:n
S=S+y(i);
end
I=h*S;%считаем интеграл
end
%метод трапеций
function I = Trapez(a,b,n)
h=(b-a)/n;%шаг
x=a:h:b;%координаты точек разбиения
y=f_I(x);%значение подынтегральной функции в точках
%накапливаем значение суммы интеграла в S
S=(y(1)+y(n+1))/2;
for i=2:n
S=S+y(i);
end
I=h*S;%считаем интеграл
end
%метод Симпсона
function I = Simpson(a,b,n)
h=(b-a)/n;
x1=a:h:b;%координаты точек разбиения (границы интервалов разбиений)
y1=f_I(x1);
x2=(a+h/2):h:(b-h/2);%координаты точек разбиения (середины интервалов разбиений)
y2=f_I(x2);
%накапливаем значение суммы интеграла в S
S=(y1(1)+y1(n+1));
%для значений в x1
for i=2:n
S=S+2*y1(i);
end
%для значений в x2
for i=1:n
S=S+4*y2(i);
end
I=h*S/6;%считаем интеграл
end
Результаты: