Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мет_ЯРОВАЯ_ЧИСЛ.МЕТ_2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.24 Mб
Скачать

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

>> syms x

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

>>

I =

0.26649340577279

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

function res = f(x);

res = (x^2+1.8)/(x^3+7.9);

end

----------------------

function res = Integral(str, a , b, n);

%str - methods name, a,b - distance, n - number of points

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;

Sum = h*f(a) + Sum;

case 'RightRectangles'

for i=1:n-1

Sum = Sum + h*f(a + i*h);

end;

Sum = h*f(b) + Sum;

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

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

function res = Priori_Error(str,a,b,n);

switch (str)

case 'Simpson'

R = abs(Integral(str,a,b,n)-Integral(str,a,b,0.5*n))/15;

case 'Trapezium'

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

case 'LeftRectangles'

R = abs(Integral(str,a,b,n)-Integral(str,a,b,0.5*n));

case 'RightRectangles'

R = abs(Integral(str,a,b,n)-Integral(str,a,b,0.5*n));

case 'MediumRectangles'

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

otherwise

error('This is impossible value')

end;

res = R;

return

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

>> 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_ErrorIS = Priori_Error('Simpson',3.6,5.4,12)

Priori_ErrorIS =

1.040388407134533e-005

>> Priori_ErrorIT = Priori_Error('Trapezium',3.6,5.4,12)

Priori_ErrorIT =

1.398429282359707e-004

>> Priori_ErrorILR = Priori_Error('LeftRectangles',3.6,5.4,12)

Priori_ErrorILR =

9.368131817630854e-004

>> Priori_ErrorIRR = Priori_Error('RightRectangles',3.6,5.4,12)

Priori_ErrorIRR =

9.775561234709462e-005

>> Priori_ErrorIMR = Priori_Error('MediumRectangles',3.6,5.4,12)

Priori_ErrorIMR =

7.211080710719149e-005

Приближенное вычисление определенных интегралов"

Исходные данные:

;

Промежуток интегрирования [a,b] :

1. Табулирование функции на заданном промежутке [a,b].

2. Вычисление определенного интеграла с помощью

стандартной функции.

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

1. Формула Симпсона.

2. Формула трапеций.

3. Формула средних прямоугольников.

4. Формула правых прямоугольников.

5. Формула левых прямоугольников.

Результаты вычислений для шага h и 2h

4. Вычисление апостериорной погрешности приближенного вычисления определенного интеграла по формулам 1-5.

Программный блок , где

-g(u) - исходная функция;

-x - вектор узловых точек;

- - порядок метода;

вычисляет значения -ой производной функции g(u) в

узловых точках.

5. Априорные погрешности приближенного вычисления

определенного интеграла по формулам 1-5.

- g(x) - подынтегральная функция;

- x - узловые точки;

- k - порядок метода N;