Посчитать значение интеграла функции на интервале [0;4] используя функцию Чебышева для . Повторить эксперимент, используя эту же формулу последовательно на интервалах [-2;-1], [-1;0]… [3;4]. Сравнить результаты и объяснить их
Решение
По формуле Чебышева с n узлами
abf(x)dx=b-ani=1nf(ti),
ti=a+b2+b-a2xi.
Где xi берём из таблицы. При n=4:
x1=-x4=0.7946544723;
x2=-x3=0.1875924741.
Программа в Scilab:
//подынтегральная функция
function y=f(x)
y=x.^2-10*(sin(x)).^2;
endfunction
//функция Чебышева для n=4 на отрезке [a,b]
function y=Cheb4(a, b)
x(1)=0.7946544723;
x(2)=0.1875924741;
x(3)=-x(2);x(4)=-x(1);
n=4;
//определяем ti:
t=((a+b)/2)+(b-a)*x/2;
//значения функции в точках ti:
ft=f(t);
//считаем интегральную сумму:
S=sum(ft);
//интеграл:
y=(b-a)*S/n;
printf('Значение интеграла на интервале [%d, %d] равно %f\n', a,b,y);
endfunction
//Основная программа
printf('Вычисление интеграла по формуле Чебышева для n = 4\n');
I=Cheb4(0,4);//интеграл на [0;4]
//Считаем интегралы на интервалах [-2;-1], [-1;0]… [3;4]:
k=1;
for j=-2:3
I1(k)=Cheb4(j,j+1);
k=k+1;
end
//Для сравнения считаем интеграл на [0;4] как сумму интегралов
//на интервалах [0;1], [1;2], [2;3],[3;4]:
I2=sum(I1(3:6));
printf('Значение интеграла на интервале [0, 4] с разбиением на 4 части: %f\n', I2);
Результат:
Аналитическое значение интеграла:
04x2-10sin2xdx≈3.8067289.
При разбиении отрезка интегрирования на части и расчёта интеграла по частям получаем более точное значение интеграла, поскольку погрешность любых квадратурных формул тем меньше, чем меньше расстояние между узлами интегрирования.