Лабораторная работа №3 приближенное вычисление определенных интегралов. Методы прямоугольников и метод симпсона


Пример применения численного интегрирования


Download 250.54 Kb.
bet3/5
Sana01.03.2023
Hajmi250.54 Kb.
#1242069
TuriЛабораторная работа
1   2   3   4   5
Bog'liq
Лабораторная работ интегрирование1

Пример применения численного интегрирования.
Вычислим, например, интеграл по формуле Симпсона с точностью до 0,001.
Чтобы выбрать необходимое для получения заданной точности число 2n, найдем f(4)(x). Последовательно дифференцируя функцию f(x)= , получаем
f(4)(x)=4 (4х4-12х2+3)
Так как на отрезке [0, 1] £1, ½4х4-12х2+3½£5, то . Следовательно, можно взять М=20. Используя формулу оценки погрешности, имеем 20/2880n4<1/1000( ), откуда n4 >1000/144. Для того чтобы выполнялось это неравенство, достаточно взять n=2, т.е. 2n=4.
Разобьем теперь отрезок [0, 1] на четыре равные части точками х0=0, х1=1/4, х2=1/2, х3=3/4, х4=1 и вычислим приближенно значения функции f(x)= в этих точках у0=1,0000, у1=0,9394, у2=0,7788, у3=0,5698, у4=0,3679. Применяя формулу Симпсона, получаем
Таким образом, с точностью до 0,001. Итак, разбив отрезок [0, 1] всего на четыре равные части и заменив рассматриваемый интеграл суммой, стоящей в правой части формулы Симпсона, мы вычислили данный интеграл с необходимой точностью.


Программная реализация в MatLab.

  1. Вычисление определенного интеграла с помощью встроенной функции:

>> syms x


>> I = double(int((x^2-6.5)/(x^3+sin(7.8*x)),3.6,5.4))
>>
I =
0.26649340577279



  1. Программный блок, реализующий приближенное вычисление определенного интеграла:



//str – выбор метода приближенного вычисления определенного интеграла; a, b – пределы интегрирования; n – количество точек
function res = Integral(str, a , b, n);
h = (b-a)/n;
Sum = 0;
switch (str)


// метод Симпсона
case 'Simpson'
q1=0; q2=0;
for i = 1:n-1
if (mod(i,2)==1)
q1 = q1+f(a + i*h);
else q2 = q2+f(a + i*h);
end;
end;
Sum =(h/3)*( f(a) + 4*q1 + 2*q2 + f(b));


//метод трапеций
case 'Trapezium'
for i = 1:n-1
Sum = Sum + f(a + i*h);
end;
Sum = (h/2)*( f(a) + 2*Sum + f(b));


//метод левых прямоугольников
case 'LeftRectangles'
for i=1:n-1
Sum = Sum + h*f(a + i*h);
end;
//метод правых прямоугольников
case 'RightRectangles'
for i=1:n-1
Sum = Sum + h*f(a + i*h);
end;
//метод средних прямоугольников
case 'MediumRectangles'
for i=1:n
Sum = Sum + h*f(((a + (i-1)*h)+(a + i*h))/2);
end;

otherwise


error('This is impossible value')
end
res = Sum;
return



  1. Программный блок вычисления апостериорных погрешностей вычислений строится аналогично с использованием оператора выбора:

//вычисление погрешности для формулы трапеций

case 'Trapezium'
R = abs(Integral(str,a,b,n)-Integral(str,a,b,0.5*n))/3;




  1. Результаты вычислений:

>> format long
>> IS = Integral('Simpson',3.6,5.4,12)
IS =
0.26649801994399
>> IT = Integral('Trapezium',3.6,5.4,12)
IT =
0.26635817701576
>> ILR = Integral('LeftRectangles',3.6,5.4,12)
ILR =
0.26584089261870
>> IRR = Integral('RightRectangles',3.6,5.4,12)
IRR =
0.26687546141281
>> IMR = Integral('MediumRectangles',3.6,5.4,12)
IMR =
0.26656137337914

>> Priori_ErrorIT = Priori_Error('Trapezium',3.6,5.4,12)
Priori_ErrorIT =
1.040388407134533e-005




Download 250.54 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling